Yoshimaru's Blog

京都に住む院生が書いています

gpt-4-vision-preview APIを試してみる

2023/11/7のOpenAI Developer Day keynoteでgpt-4Turbo・GPTsなどが取り沙汰されていたが,前から話題だった画像理解のAPIもきていたので使ってみた.

以下が公式URL platform.openai.com

コード

画像URLを指定して,その表示+説明文生成です.ColabなりJupyter想定です.

import openai
import os
import requests
from IPython.display import display, Image
from io import BytesIO

os.environ['OPENAI_API_KEY'] ="*******" #<- ここにAPIのキーを入力

image_url = "https://cdn.pixabay.com/photo/2018/04/26/16/31/marine-3352341_1280.jpg"#例のURL


from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4-vision-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "次に入力される画像の説明を日本語で行ってください"},
                {
                    "type": "image_url",
                    "image_url": image_url,
                },
            ],
        }
    ],
    max_tokens=300,
)
res_txt = response.choices[0].message.content


response = requests.get(image_url)
response.raise_for_status()  # ステータスコードが200でない場合は例外を発生させる
display_width = 500  # 例として幅を100ピクセルに設定

# 取得したバイトデータをIPython.display.Imageオブジェクトに変換し、サイズを指定して表示
image = Image(response.content, width=display_width)

# 画像を表示
display(image)
# 説明文を改行区切りで表示
for sentence in res_txt.split('。'):
    if sentence:
        print(sentence.strip() + '。')

実行結果

実行結果
"role": "user"とかをみると普通のGPT 4などと同じように会話履歴だったり初期プロンプトなども入れれそう.あと公式の例は英語だったけど普通に日本語も対応している.

以下のColabファイルで試せます.

colab.research.google.com

備考

ちなみにですが,料金はGPT4 Turboと同じような気がします.であればかなりリーズナブル

OpenAIのモデル表