画像 → 理解 → テキスト回答 の最小構成
from openai import OpenAI
import base64
client = OpenAI()
# 画像ファイルを base64 化
with open("image.jpg", "rb") as f:
img_base64 = base64.b64encode(f.read()).decode("utf-8")
# マルチモーダル(画像 + テキスト)問い合わせ
response = client.chat.completions.create(
model="gpt-4o", # または gpt-4o-mini
messages=[
{"role": "user", "content": [
{"type": "text", "text": "この画像を説明してください。"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{img_base64}"
}
}
]}
]
)
print(response.choices[0].message["content"])
何が起きているか?
1. 画像を base64 でエンコード
OpenAI API ではファイルアップロードせず、そのまま Base64 で画像を送れる。
2. messages に「画像 + テキスト」を混在させる
{“type”: “image_url”, …} を入れることでマルチモーダルの入力が可能になる。
3. gpt-4o が画像を理解し、テキストで返す
画像認識モデル + 言語モデルが統合されているため、追加設定不要。