目次:痛点 · デプロイ · ルーティング · 観測 · 検収 · FAQ
並行とキープアライブはキープアライブ稿、複数モデル振分は多モデル稿、エージェント編成はエージェント稿、全体はホームをご参照ください。
痛みは三つ
一つ目、並行槽を超えると応答が直列化し対話体験が崩れます。二つ目、Ollama を裸で公開すると鍵管理が散逸し監査が困難になります。三つ目、夜間ソークで単価が暴れ請求しきい値を越えます。
| 観点 | 単機運用(Ollama 直) | 多ユーザー OpenWebUI+Ollama |
|---|---|---|
| 公開面 | Ollama を直接 listen | OpenWebUI のみ、Ollama はループバック |
| 認証 | なし | WEBUI_AUTH+発行 Bearer |
| 並行槽 | 単一 | OLLAMA_NUM_PARALLEL+会話別上限 |
| API ルート | /api/generate | /v1/chat/completions・/v1/embeddings・/v1/models |
| 単価管理 | 任意 | モデル別名+RPM・TPM・連敗で熔断 |
デプロイ
一、Ollama は 127.0.0.1 のみで listen し、外部公開は OpenWebUI 側に統一します。二、OpenWebUI は OPENAI_API_BASE_URL=http://127.0.0.1:11434/v1 を指定。三、WEBUI_AUTH=true・ENABLE_SIGNUP=false で利用者追加を制限。四、OLLAMA_NUM_PARALLEL と OLLAMA_KEEP_ALIVE をモデル別に固定し launchd で常駐。五、Bearer は環境変数注入のみ、平文ログには残しません。六、外部公開は SSH トンネルか Cloudflare Tunnel で 443 のみ穿ちます。
ルーティング
OpenAI 互換ルート(/v1/chat/completions・/v1/embeddings・/v1/models)にモデル別名を貼り、gpt-4o-mini 等の文字列を内部の Ollama tag に翻訳します。並行槽は会話単位で発行し、超過分は 429 で短く待機させます。RPM・TPM・連敗の三カウンタが閾値を超えたらサーキットを半開、回復は単発成功で閉じます。フォールバックは短文モデルへ自動降格し、ストリーム途中の遮断は再試行を禁止します。
観測
公開前に GET /v1/models で応答とエイリアスを突合し、起動の自己診断とします。Dashboard には並行・KV ピーク・第九五分位・連敗回数・コスト累計の五指標のみを置きます。OpenTelemetry GenAI スパンに gen_ai.request.model・prompt_tokens・completion_tokens を載せ、ログには本文と Bearer を残しません。相関識別子は会話 ID と user ID をハッシュ化して結合します。
検収チェックリスト
- 並行槽:最大六会話で待機なし、超過は 429 を短く返す
- 鍵トークン:Bearer は launchd 注入、ローテ周期七日
- API ルート:
/v1/modelsの自己診断が緑、別名と tag が一致 - 連敗熔断:連敗五件で半開、回復は単発成功で閉
- コストしきい値:夜間六時間ソークで第九五分位と請求粒度を突合
- 単価降格:閾値超過で短文モデルへ自動切替、再試行は禁止
FAQ
Ollama を直接公開してよいですか。多ユーザー環境では推奨いたしません。OpenWebUI を経由し、認証と並行槽を効かせてください。
KV cache を共有できますか。同一モデル・同一プロンプト前置であれば共有可能ですが、別モデルでは独立になります。
請求が暴れた場合は。連敗閾値を下げ、降格モデルを先に切替えるとともに、夜間ソークで第九五分位を再測してください。
長時間の多ユーザー検証は Mac mini M4 リモートノードが安定しております。テックブログ・ホーム・料金プランはログイン不要でご覧いただけます。