<aside> 👉 포스터 이미지에서 필요한 텍스트만을 빼와서 리스트로 나열한다.

</aside>

어떻게 작성해야 할까?

일단 chatGPT api를 사용해서 이미지에 대한 정보를 읽게 했다.

참고

여차저차 해서 일단 이미지에 대한 설명을 받아오는 코드를 작성했다.

참고

https://platform.openai.com/docs/guides/vision

import base64
import os

from dotenv import load_dotenv
import requests

# load .env
load_dotenv()

# 현재 작업 디렉토리
cwd = os.getcwd()
# 이미지 파일 경로
file_path = os.path.join(cwd, 'media', 'poster_sample.jpeg')
# OpenAI API Key
api_key = os.environ.get("OPENAI_API_KEY")

# Function to encode the image
def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

# Path to your image
image_path = os.path.join(cwd, 'media', 'poster_sample.jpeg')

# Getting the base64 string
base64_image = encode_image(image_path)

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "이 이미지에 대해서 설명해 줘. please write in korean."
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("<https://api.openai.com/v1/chat/completions>", headers=headers, json=payload)

print(response.json())

gpt-4-vision-preview 모델을 사용할 때 주의사항

출처