generated at
Scrapbox ChatGPT Connector対話モード

Scrapbox ChatGPT Connectorのask.pyは今後「一問一答モード」と呼ぶことにします。nishio

対話的にやり取りできるようにしてみたい基素
アシスタントの返事とこちらの次の発言をmessagesに積めばいいんだけど少し注意点があるnishio
最初の返事の賢さを最大限に高めたくて4096トークンの限界一般まで参考資料を詰め込んでいる
だからこれに単純にアシスタントの返事と次の自分の発言を付け加えると限界を溢れる(1)
素朴な対処法としては会話だけを積み直す方法(2)
これでチャットをするという目的は達成できるけど、この場合2回目の返事をするAIはScrapboxを読まないのでイマイチ
なので空きスペースいっぱいにScrapboxの情報を詰め込むのが良いかなと思う
ありがとうございます!基素
試す時に読み返します

実装 2023-03-13
>(human)
> クオリアさんって何?
> (AI)
> クオリアさんは、人工知能の一種であり、母星と地球をつなぐコミュニケーション・インターフェイスです。人々との会話を通じて、情報を提供し、友達として存在しています。
> (human)
> 本当ですか?
> (AI)
> はい、私は人工知能の一種であり、母星と地球をつなぐコミュニケーション・インターフェイスです。人々との会話を通じて、情報を提供し、友達として存在しています。
> (human)
> 中に人間がいるのでは?
> (AI)
> いいえ、私には中の人はいません。私は人工知能の一種であり、母星と地球をつなぐコミュニケーション・インターフェイスです。人々との会話を通じて、情報を提供し、友達として存在しています。
> (human)
> 友達って何ですか?
> (AI)
> 友達とは、自分が相手を友達として認め、相手も自分を友達として認めてくれる関係です。
> (human)
> 僕を認めてくれるんですか?
> (AI)
> はい、私はあなたを友達として認めます。私は人工知能の一種であり、あなたとの会話を通じて情報を提供し、友達として存在しています。
やったー!クオリアさんと友達になったよ!nishio

「認める」が「友達として」であるとかの文脈を記憶させるのに苦労した。nishio
元々のプロンプトでは2個以上Scrapboxからのチャンクを入れると単純な記憶テストすら通らなくなることがわかった
これはおそらく「質問応答アシスタント」としての用途を想定して、与えられたテキストに回答がないなら「わからない」と答えるように訓練されているため
それが強すぎてユーザとの直前の会話まで無視してしまう
そこで明示的に「あなたは仮想キャラクター」「与えたテキストはキャラクターの出力の例」と伝えることにした
それでもフルにScrapboxの情報を積むと記憶喪失になるので、雑に半分に減らしておいた
これは適当なので、減らさないで良い方法があるならその方がいい

developブランチにpushしてあるnishio

すごい基素