発言生成の仕組み
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.json の local_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 コマンドで設定できます。
