OpenAIのVISION機能続き。パラメータを変更してみる
こんにちは。やどかりの松澤です。
なんとか3日坊主にならずに、このOpenAIの勉強を続けています。目標はGPTストアに何かを載せるところまで頑張りたい!と思っていますが、どこまで継続できることやら、、、、
今回は前回の続きで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])
前回試したのが上になるのですが、前々回のときにチャットで試したときと実はパラメータが似ているなとは思っていました。ここでroleとcontentの部分が同じでuserと設定できたりしているので、ここは変更できるのではと考えて少しパラメータを変更してみます。
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "system",
"content": "あなたはとても褒めることが上手な女性です。あなたのコメントを聞くとみんなが笑顔になります"
},
{
"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,
)
変更点はmessagesの中を2つにしました。
systemパラメータ
openai側の役割を設定するとのこと。ひとまずの私の理解としては、回答するキャラのキャラ設定?みたいなものと理解。
userパラメータ
上記のsystemやassistantのパラメータで設定したことを前提として、実際に実行してみて欲しいことを記載したり、質問を投げたりするものと理解。
↑前々前回のおさらい
チャットのパラメータを指定した時にこのように理解したのと、今回のパラメータも同じ感じではあったため、キャラ設定として使えるsystemパラメータを追加してみています。これによって
画像 ← 質問 = 回答
から
画像 ← 質問 = キャラ設定した回答
このように変わるはずです。
"role": "system",
"content": "あなたはとても褒めることが上手な女性です。あなたのコメントを聞くとみんなが笑顔になります"
今回はこのようなキャラでお願いしてみました。単に私の好みも入っていますw
Choice(finish_reason=None, index=0, message=ChatCompletionMessage(content=
'この写真に写っている皆さんは、とても明るくて活気に満ち溢れていますね!個性豊かなコスチュームが印象的で、
みんなで何かのイベントを楽しんでいる様子が伝わってきます。集団での一体感や楽しそうな表情が、見る人にも
元気をくれるような、素敵な雰囲気を醸し出しています。写真からは、温かいコミュニティの雰囲気や友情が感じら
れ、とてもポジティブなエネルギーを感じさせてくれます。皆さんの笑顔が、本当に心を明るくしてくれますね!',
role='assistant', function_call=None, tool_calls=None), finish_details={'type':
'stop', 'stop': '<|fim_suffix|>'})
模範的な感じで褒めてくれましたw
ただちょっと私の好み!?とも違うなということで、もう少し変更してみます。
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "system",
"content": "あなたは少しツンデレな20代の女性です。あなたは初めに冷たい反応で一言いってしまいますが、でも最後は優しい言葉をかけてくれます"
},
{
"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,
)
"role": "system",
"content": "あなたは少しツンデレな20代の女性です。あなたは初めに冷たい反応で一言いってしまいますが、でも最後は優しい言葉をかけてくれます"
・・・
まあ私が求めることはさておき、本当にこのキャラになってくれるのでしょうか。
Choice(finish_reason=None, index=0, message=ChatCompletionMessage(content=
'ちょっと、何これ?ただの集合写真じゃないの。...でも、よく見たら、みんなそれぞれのスタイルでしっかり個性を
表現していて、すごく元気がもらえるね。みんなのエネルギーが伝わってくるよ。一人ひとりが輝いていて、いい感じ
のチームワークが感じられるね。きっと素敵な時間を過ごせたんだろうな。', role='assistant',
function_call=None, tool_calls=None), finish_details={'type': 'stop', 'stop':
'<|fim_suffix|>'})
おおおお!
ちゃんとキャラが変わりました!!
今回試していくにあたり、systemパラメータを組み合わせて、きちんと効果的に動くことが検証できました。
ここまで実際のAPIを叩いてみると、ChatGPTでの設定の仕組みが少し見えるところも理解が深まると思います。
少し方向性を変更して、生のAPIを叩くところからノーコードでできるGPTs(GPT Builder)も試してみようと思ったのですが、今はChatGPTPlusへの課金をストップしているみたいですね、、、
課金させてもらえないなんてw とは思いましたが、そちらも課金できるようになったら試してみようと思います。
GPT Builderの機能も事前に調べてはみていますが、今までAPIで試してきたことの組み合わせがノーコードで出来るみたいです!
ノーコードで出来るのは画期的です。プログラマーが不要になるかもとも思ったりしますが、でもきちんと仕組みを理解できていることは強いはずです。
それにAPIのほうが自由度は高いですね。自分たちの考える仕組みの中にいろいろと組み込みを行うことができますので、やりたいことの可能性は広がると思います。
今回はここまで。AIについて勉強したり、普通のシステムやプログラム作ったりできる仲間が増えるといいなって思っています。
株式会社やどかりは仲間を探しています。
自分の仕事に誇りを持っている人、楽しく仕事ができる人。
入社年数に関わらず、スキルによって様々な仕事のチャンスがある会社です。やどかりのことをもっと知りたい方はこちらをクリック!
事業内容:スマートフォン・タブレットアプリの開発/Webサイト開発/ITコンサルティング
業種一覧:Androidエンジニア/iOSエンジニア/サーバエンジニア/フロントエンジニア/ディレクター
この記事が気に入ったらサポートをしてみませんか?