Skip to content

発言生成の仕組み

ideal-bot は2つのモードで発言を生成します。

動作モード

モード条件生成方式
ローカル AI モードLLM API キーなしSentenceTransformers で語彙選択 + ローカル LLM(transformers pipeline)で文生成
LLM モードLLM API キーありLLM(登録語彙 + 会話コンテキストを注入)

ローカル AI モード

1. 会話コンテキスト(直近 N 件)をベクトル化
2. 登録語彙の中でコンテキストとコサイン類似度が高い語彙 上位 5語を取得
3. ローカル生成モデル(transformers pipeline)で返答文を生成
   - チャットテンプレート対応モデル: multi-turn context_history を組み立てて生成
   - Base 系モデル: 直近メッセージをプレフィックスとして続きを生成
4. 生成モデル未設定時は上位語彙からランダム選択

ローカル生成モデルは config.jsonlocal_generation_model(Hugging Face モデル ID)で設定します。システムプロンプトは Bot 管理者画面で変更できます(変数: {bot_name}, {target_length})。

LLM モード

OpenAI または Gemini を使用して、登録語彙と会話コンテキストを考慮した自然な発言を生成します。

システムプロンプトテンプレート:

あなたは「{bot_name}」というキャラクターです。
以下の単語を知っています: {word_list}
口調: {persona}

会話モードのコンテキスト

会話モード中は直近 N 件(デフォルト 10 件、最大 20 件)の会話ログをコンテキストとして LLM に渡します。件数はギルド設定で変更できます。

応答遅延

「読んでいる」「タイピングしている」感を再現します:

1. メッセージ受信
2. 読み取り遅延: ランダム(read_min 〜 read_max 秒)
3. typing indicator 表示開始
4. 発言生成
5. 入力遅延: 文字数 ÷ type_cps 秒(最低 1秒、最大 8秒)
6. メッセージ送信

遅延パラメータは config.json、管理画面、/config delay コマンドで設定できます。

Released under the MIT License.