コンテンツにスキップ

セットアップ: ローカルLLM

TomoriBotは、テキスト生成や埋め込みに任意のOpenAI互換ローカルLLMサーバーを使用できます。

このガイドでは、最も簡単に始められるOllamaを例としてプロセスを説明しますが、すでにより技術的なユーザーであれば、好きなものを自由に使用できます!

Ollama をインストールします。以下の例ではGoogleのGemma 4を使用していますが、Ollamaのライブラリ にあるものであれば何でも機能します。

ローカルモデルは、GPUのVRAM(システムRAMとは別の、グラフィックカードに組み込まれたメモリ)で実行されます。経験則として、モデルは少なくともダウンロードサイズ分の空きVRAMと、会話コンテキスト用に約1-2 GBのヘッドルームを必要とします。カードに収まる最大のGemma 4を選択してください:

あなたのGPU VRAM最適なサイズダウンロード(概算)
約8 GBgemma4:e2b7.2 GB
約12 GBgemma4:12b7.6 GB
約16 GBgemma4:12b(完全に収まる)、または gemma4:26b7.6 / 18 GB
24 GB以上gemma4:26b または gemma4:31b18 / 20 GB

ダウンロードサイズはOllamaのデフォルトの量子化サイズです。正確な数値については モデルページ を参照してください。VRAMがどれくらいあるかわからない場合、Windowsでは タスク マネージャー > パフォーマンス > GPU で「専用 GPU メモリ」を確認してください。

選択したサイズをプルし、サーバーを起動します:

Terminal window
ollama pull gemma4:12b # swap for the tag that fits your VRAM
ollama serve # listens on http://127.0.0.1:11434

TomoriBotが実行されているマシンから到達可能であることを確認してください:

Terminal window
curl http://127.0.0.1:11434/v1/models

登録するモデル名となるため、インストールされている正確なタグをメモしておきます:

Terminal window
ollama list
# NAME ID SIZE
# gemma4:12b a1b2c3d4... 7.6 GB

/providers(サーバー全体)または /personal providers(自分のみ)を実行し、+ 新しいカスタムエンドポイントを追加 を選んで、以下を入力します:

フィールドOllama用の値
endpoint_label選択した名前(例:home-ollama)
API互換性OpenAI-Compatible(推奨)または Ollama
endpoint_urlOpenAI-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 > モデル > モデルの切り替え を実行し、新しく登録したモデルを選択してください。

3.(オプション)RAG用のローカル埋め込み

Section titled “3.(オプション)RAG用のローカル埋め込み”

保存したエンドポイントを選択し、モデルのドロップダウンから埋め込みモデルを追加します(例:ollama pull nomic-embed-text、モデル名 nomic-embed-text:latest)。RAG機能にはPostgresに pgvector がインストールされている必要もあります。手動セットアップ ガイドをここで確認できます。

4.(オプション)ComfyUIとGPUを共有する

Section titled “4.(オプション)ComfyUIとGPUを共有する”

テキストモデルとComfyUIが同じGPUで動作する場合、ComfyUIの画像または動画ジョブの実行中にTomoriBotがテキストモデルをアンロードできます。ジョブ中に届いたテキストの返信は、GPUが再び空くまで待機します。

保存したエンドポイントを開き、エンドポイントを編集 を押し、エンドポイントの動作 にある ComfyUIジョブ中にモデルをアンロード にチェックを入れます。保存時にTomoriBotがURLにあるサーバーを確認します:

  • Ollama: インストールした状態でそのまま動作します。ジョブの前にTomoriBotがOllamaにモデルのアンロードを要求し、次のテキストリクエスト時にOllamaが再ロードします。
  • KoboldCpp: --admin と --admindir を指定してKoboldCppを起動し、エンドポイントの認証トークンに管理者パスワードを設定します。TomoriBotはKoboldCppの管理リロードAPIを使用してモデルをアンロードし、完了後に再びロードします。

その他のサーバーは保存時に拒否されます。汎用のOpenAI互換サーバーにはモデルをアンロードする共通の方法がないためです。

TomoriBotは任意のOpenAI互換エンドポイントをサポートしていますが、以下のサーバーが推奨されます。これらはすべて同じフローを使用し、URLといくつかの注意事項のみが異なります。

  • OpenAI互換を有効にして起動します(組み込み)。デフォルト:http://127.0.0.1:5001/v1。
  • API互換性:OpenAI-Compatible。endpoint_url:http://127.0.0.1:5001/v1。
  • Ollamaと同様に コンテキストウィンドウ上書き を尊重します。
  • ComfyUIジョブ中にモデルをアンロードするには、--admin と --admindir も指定して起動します(ComfyUIとGPUを共有する を参照)。
  • GGUFモデルを読み込みます。モデル名は、読み込まれたモデルが報告するもの(多くの場合ファイル名の語幹)です。KoboldCPPの /v1/models レスポンスを確認してください。
  • 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で、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。

Ollamaの厳選されたライブラリに加えて、Hugging Face は数千のコミュニティモデルをホストしています。KoboldCPP、llama.cpp、LM StudioはすべてGGUFフォーマットを読み込むことができます。これは、ダウンロードしてサーバーに指定する単一ファイルのパッケージです。

  1. GGUFを見つける。 Hugging Faceで目的のモデル名と「GGUF」を検索します。bartowski のようなコミュニティクオンタイザーは、リリース後すぐに人気モデルのGGUFビルドを公開します。instruct/chatバリアント(-Instruct または -Chat で終わる名前)を優先してください。ベースモデルでは会話が成り立ちません。
  2. VRAMに収まる量子化を選択する。 リポジトリには同じモデルの多くの量子化レベルが一覧表示されており、ファイルサイズ ≈ 必要なVRAM(プラス、コンテキスト用の約1-2 GB。上記の サイズ表 のルールと同じ)です。選択した単一の .gguf をダウンロードします。
  3. 読み込む。 そのファイルでKoboldCPPまたは llama-server を起動し(その他のサーバー を参照)、通常通りDiscordでエンドポイントを登録します。
  • 1つのラベルにつき1つのエンドポイント項目: 1つのサーバーを共有する複数のモデルを登録するには、保存したエンドポイントを選択し、モデルのドロップダウンを再度使用します。まったく異なるサーバーまたはAPIプロトコルには別々のラベルを使用してください。
  • モデル名はAPI識別子です: サーバーに送信される正確な文字列です。これを間違えることが、「接続できたが応答に失敗する」最も一般的な原因です。
  • TomoriBotをDockerで実行している場合: コンテナ内の localhost はホストではありません。http://host.docker.internal:<port>(Windows/macOS)またはホストのLAN IPを使用し、モデルサーバーを 0.0.0.0 にバインドしてください。
  • Composeを使用している場合: RUN_ENV=development 設定により、ローカルHTTPエンドポイントが許可されます。本番環境のランタイムはHTTPSを強制し、呼び出し元が明示的に許可しない限りプライベートネットワークの宛先をブロックします。FETCH_URL_ALLOW_PRIVATE_NETWORK=true は本番環境で fetch_url に対してプライベートな宛先を許可しますが、プロバイダーエンドポイントのルールは変更しません。クラウドメタデータアドレスはすべてのモードでブロックされたままになります。