今回は前回の応用で機能を追加する方法を紹介します。
初めに
前回の記事を前提としているため、まずは前回の記事を読んでください。
早速オプションをいじる
最初に、前回作成した関数の配列にオプションを追加して、返答を思い通りにする方法を紹介します。
(前回紹介したものでは、userの発言を変数に入れていましたが、今回はわかりやすく直接入力しています。)
$postData = [
'model' => "gpt-3.5-turbo",
'messages' => [
[
'role' => 'user',
'content' => 'こんにちは',
]
],
'max_tokens' => 300,
];
このメッセージの部分にroleとcontentというパラメーターを設定した配列を追加して、会話をコントロールします。
平たく言うと、このroleには誰が話しているか、contentには何を話したかを記述します。
例えば、現在記述されている
[
'role' => 'user',
'content' => 'こんにちは',
]
は、userが「こんにちは」と発言したことを意味し、つまり普段のweb版で私たちが「こんにちは」と入力した場合と同じようになっています。
そのため、当然のことながら、
こんにちは!
と返答が返ってきます。
これをベースにして、カスタマイズしていきます。
role 「system」を用いて返答をコントロールする。
このメッセージで事前に命令をしたり、以前の発言を教えたりすることで、返答をコントロールすることができます。
例えば、下記のように
'messages' => [
[
'role' => 'system',
'content' => '大阪弁を使用',
],
[
'role' => 'user',
'content' => 'こんにちは',
]
],
systemに「大阪弁を使用」と入力すると、
おおきに。今日はええ天気やなぁ。
と返答が変化します。
このように、systemに事前にどのような返答をするか設定することで、返答をコントロールすることができます。
role 「assistant」について
もう一つ、roleにはassistantという値を設定できます。
これは、AIの過去の返答を教えたり、AIに言ったことにさせて会話を続けるときに使います。
例えば、下記のように以前の発言を指定し、それに応じた返答をさせることができます。
'messages' => [
[
'role' => 'assistant',
'content' => '大阪の名物料理として代表的なものにはたこ焼きがあります。',
],
[
'role' => 'user',
'content' => 'ではその代表的なお店を教えてください。',
]
],
この場合、
大阪で有名なたこ焼き店としては、「道頓堀の串カツまんぼう」、「浪花いか焼き道場」、「欧風バル 極楽横丁」、「山芳製菓 玉出本店」、「銀だこ」、「たこ焼き龍王」などがあります。また、大阪府内にはたこ焼き専門店が多数ありますので、食べ歩きや比較などが楽しめます。
といった、事前の発言を加味した返答をしてくれます。
「system」と「assistant」の使い分けについて。
このroleに設定するsystemとassistantの使い分けについて、私が調べた限りでは、使い分けがまちまちで、ハッキリとした使い分けがわからないところがありました。
私も調べて違えば説明を修正するつもりですが、今のところ私は「system」には「どのようなキャラクターとして振る舞ってほしいか・どのような用途で使用するのでどのような形で返答してほしいか」を指定し、「assistant」には「会話AIとして使用する場合にこれまでの発言を教えてあげるもの」として使用しています。
このように、カスタマイズも口語で指示でき、とても簡単にできます。
ただ、そもそも仕様をもっと理解しなければ、この命令もどのようにやれば良いのかわからない部分もあると思います。
その仕様についても、機会があれば記事を書いてみようと思います。
■□■□■□■□■□■□■□■□■□■□
営業時間:平日9:00〜18:00
●福岡オフィス
〒810-0042
福岡市中央区赤坂1-12-6 赤坂Sビル2F
TEL:092-726-5550 FAX:092-726-5558
●宮崎出張所
〒880-0001
宮崎県宮崎市橘通西3-10-32
宮崎ナナイロ東館8FATOMica内
⇒ メールでのお問合せ
⇒ ホームページ制作実績
⇒ 会社案内
■□■□■□■□■□■□■□■□■□■□