kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

ChatGPT APIで仮想人格を作り込む

 おはようございます。さて、皆さん。ChatGPT、使いこなしてますか?私は……使いこなしてるかはわかりませんが、ドはまりしてることだけは確かです。プログラミング言語間のトランスパイルをできるツール

github.com

を作ったり、仮想人格を作ってそのキャラとチャットしてみたり、テキスト->音声ソフトウェア(VOICEPEAKやVOICEVOX)を使って、キャラに声をつけてみたり。さらにWhisper APIと組み合わせて[キャラクタと音声会話できるツール

github.com

を作ったりと色々変なことも試しています。ちなみに、VOICEPEAK(東北ずん子)についてはこちらから、

www.ah-soft.com

VOICEVOX

voicevox.hiroshiba.jp

についてはこちらから。VOICEPEAKはさすがに有料で公開されてるソフトウェアだけあって、普通に読み込ませるだけでもより自然なイントネーションでしゃべってくれるなどの利点がありますが、1万円超と逸般人でない人が試すにはちょっとお高いので無料かつライセンスが比較的ゆるい(詳細は上記を参照)VOICEVOXを使ってみるのがいいのかなと思います。

それはともかく、ChatGPT APIを使えば、あの生真面目なChatGPT君のキャラだって自由自在にカスタマイズできます。試しにちょっとしたキャラ設定を作ってみましょう。手元のSlack Botなどを使ってもいいのですが、試しやすいようにOpenAIのPlaygroundを使います。

ChatGPT APIでキャラを作り込んでみた

顔文字の使い方が20代の女性っぽいのかは不明ですが、キャラ付けした部分はうまく反映されているように見えます。

ChatGPT APIでは「system」「user」(主にユーザからの質問に使われる)」「assistant(主にChatGPTからの応答に使われる)」の3種類のrole=役割があるのですが、systemでキャラ設定を最初に作り込んでおけば、以後(倫理規定に引っかからない限りは)、その設定を演じてくれます。これはWeb版のChatGPTでも使えることは知られていますが、APIを使えば一度作り込んだキャラ設定をずっと維持できるのがメリットでしょうか。

ちょっと設定を付け加えて、魚介類、得にサバが好きということにしてみましょう。

サバ好き女子大生

うまく反映されていますね。苦手なものとして、大人数の飲み会というのも追加してみましょう。

大人数の飲み会が苦手な女子大生

User=私が「30名くらいの大所帯」で愚痴ったところに、ちゃんと「私も大人数の飲み会って苦手だから」と返していますよね。「わかるよ」とも。こんな風に言葉だけで仮想人格を作り込める万能ソフトウェアって今まで存在しなかったわけで、こういうところにもChatGPTの凄さがあるなと感じます。

ちなみに、今回はgpt-4-0314というモデルを使っていますが、gpt-3.5-turboでもそれなりにはキャラを演じてもらえます。ただ、仮想人格を作り込むという目的だと今一つという感がありまして、設定が中途半端にしか反映されません。たとえば、こんな感じです。

女子大生(GPT-3.5)

共感しつつ、というのは反映されていますが、大人数の飲み会が苦手って部分が中途半端にしか反映されていませんよね。タメ口設定も無視されています。この辺りを見ても、gpt-4の賢さが伺えます。

というわけで、APIを使える皆さんはせっかくなので、自分好みの「アシスタント」のキャラを作り込んで答えてもらうといいかもしれませんね。いやまあ、書いてから気づいたんですが、キャラを作り込めるのはgpt-4からということなので、まだgpt-3.5までしか使えないケースだと(そして、現状だとgpt4をAPIで使えるのはごく一部っぽいので)作り込みに多少苦労するとは思いますが、それについてもプロンプトを工夫すればある程度はうまくやってくれます。