セットアップ: ローカルLLM
TomoriBotは、テキスト生成や埋め込みに任意のOpenAI互換ローカルLLMサーバーを使用できます。 このガイドでは、最も簡単に始められるOllamaを例としてプロセスを説明します。
慣れてきたら、KoboldCPPのようなより柔軟なサーバーを検討し、Hugging Faceから直接オープンソースモデルを使用してみてください。コミュニティで作成されたさまざまなモデルを選んで試すことは、自分自身のAIを実行する楽しみの半分を占めています。
1. モデルサーバーを実行する
Section titled “1. モデルサーバーを実行する”Ollamaをインストールします。以下の例ではGoogleのGemma 4を使用していますが、Ollamaのライブラリにあるものであれば何でも機能します。
どのサイズをプルすべきか?
Section titled “どのサイズをプルすべきか?”ローカルモデルは、GPUのVRAM(システムRAMとは別の、グラフィックカードに組み込まれたメモリ)で実行されます。経験則として、モデルは少なくともダウンロードサイズ分の空きVRAMと、会話コンテキスト用に約1-2 GBのヘッドルームを必要とします。カードに収まる最大のGemma 4を選択してください。
| あなたのGPU VRAM | 最適なサイズ | ダウンロード(概算) |
|---|---|---|
| 約8 GB | gemma4:e2b | 7.2 GB |
| 約12 GB | gemma4:12b | 7.6 GB |
| 約16 GB | gemma4:12b(完全に収まる)、またはgemma4:26b | 7.6 / 18 GB |
| 24 GB以上 | gemma4:26bまたはgemma4:31b | 18 / 20 GB |
ダウンロードサイズはOllamaのデフォルトの量子化サイズです。正確な数値についてはモデルページを参照してください。VRAMがどれくらいあるかわからない場合、Windowsではタスクマネージャー → パフォーマンス → GPUで「専用GPUメモリ」を確認してください。
選択したサイズをプルし、サーバーを起動します。
ollama pull gemma4:12b # swap for the tag that fits your VRAMollama serve # listens on http://127.0.0.1:11434TomoriBotが実行されているマシンから到達可能であることを確認してください。
curl http://127.0.0.1:11434/v1/models登録するモデル名となるため、インストールされている正確なタグをメモしておきます。
ollama list# NAME ID SIZE# gemma4:12b a1b2c3d4... 7.6 GB2. Discordに登録する
Section titled “2. Discordに登録する”/providers(サーバー全体)または**/personal providers**(自分のみ)を実行し、新しいカスタムエンドポイントを追加を選んで、以下を入力します。
| フィールド | Ollama用の値 |
|---|---|
endpoint_label | 選択した名前(例:home-ollama) |
| API互換性 | OpenAI-Compatible(推奨)またはOllama |
endpoint_url | OpenAI-Compatibleの場合はhttp://127.0.0.1:11434/v1・Ollamaの場合はhttp://127.0.0.1:11434 |
auth_token | (空白のままにします) |
接続を保存したら、それを選択し、モデルのドロップダウンから新しいテキストモデルを追加を選びます。以下を入力してください。
- モデル名(正確なAPI ID):
gemma4:12b、ollama listで確認した正確なタグ。 - コンテキストウィンドウ上書き: オプション、Ollama / KoboldCPPのみ。これ(例:
8192、16384)を設定してOllamaのデフォルトのnum_ctxを上げます。設定しないと、TomoriBotの長いコンテキストが切り捨てられるほど小さくなります。サーバーのデフォルトを使用する場合は空白のままにします。 - 切り替え: モデルが関数呼び出しをサポートしている場合はツール呼び出しを有効にします。ビジョンモデルの場合のみ画像入力を有効にし、モデルがJSONスキーマを適切に処理する場合は構造化出力を有効にします。この例のGemma 4はこれらすべてをサポートしているため、すべてにチェックを入れます。
TomoriBotは保存時に接続を検証します。エンドポイントに到達できないと報告された場合、通常の原因はlocalhost/Dockerの不一致、または欠落/余分な/v1です(注意事項と落とし穴を参照)。
登録すると自動的にアクティブなtextモデルになります。チャットを始めて試してみてください。何らかの理由でアクティブにならない場合は、/config > モデル > モデルの切り替えを実行し、新しく登録したモデルを選択してください。
登録によってtext以外のモデルが変わることはありません。画像を認識できないチャットモデルのためのビジョンヘルパーとしてこのエンドポイントを使わせたくて画像入力にチェックを入れた場合は、/config > モデル > モデルの切り替えで明示的に選択してください。この切り替えをオンにして登録したすべてのテキストエンドポイントがそこに表示されます。ビジョンモデルはチャットモデルが画像を見られない場合にのみ参照されるため、ビジョン対応のチャットモデルの裏にビジョンモデルを設定しても、切り替えるまでは効果がないことに注意してください。
3.(オプション)RAG用のローカル埋め込み
Section titled “3.(オプション)RAG用のローカル埋め込み”保存したエンドポイントを選択し、モデルのドロップダウンから新しい埋め込みモデルを追加を選んで追加します(例:ollama pull nomic-embed-text、モデル名nomic-embed-text:latest)。RAG機能にはPostgresにpgvectorがインストールされている必要もあります。手動セットアップガイドをここで確認できます。
その他のサーバー
Section titled “その他のサーバー”これらはすべて同じフローを使用し、URLといくつかの注意事項のみが異なります。
KoboldCPP
Section titled “KoboldCPP”- OpenAI互換を有効にして(組み込み)起動します。デフォルト:
http://127.0.0.1:5001/v1。 - API互換性:
OpenAI-Compatible。endpoint_url:http://127.0.0.1:5001/v1。 - Ollamaのようにコンテキストウィンドウ上書きを尊重します。
- GGUFモデルを読み込みます。モデル名は、読み込まれたモデルが報告するもの(多くの場合ファイル名)です。KoboldCPPの
/v1/modelsレスポンスを確認してください。
llama.cpp(llama-server)
Section titled “llama.cpp(llama-server)”- llama.cppをビルドまたはインストールし、バンドルされているOpenAI互換サーバーでGGUFを提供します。
Terminal window llama-server -m model.gguf -c 16384 --host 0.0.0.0 --port 8080 - API互換性:
OpenAI-Compatible。endpoint_url:http://127.0.0.1:8080/v1。 -cを使用して起動時にコンテキストウィンドウを設定します。モーダルのコンテキストウィンドウ上書きはOllama/KoboldCPP専用であり、ここでは効果がありません。- モデル名は
/v1/modelsが報告するものです。--alias my-modelできれいな名前を付けてください。 --api-keyで起動した場合は、そのキーをauth_tokenに入力します。
LM Studio
Section titled “LM Studio”- LM Studioで、Local Server(Developerタブ)を起動します。デフォルト:
http://127.0.0.1:1234/v1。 - API互換性:
OpenAI-Compatible。endpoint_url:http://127.0.0.1:1234/v1。 - モデル名は、読み込まれたモデルに対してLM Studioが表示する識別子です。
- OpenAI互換サーバーで提供します:
vllm serve <model>→http://127.0.0.1:8000/v1。 - API互換性:
OpenAI-Compatible。endpoint_url:http://127.0.0.1:8000/v1。 --api-keyでvLLMを起動した場合は、そのキーをauth_tokenに入力します。- モデル名は、提供されるモデルのパス/名前です(
/v1/modelsと一致します)。
LiteLLM(複数のバックエンドに対するプロキシ)
Section titled “LiteLLM(複数のバックエンドに対するプロキシ)”- LiteLLMプロキシを実行します。デフォルト:
http://127.0.0.1:4000/v1。 - API互換性:
OpenAI-Compatible。endpoint_url:http://127.0.0.1:4000/v1。 - モデル名は、LiteLLMの設定で定義したモデルエイリアスです。
- プロキシがマスターキーを強制する場合は、それを
auth_tokenに設定します。
ChatMock(ChatGPTアカウント / Codex CLI)
Section titled “ChatMock(ChatGPTアカウント / Codex CLI)”システムプロンプトの回避策があるため、独自の専用ガイドがあります。 セットアップ: ChatMock。
Hugging Faceからのモデルの選択
Section titled “Hugging Faceからのモデルの選択”Ollamaの厳選されたライブラリに加えて、Hugging Faceは数千のコミュニティモデルをホストしています。KoboldCPP、llama.cpp、LM StudioはすべてGGUFフォーマットを読み込むことができます。これは、ダウンロードしてサーバーに向ける単一ファイルのパッケージです。
- GGUFを見つける。 Hugging Faceで目的のモデルと「GGUF」を検索します。bartowskiのようなコミュニティクオンタイザーは、リリース後すぐに最も人気のあるモデルのGGUFビルドを公開します。instruct/chatバリアント(
-Instructまたは-Chatで終わる名前)を優先してください。ベースモデルでは会話が成り立ちません。 - VRAMに収まる量子化を選択する。 リポジトリには同じモデルの多くの量子化レベルがリストされており、ファイルサイズ ≈ 必要なVRAM(プラス、コンテキスト用の約1-2 GB。上記のサイズ表のルールと同じ)です。選択した単一の
.ggufをダウンロードします。 - 読み込む。 そのファイルでKoboldCPPまたは
llama-serverを起動し(その他のサーバーを参照)、通常通りDiscordでエンドポイントを登録します。
注意事項と落とし穴
Section titled “注意事項と落とし穴”- ラベルごとに1つのエンドポイント項目。 1つのサーバーを共有する複数のモデルを登録するには、保存したエンドポイントを選び、モデルのドロップダウンを再度使用します。異なるサーバーまたはAPIプロトコルには別々のラベルを使用してください。
- モデル名はAPI識別子です。 サーバーに送信される正確な文字列なので、間違えると「接続できたがレスポンスに失敗する」原因になります。
- TomoriBotをDockerで実行している場合: コンテナ内の
localhostはホストではありません。http://host.docker.internal:<port>(Windows/macOS)またはホストのLAN IPを使用し、モデルサーバーを0.0.0.0にバインドしてください。