見出し画像

OpenAIのVISION機能。写真に対しての質問を答えるのを試してみる

こんにちは!やどかりの松澤です。
OpenAIの各機能を順番に試してみています。前回までで基本のチャットでのやりとりや、依頼した文章からの画像を作成してもらったりしました。
今回はVISION?機能とやらを試してみたいと思います。
ドキュメントを読んだ感じでは、写真を渡して、そこに対しての質問文を出して回答してもらう、大喜利みたいなことがやれそう!と考えて試してみようと思います。

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": {
                        "url": "https://www.yadokari.tv/assets/img/home/pc/yadokari_top_pc_03.jpg?20230328",
                    },
                },
            ],
        }
    ],
    max_tokens=300,
)

print(response.choices[0])

3回目なので少しペースを上げてサンプルコードの中身を解説しつつ、何か面白いものに変えていきたいと思います。

model="gpt-4-vision-preview",

こちらは今までも毎回何も考えずに指定しておりますが、ちゃんとドキュメントを読むとgpt4をベースに「モデルが画像を取り込み、それに関する質問に答える」ように特化しているモデルだそうです。今後も用途に応じて、実施したいことを特化したモデルを選択することが大事になります。

"role": "user",

チャットの文章を作ったときと同じで、私の理解ではuser=自分と考えて、自分の要望を書くよ!という宣言と捉えています。

"content": [

こちらもチャットの文章の構造と同じで文章だったり内容(コンテンツ)を記載していきます。[になっているのはJSONでの書式で、その下に複数の情報が入るという意味になります。

{"type": "text", "text": "社員みんなで仮装していますが、このような会社に対してどう思いますか?"},

写真画像のイメージに対してのテキストでの質問だったり、回答してもらいたい内容を記載します。

"image_url": {
"url": "https://www.yadokari.tv/assets/img/home/pc/yadokari_top_pc_03.jpg?20230328",
},

写真画像に関してはbase64で生データを送る方法もありますが、やはり手短に実施してみるためにURLを指定して体験優先で実行してみます。


ここからいろいろと実験してみます。

素材を会社HPより引っ張ってくる

写真素材というところでてっとり早く、やどかりの会社HPに上がっていたハロウィンの写真で実験してみます。

ここまでをopenai-vision.pyというファイルに書き込みして実行します。
python3 openai-vision.py

openai.NotFoundError: Error code: 404 - {'error': {'message': 
'The model `gpt-4-vision-preview` does not exist or you do not have access
 to it. Learn more: https://help.openai.com/en/articles/7102672-how-can-i-
access-gpt-4.', 'type': 'invalid_request_error', 'param': None, 'code': 
'model_not_found'}}

初回時依頼の久しぶりにエラーが出ました。。。凹む
こういう時はエラーの内容に答えが記載されているのですが、gpt-4-vision-previewが存在しないからヘルプみろと言われているみたいです。

記載されたリンクページを確認します。

リンク先のエラーページを日本語翻訳

なるほど!w
ここからは無料アカウントでの5ドルでは試させてもらえないようです。

前々前回で0ドルだったりをみたページまでいき、クレジットカードを登録しつつ10ドル課金します。自動課金は怖いので止めておきます。

無事に10ドルチャージ!!

課金もしてこれで再度エラーが出たら凹むなあと思いつつ、まあやるしかないので再度実行しました!
python3 openai-vision.py

Choice(finish_reason=None, index=0, message=ChatCompletionMessage(content=
'この写真に写っているのは、楽しそうな仮装をした多くの社員の集まりを示していて、企業文化の一端を見ることが
できます。こうしたイベントは、従業員間のチームワークと社内の雰囲気を向上させる素晴らしい方法です。仮装をす
ることで、日常からの一時的な離脱を楽しみ、クリエイティビティやオフィスでの楽しい交流を促進することができま
す。また、社員が互いを異なる面から知る機会を提供し、職場のモラルを高めることに役立つでしょう。このような
文化は、オープンで柔軟性があり、従業員のエンゲージメントを重視する企業の特徴としてよく見られます。',
 role='assistant', function_call=None, tool_calls=None), finish_details={
'type': 'stop', 'stop': '<|fim_suffix|>'})

おおおお!!エラーにならずに成功です!!
そして気を遣ったいいコメントも返ってきました〜。

もう少しいろいろイジってみようと思っていたのですが、課金しなきゃ!とか想定外のエラーもあったりしたので、今日はここまでにしようと思います。今回でわかったこととしてはOpenAI、ChatGPTとしても、実施したいことによって適切なモデルが違うこと。またモデルは多分ですが、これからも細分化されて特化されたモデルがしばらくは増え続けるのかなと予想されます。多分ですが細分化され続けると、それもそれで使いづらいので、細分化と統合を繰り返しつつモデルの精度が成長していくのだと思います。

次回はもう少し続きとしてパラメータなどを調整したりしつつ、イジってみようと思います。



株式会社やどかりは仲間を探しています。

自分の仕事に誇りを持っている人、楽しく仕事ができる人。
入社年数に関わらず、スキルによって様々な仕事のチャンスがある会社です。やどかりのことをもっと知りたい方はこちらをクリック!

事業内容:スマートフォン・タブレットアプリの開発/Webサイト開発/ITコンサルティング
業種一覧:Androidエンジニア/iOSエンジニア/サーバエンジニア/フロントエンジニア/ディレクター

この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?