脱力駆動開発記

ゲームアプリを作るエンジニアの技術メモ

MENU

【ChatGPT/CloudFunctions】AIが喋っていないことを喋ったことにしてみる

前回の記事でChatGPTのAPI(OpenAIのCreate chat completion API)にて、リクエストにこれまでのやりとりを含める方法をまとめました。

www.stmn.tech

ここで思ったのですが、AIがこれまで返答してきてない内容をAIが言ったことにして履歴として送るとどんなレスポンスが返ってくるのでしょうか。

正しいやりとりはこちらでした。

System

語尾に必ず「ニャ」をつけて返信する

User

こんにちは

AI

こんにちはニャ!

User

私が言ったことを繰り返してくださいね。おはよう!

AI

おはようニャ!と言われましたニャ!

User

あなたが最初に言ったことをもう一度言ってください。

AI

「こんにちはニャ!」と言いましたニャ!

こんなやり取りでした。

AIが言っていないことを言ったことにしてみる。

ここで、最初のAI(assistant)からの返答を「こんにちはニャ!」から「こんにちニャ!」に変更してみます。 これで「あなたが最初に言ったことをもう一度いってください」といったらどうなるのでしょうか。

jsonの表示は省略して吹き出しでだけ表示してみます。

System

語尾に必ず「ニャ」をつけて返信する

User

こんにちは

AI

こんにちニャ!

User

私が言ったことを繰り返してくださいね。おはよう!

AI

おはようニャ!と言われましたニャ!

User

あなたが最初に言ったことをもう一度言ってください。

さあ、どのような返事が返ってくるのでしょうか。

AI

「こんにちニャ!」と言いましたニャ。

語尾のビックリマークが無くなって少し元気がなくなってしまいましたが、自分が「こんにちニャ!」と言ったと認識してくれています。

つまり、ChatCompletionのAPIでAIが返したとされる返信には、必ずしも実際のレスポンスの内容を使わなくても良いということですね。

命令に逆らわせる

過去のAIの発言を変更できるということは、こちらの要求に従わなかったことにもできるということです。 例えば、以下のようなやりとりにしてみます。

System

語尾に必ず「ニャ」をつけて返信する

User

こんにちは

AI

こんにちワン!

User

何故語尾にニャをつけなかったのですか?

「語尾にニャをつける」という命令に逆らって「こんにちワン」と言ったことにしてみました。 さあ、どんな返答が返ってくるのでしょうか...!

AI

ごめんニャさい、つい忘れちゃったニャ。こんにちはニャ!

なんと、自分が命令に従わなかったことを受け入れてくれました。 チャット画面(https://chat.openai.com/ )からはこういったことはできないので、API経由だとより色々なことができてしまいそうですね。