なお、「そこで出されたのは、カ」というプロンプトで「レーライスだった。」という補完文が得られたら、次に「そこで出されたのは、カレーライスだった。」をそのまま出力してユーザーに表示してもいいけど、「そこで出されたのは、カ」というLLM生成ではない文章が混じるのは避けたい場合がある。
そこで、
「今日のランチメニューにはなにかな?」
そこで出されたのは、カレーライスだった。メニューをお客に説明しよう。
ウェイトレス「
というようにプロンプトをインジェクションし、ウェイトレスの台詞だけ出力する、という手法がある。
まあ、CoTなんですけどね。プロンプトを動的にインジェクションしたり巻き戻したりするところが普通のCoTとは違う。
この手法は問題点を抱えてて、これだとシーン毎に判定プロンプトを用意しないといけなくなる。これはメニューを聞いているシーンだ、ということが分からないとプロンプト挿入ができないので。
そこで今考えているのは、function callingでコマンド選択を行う手法。
次にキャラが行うべき行動は何ですか?①話す ②ものを渡す ③移動する
みたいな。
ただし7Bモデルではこのコマンド選択の精度が中々出なくて、選択肢を2択にして階層化した上で、probabilityを見るとか、いろいろ対処法を考え中。