<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 모델을 사용할 때 주의사항