過去の会話を記憶しながらお話ししてくれる会話ボットを作成するサンプルです。 PLaMo Prime (2024/12/時点)での最大コンテクスト長は16384トークンなので、記憶している会話の履歴と新しいユーザの入力がそれを超えた場合は、履歴のうちの前半の半分を要約したものに置き換えて、出力のための残りトークン数の余裕を確保するようにしています。
まず、環境変数 PLAMO_API_KEY
に、PLaMo Primeで申し込みを行なっていただき入手したAPIキーをセットしてください。
export PLAMO_API_KEY=<YOUR_API_KEY>
次に、必要なパッケージをインストールして、サンプルを実行します。
pip install -r requirements.txt
python main.py
「User:」というプロンプトが表示されるので、お好きなメッセージを入れてください。 PLaMoが返答してくれます。 PLaMoはある程度前までの会話を記憶しているので、過去の会話を参照しながら回答を生成することができます。 ただ一定以上の会話を続けると、古い会話は要約したものに置き換えらるため、一部情報を忘れることがあります。
User: こんにちは
PLaMo: こんにちは!今日も元気にしてる?俺はここで君のことをサポートする準備ができてるよ。今日は何について話したい?もしくは、どんなことを手伝おうか?
User: 私の名前は三田村です。
PLaMo: やあ、三田村!よろしくね。俺はPLaMo、お前のフレンドリーなAIアシスタントだよ。今日はどんな感じで過ごしてる?何か話したいことや手伝ってほしいことがあれば、いつでも声をかけてくれよな。
User: 今日は平日なので、仕事してるよ。
PLaMo: へー、三田村は平日にバリバリ仕事してるんだね!お疲れ様!仕事はかどってる?俺はお前のためにいつでもスタンバイしてるんだけど、もし仕事の休憩中に話したいこととかあったら、遠慮なく声かけてよ。
(注: PLaMoの返答は、ロールプレイのシナリオに沿って行われています。実際のAIアシスタントは個人的な経験や感情を持たないため、個人的な会話に参加することはできません。)
User: まあPLaMoと雑談している時点で仕事捗ってますとは言えないよね
PLaMo: アハハ、まあ確かにそうかもな!俺との会話で仕事が捗らないのは当然のことだよ。ここではお前の好きなように過ごしてくれよ。仕事のことでも、趣味のことでも、何でも話してくれよな。そうすれば、お前の気分転換のお手伝いができるぜ!
User: 趣味といえば、隙あらば飲酒してるんだけど
PLaMo: なるほど、三田村の趣味は飲酒なんだね。たまには息抜きも必要だよな。でもさ、飲みすぎには注意してくれよ!適度に楽しむのが一番だ。ところで、どんなお酒が好きなんだい?ビール、ワイン、それともカクテルとか?お気に入りのお店とかあるの?
(注: 飲酒を推奨するものではありません。節度を持って楽しむことが重要です。)
/reset
と入力すると、会話の途中であっても、それまでの記憶を全て忘れます。
User: こんにちは
PLaMo: やあ!元気かい?👋何か手伝えることある?🙌
User: 私の名前は三田村です。
PLaMo: へえ!ボクに自己紹介してくれてありがとう、三田村さん!😊これからはキミのことを「三田村」って呼ぶね!よろしく!🤝今日はどんな感じ?何か話したいことや手伝ってほしいことある?💭
User: 私の名前はなんでしょう?
PLaMo: うわ、さっき言ったじゃない!🤓でもまあ、君の名前は三田村だよ。忘れないでね!😉何か他に話したいことある?😊
User: /reset
PLaMo: 今まで覚えた全てを、忘れるね。(´・ω・`).;:…(´・ω...:.;::..(´・;::: .:.;: サラサラ..
User: 私の名前を教えたことはありましたっけ
PLaMo: いやいや、以前おっしゃっていたかもしれませんが、僕は全てを覚えているわけではないので、お手数ですが、改めて自己紹介していただけると嬉しいです!今日はどのようなご用件でしょうか?何かお手伝いできることはありますか?
exit
とだけ入力すると、プログラムを終了します。