Discordの発言を学習し、勝手に模倣して勝手に返事をするBot
Character内のインスタンス変数は人間の動きをシミュレーションするパラメータとなる
python3.12とpoetryが必要です
poetry install
poetry run python3.12 main.py
Discordを介さずCharacterのみ起動する
poetry run python3 src/cli.py
発言を行うには以下の共通条件を満たした上でトリガーが発火される必要がある
- 指定のチャンネル内である
- トリガー: 誰かの発言 返答する形でメッセージを送る
- 発言者がBotではない
- 確率抽選を突破する(30%)
- トリガー: 定期実行 独り言のようにつぶやく
- 今日、定期実行で発言した回数が3回未満
- 9:00 ~ 23:00の中で30分毎に確率抽選(5%)
- 発言は誰かを模倣する
- 模倣する相手はランダム
- Discordのメッセージ
それぞれの人格はCharacterクラスを用いて操作する
Characterにはキャラクターブックが存在し、これが人格を司る
Characterは現在の状態(State)を注意(Attention)として保存する
プロンプトはシステムメッセージ+キャラクターブック+注意によって構築される
LLMを用いて作成した人格を扱うクラス
- answer(question: str): str
- monologue(): str
- train_answer(question: str, answer: str): str
- train_monologue(): str
- attention_prompt キャラクタの注意、体調・最近見たニュースによる話題・現在の思考を作る
- character_prompt キャラクターブック、強いキャラクターの印象を作る
現在ハードコードによってキャラクターを作成しているが、最終的には設定したチャンネルから情報を自動収集するようになる