
OpenAI Vision API の使い方や料金について
OpenAI Vision API とは
OpenAIは、自然言語処理の分野で広く認識されているGPT-4というモデルを提供しています。
そして最近、このモデルに画像認識の機能を追加したGPT-4 with Vision(以下、Vision API)がリリースされました。
この記事では、そのVision APIについて詳しく解説します。
Vision APIは、テキストだけでなく画像も理解することができるAIモデルです。
これにより、GPT-4が利用できる領域が大幅に広がりました。
Vision APIの使い方
Vision APIは、画像のURLを指定するか、Base64でエンコードされた画像を直接リクエストに含めることで、画像をモデルに提供できます。
画像はuser、system、assistantのメッセージのいずれにも含めることができます。
以下に、Pythonでの使用例を示します。
from openai import OpenAI
client = OpenAI()
# シークレットキーを直接入れる場合
# client = OpenAI(api_key="sk-xxxx")
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "この画像には何が写っていますか?"},
{
"type": "image_url",
"image_url": "https://example.com/image.jpg",
},
],
}
],
max_tokens=300,
)
print(response.choices[0])
このコードは、指定した画像に何が写っているかを問い合わせ、その回答を表示します。
例として、以下の画像でやってみました。

応答として、以下が返却されました。
Choice(finish_reason=None, index=0, message=ChatCompletionMessage(content='この画像には、人間の横顔とデジタル的なパターンが組み合わせられたグラフィックが写っています。画像の一部分には、何らかの回路や電子的なデザインが溶け込んでおり、人間とテクノロジーの融合を思わせる芸術的な表現です。また、画像の左側には日本語で「無限の可能性?AIツール」と書かれており、その下には英語で「ChatGPT」と大きな文字があり、さらに「StepByStepGUIDE」とあります。これから、この画像はチャットボットやAI技術に関連するガイドや資料を紹介するためのものであることが示されています。', role='assistant', function_call=None, tool_calls=None), finish_details={'type': 'stop', 'stop': '<|fim_suffix|>'})
完璧に理解できていることが見て取れます。
日本語は難しいと言う報告もありますが、このようにはっきりと大きく書かれている場合は、日本語であっても読み取れるようです。
Vision APIの制限と注意点
Vision APIは非常に強力なツールですが、いくつかの制限と注意点があります。
Vision APIは、画像の中にある物体の関係性を理解することはできますが、特定の物体の位置について詳細な質問に答えることは最適化されていません。例えば、部屋の画像を見せて椅子がどこにあるかを尋ねると、正確な回答が得られないことがあります。
Vision APIは画像をトークンとして処理し、そのトークン数によって課金されます。画像のトークンコストは、そのサイズとdetailオプションによって決まります。
Vision APIは現在、PNG、JPEG、WEBP、非アニメーションGIFのファイル形式をサポートしています。また、画像のアップロードサイズは20MBまでと制限されています。
以上がOpenAIのVision APIについての概要です。
テキストだけでなく画像も理解することができるこのAPIは、AIの可能性をさらに広げる強力なツールとなるでしょう。
Vision APIの料金について
OpenAIのVision APIは、使用したトークン数に基づいて課金されます。
トークンとは、モデルが処理するテキストや画像の単位です。
具体的には、テキストは文字列をトークンに分割し、画像はそのサイズと詳細度に基づいてトークン数が決定されます。
画像のトークン数の計算
画像のトークン数は、そのサイズとdetailオプションによって決まります。detail: lowの画像はすべて85トークンとなります。
一方、detail: highの画像は、まず2048 x 2048の正方形に収まるようにアスペクト比を保ったままスケーリングされ、その後最短辺が768pxになるようにスケーリングされます。
最終的に、画像を構成する512pxの正方形の数を数え、その数に170トークンを掛けたものと85トークンを加えたものが画像のトークン数となります。
トークン数の制限と課金
OpenAIのAPIは、1分間に処理できるトークン数に制限があります。
これを超えるとレート制限が適用され、一時的にAPIの使用が制限されます。
また、使用したトークン数に応じて課金されます。
具体的な料金はOpenAIの公式ウェブサイトの料金ページで確認できます。GPT-4の場合、入力トークンは$0.03 / 1Kトークン、出力トークンは$0.06 / 1Kトークンとなっています。
料金の管理
OpenAIでは、使用量が一定の閾値を超えたときに通知を受け取る設定をすることができます。また、月間の予算を設定することも可能です。これにより、APIの使用が予算を超えないように管理することができます。ただし、予算を超えた場合、それ以上のAPIリクエストは拒否されるため、アプリケーションの運用に影響が出る可能性があります。
以上がOpenAIのVision APIの料金についての概要です。APIを使用する際には、これらの点を考慮に入れることが重要です。
参考URL: