Open WebUI を、カスタムの OpenAI 互換エンドポイントに接続する。

Updated 2026-07-29

Open WebUI は OpenAI 互換の接続を管理者設定のファーストクラスの項目として扱います。Admin Settings で https://api.apisrouter.com/v1 とキー1つを設定して接続を追加すれば、カタログの全モデルがすべてのユーザーのモデルセレクターに、ローカルで動く既存のモデルと並んで現れます。

早わかり: Admin Settings に接続を1つ。

管理者として Admin Settings を開き、Connections に進み、OpenAI API のセクションで接続を追加します。重要なのは2つのフィールドだけです。URL を https://api.apisrouter.com/v1 に設定し、API キーを入力します。保存すると、Open WebUI がそのエンドポイントの /v1/models 一覧を問い合わせてモデルセレクターを埋めます。接続のチェック機能で確認したうえで、新しいチャットでカタログの任意の id を選んでください。 この方法で追加した接続はワークスペース全体に及びます。導入している Open WebUI インスタンスのすべてのユーザーが、設定したモデルアクセスの制御の範囲内でモデルを目にします。同じ値はデプロイ時の環境変数、OPENAI_API_BASE_URL と OPENAI_API_KEY としても指定でき、compose ファイルでプロビジョニングする導入では、クリックして設定するよりこちらの方がすっきりします。

URL:      https://api.apisrouter.com/v1
API Key:  sk-YOUR-APISROUTER-KEY

Save → models auto-populate from /v1/models
(optional) Model IDs allowlist to curate the selector

Open WebUI が OpenAI 接続をどう使うか。

Open WebUI(GitHub スター数はおよそ145K)は、デフォルトのセルフホスト型 AI チャットフロントエンドです。ユーザーと権限、RAG やナレッジコレクション、ツール呼び出し、モデル管理を備えたフル機能の Web クライアントで、ローカルモデル向けには古典的に Ollama と組み合わされますが、リモート API と話すのにも同じくらい向いています。 その接続モデルは加算的です。Ollama のセクションがローカルランタイムをカバーし、OpenAI API のセクションが標準的なチャット補完方言を話すあらゆるエンドポイントをカバーします。複数の接続を並べて追加でき、それぞれが独自のキーを持ち、設定を消さずにオン・オフを切り替えられます。リクエストはモデル id をプレーンな文字列として、対応する接続へ運びます。 この設計は、ゲートウェイの接続が何かを置き換えるわけではないことを意味します。ローカルのモデルは Ollama 経由で、トークンあたりのコストなしにそのまま動き続け、claude-sonnet-4-6、gpt-5.5、gemini-3.5-flash、deepseek-v4-pro が、フロンティア級の品質を必要とする会話向けにセレクターのエントリとして加わります。すべてがキー1つでカバーされ、クラウドのトラフィックがちょうど1か所から出ていくため、管理者側の利用状況は読みやすいままです。

デプロイ時の設定: 環境変数。

docker-compose や Kubernetes の導入では、この接続をマニフェストの一部にできます。OPENAI_API_BASE_URL がエンドポイントを、OPENAI_API_KEY がキーを取り、インスタンスは接続がすでに存在する状態で起動します。複数のエンドポイントは複数形(OPENAI_API_BASE_URLS と OPENAI_API_KEYS を、セミコロン区切りの値で)によって、複数のリモートソースを運用する場合に対応できます。 運用上の注意が2つあります。1つ目は、UI 経由で設定された値は Open WebUI のデータベースに永続化され、初回起動後は環境変数のデフォルト値より優先されるというドキュメント化された挙動です。これは、環境変数を変更したのに何も起きないと驚く運用者が定期的に出るポイントです。Admin Settings で既存の接続を編集するか、環境変数を優先させ続けたい場合は ENABLE_PERSISTENT_CONFIG=false を設定してください。2つ目は、エンドポイントのモデル一覧が大きい場合、接続の Model IDs allowlist を使ってユーザーに見せる範囲をキュレーションすることです。4項目のセレクターは実際に使われますが、200項目のセレクターはスクロールされて終わります。 バージョンの注意: プロジェクトの速いリリースサイクルに伴い、メニューの文言は動いています(Settings と Admin Settings、Connections 内のセクション名など)。古いビルドでは、接続が置かれている場所を探して OpenAI API のベース URL とキーのペアを見つけてください。

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    environment:
      - OPENAI_API_BASE_URL=https://api.apisrouter.com/v1
      - OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY
    ports:
      - "3000:8080"

マルチユーザーワークスペース向けのモデル選び。

すべてのクラウドモデルが1つのキーで課金されるため、A/B テストはセレクターの選択で済みます。同じチームのワークロードを2週間の間隔をあけて2つの候補デフォルトで走らせ、ベンチマークで推測するのではなく、APIsRouter コンソールのモデルごと・日ごとの利用状況ビューに判定させてください。

  • 共有インスタンスでは既定モデルの選択が最も効いてきます。claude-haiku-4-5-20251001 や gemini-3.5-flash をワークスペースの既定にしておけば、何気ない利用のたびのコストを低く一定に保てます。
  • claude-sonnet-4-6 と gpt-5.5 は、下書き・分析・コードに関する質問向けにセレクターに置いておく価値があります。タスクがそれに値するときに、ユーザーが自分でステップアップします。
  • RAG パイプラインは入力トークンを増幅させます。応答のたびに検索されたチャンクが文脈として運ばれるからです。deepseek-v4-pro は RAG の主力として試す価値があり、トークンあたりの長文脈処理の性能が決め手になります。
  • 本当に機密性の高い素材はローカルのモデルに Ollama 経由でとどめ、それ以外はゲートウェイ経由に回してください。セレクターは両方のレーンを正直に保持します。
  • Model IDs allowlist をポリシーとして使いましょう。セレクターにないものは、利用ログで思わぬ形で驚かせることがありません。

従量課金 · 公式価格より安い

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

モデル公式価格当社価格
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M

Open WebUI に特有の失敗パターン。

接続を追加してもモデルが1件も現れないのが最もよくある報告です。原因の順としては、キーが /v1/models に対して失敗している(接続の検証機能で確認してください)、URL に /v1 サフィックスが欠けている、あるいは接続のトグルがオフになっている、のいずれかです。Open WebUI はモデル一覧が返す内容からセレクターを組み立てるため、セレクターが空なのは一覧の呼び出しが失敗したか何も返さなかったことを意味します。 環境変数の変更が無視されているように見えるのは、上で説明した永続設定のルールが原因です。初回起動後は、UI が管理する設定について、データベースの値が環境変数に優先します。Admin Settings で接続を編集するか、永続設定を明示的に無効化してください。 一覧には出るのにチャットでエラーになるモデルは、たいてい一覧には出るもののキーでは使えない id か、Model IDs allowlist を手作業で編集した際のタイプミスです。生の /v1/models の出力と比較してください。 そしてデバッグの際はレーンを正しく分けてください。Ollama 接続の問題と OpenAI 接続の問題は、チャットウィンドウからは同じように見えます。Connections ページはどのモデルがどちらのレーンに属するかを示すので、インスタンス全体が落ちていると決めつける前に、失敗しているレーンを直接テストしてください。

ゲートウェイ経由で Open WebUI を使うのは誰か。

  • 全員のためのチャットフロントエンドをセルフホストし、個々のユーザーにベンダーのキーを配布することなくフロンティア級のモデルを使えるようにしたいチーム。
  • プライベートな作業のためにローカルモデルを維持しつつ、必要な会話には Claude や GPT の品質を同じセレクターの中で使いたい Ollama ユーザー。
  • クラウドの請求を読みやすくしたい管理者。4つのベンダーからの領収書ではなく、接続1つ、キー1つ、モデルごとの利用ログにできます。
  • 一部のベンダーのサインアップが面倒な地域の運用者。チャージ制でカード不要のアクセスなら、プロバイダーごとの依存を取り除けます。
  • 世帯のために Open WebUI を動かすホームラボユーザー。1つの前払い残高は、どんなサブスクリプションよりも把握しやすいです。

エンドポイントを検証し、最初のチャットをデバッグする。

特にコンテナ化された導入では、コンテナのネットワークがあなたのラップトップと同じではないことがあるので、まずサーバー側からエンドポイントを証明してください。ホストの内側からのモデル一覧と1回のチャット補完で、Open WebUI が関わる前にゲートウェイ側が確認できます。 次に接続を追加してセレクターが埋まるのを見てください。認証エラーはキー欄を指します。空のセレクターは一覧の呼び出しを指します。サーバーログに現れるパスの二重化(/v1/v1/...)は、URL フィールドにすでに /v1 が入っていて何かがさらに付け足していることを意味するので、保存された URL をそのまま正確に読んでください。 チャットが流れ始めたら、APIsRouter コンソールがリクエストごとのモデル、トークン数、支出を表示します。マルチユーザーインスタンスにとって、これこそが重要な数字です。ユーザーが実際にどのモデルを選んでいるか、そしてワークスペースの1週間分が本当にいくらかかっているか、モデルごと・日ごとに1ページで確認できます。

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"claude-haiku-4-5-20251001",
       "messages":[{"role":"user","content":"ping"}]}'

よくある質問

Open WebUI にカスタムの OpenAI API エンドポイントを追加するには?

Admin Settings で Connections を開き、OpenAI API のセクションで接続を追加します。URL は https://api.apisrouter.com/v1、それにあなたのキーです。保存すると、そのエンドポイントの /v1/models 一覧からモデルセレクターが埋まります。Model IDs allowlist でセレクターをキュレーションしてください。

URL に /v1 サフィックスは必要ですか?

はい。Open WebUI は与えられたベース URL に /chat/completions のようなルートパスを付け足すため、正しい値は https://api.apisrouter.com/v1 です。サフィックスが欠けているとモデルリストが空になり、二重になっているとログに /v1/v1 の 404 が現れます。

Ollama とゲートウェイ接続を同時に使えますか?

はい、それが標準的な構成です。Ollama 接続と OpenAI API 接続は別々のセクションで、どちらもモデルセレクターに供給するため、ローカルモデルと claude-sonnet-4-6 のようなカタログの id が並んで表示され、会話ごとにレーンを選べます。

環境変数の変更が無視されるのはなぜですか?

Open WebUI は初回起動後に設定をデータベースに永続化し、永続化された値が環境変数のデフォルトより優先されます。Admin Settings で接続を編集するか、ENABLE_PERSISTENT_CONFIG=false を設定して、再起動をまたいで環境変数を優先させ続けてください。

管理者接続からのモデルはすべてのユーザーに見えますか?

Admin Settings で追加された接続は既定でワークスペース全体に及びますが、お使いのバージョンが提供するモデルアクセスやワークスペース権限の制御の範囲内です。ユーザーごとのキーではなく、Model IDs allowlist とモデルごとのアクセス設定でセレクターをキュレーションしてください。

Open WebUI から1つの OpenAI 接続で Claude や Gemini に届きますか?

はい。接続は標準的なチャット補完を話し、モデル id をプレーンな文字列として転送するため、ゲートウェイが提供する id なら何でも動作します。Claude・Gemini・DeepSeek・GPT の id が、1つの URL と1つのキーですべて使えます。