このガイドは動作するモデルプロバイダーがあり、少なくとも 1 ツールから OcHub 経由のリクエストが成功していることを前提にします。各例では 1 層だけを 追加し、ログで効果を確認します。
判定順序
- クライアントの Anthropic Messages、OpenAI Chat、OpenAI Responses を識別。
- アプリに接続されたモデルプロバイダーを取得。
- クライアントモデルを最初に一致する例外へ照合。
- 上流へ送るモデル名を決定。
- 有効なインターフェースから候補を作成。
- ネイティブを優先し、変換可能な代替を試行。
- 推論パラメーターを変換または削除。
- リクエストモデル、上流モデル、課金モデル、トークン、状態、レイテンシーを記録。
モデルプロバイダーの API アドレスには標準推論パスではなく上流の origin またはカスタム接頭辞を
入力します。最終 URL が https://api.example.com/v1/messages なら、通常は
https://api.example.com と入力し、OcHub がパスを追加します。
モデル名の優先順位
| 一致条件 | 上流へ送るモデル |
|---|---|
| 例外に一致し、上流モデルあり | 例外の上流モデル |
| 例外に一致し、上流モデルは空 | 元のクライアントモデル |
| 例外なし、デフォルトあり | デフォルトモデル |
| 例外もデフォルトもなし | 元のクライアントモデル |
インターフェースだけを固定しモデルを空にした例外は、デフォルトモデルを通過せず元モデルを 維持します。
パターンは claude-*、*-reasoning、gpt-*-mini のように * を使えます。最初に
一致したルールが使われるため、正確なモデルを広いパターンより前に置きます。
例 1:クライアントエイリアスを変換する
クライアントの claude-sonnet-current を上流の
anthropic/claude-sonnet-4-6 へ送ります。
- モデルプロバイダーを編集し「モデル例外」を開きます。
- モデルまたはパターンに
claude-sonnet-current。 - 上流モデルに
anthropic/claude-sonnet-4-6。 - インターフェースは自動。
- 保存してエイリアスでリクエスト。
- 詳細のリクエストモデル、モデル、課金モデルを比較。
一部上流は変換後もクライアントエイリアスを返します。必要ならプロバイダー側ログも比較します。
例 2:Codex から Chat 専用上流を使う
- Chat 上流の基点を
/v1/chat/completionsなしで入力します。 - OpenAI Chatだけを有効にします。
- モデルプロバイダーを Codex へ適用します。
- 最初はモデル例外を追加せず、Responses → Chat 自動変換を使います。
- Codex を再起動し、Responses 固有機能に依存しない短いリクエストを送ります。
- 使用量で状態、モデル、出力を確認します。
通常リクエストは変換できますが:
- Codex のリモート圧縮は Responses 上流が必要。
- Responses 固有項目は削除されるか完全に変換できない場合がある。
- ツール呼び出し、構造化出力、推論は上流実装に依存。
後から Responses が追加されたら検出して有効にします。自動ルーティングがネイティブを優先します。
例 3:モデル系列ごとにインターフェースを固定
| モデルまたはパターン | 上流モデル | インターフェース |
|---|---|---|
claude-* |
空 | Anthropic Messages |
gpt-* |
空 | OpenAI Responses |
モデル名を維持し、プロトコルだけを固定します。特定終点だけでモデルが使える、資料が推奨する、 通常テキストは動くがツール呼び出しが失敗する場合に使います。
例外が参照するインターフェースは無効化できません。
例 4:上流が 1 モデルだけ
すべてを company-model-v2 へ送る場合:
デフォルトモデル:company-model-v2同時に * 例外を追加する必要はありません。デフォルトは例外に一致しないすべてを処理します。
1 モデルの内部ゲートウェイやクライアント側モデルを変えられない場合に適します。モデル選択が 必要、誤記を発見したい、価格差が大きい場合には適しません。
例 5:モデルとインターフェースを同時変更
| フィールド | 値 |
|---|---|
| モデルまたはパターン | claude-* |
| 上流モデル | company-reasoner |
| インターフェース | OpenAI Chat |
モデル変換と Messages → Chat を同時に行います。先に通常テキスト、次にツール呼び出しを 確認します。失敗時は一度インターフェースを自動へ戻してモデルを確認し、その後 Chat を固定します。
例 6:推論強度を統一する
| モード | 動作 | 用途 |
|---|---|---|
| 自動マッピング | 強度とトークン予算を変換 | 複数 CLI で上流共有 |
| そのまま渡す | クライアント項目を維持 | プロトコルが完全一致 |
| 推論を無効化 | 関連項目を削除 | 上流が拒否 |
自動の 4 予算は正の昇順にします。
- 上流の最小、標準、最大を確認。
- 低に有効な最小値。
- 中、高、最大を制限内で増加。
- 中を先に確認。
- レイテンシー、出力、トークンを比較して調整。
高い予算は最初のトークンと請求トークンを増やす場合があります。
例 7:予備のモデルプロバイダーを準備する
OcHub が自動で選択・再試行するのは1 つのモデルプロバイダー内の有効インターフェースです。 別のモデルプロバイダーのカードへの移動は自動ではありません。
- 主系と予備を作成。
- 両方で検出と実リクエストを確認。
- 同等のエイリアスを設定。
- 通常は主系へ接続。
- 障害時にアプリページから予備へ手動切り替え。
- 短いリクエストとログを確認。
- 復旧後に戻す。
障害中にプロトコル、マッピング、予算、価格を同時変更せず、まず利用可能な経路を復元します。
リクエストログで確認する
| 項目 | 確認内容 |
|---|---|
| アプリ | クライアントの帰属 |
| プロバイダー | 期待するモデルプロバイダー |
| リクエストモデル | 元モデルまたはエイリアス |
| モデル | 上流が返した/実際のモデル |
| 課金モデル | 価格表に使うモデル |
| 状態 | HTTP 成否 |
| 最初のトークン | 出力開始までの待ち時間 |
| 所要時間 | 全体の時間 |
| エラー | 認証、ルーティング、モデル、上流障害 |
毎回 1 変数だけを変え、識別しやすい短いプロンプトを使います。
診断表
| 症状 | 原因 | 次の手順 |
|---|---|---|
| 404 で全検出失敗 | 完全パスまたは余分な /v1 |
origin/接頭辞へ戻す |
no gateway channel serves model |
候補が残らない | パターンと有効インターフェースを確認 |
| モデル未変換 | ルール不一致または順序 | 正確なモデルで試し前へ移動 |
| デフォルト無効 | 別の例外に一致 | 例外削除または上流モデルを設定 |
| テキスト成功、ツール失敗 | 変換または上流機能不足 | ネイティブを優先 |
| Codex 圧縮失敗 | Responses 上流なし | Responses を有効化または機能無効化 |
| レイテンシー増加 | 変換、推論予算、上流状態 | 詳細と予備を比較 |
| コスト 0 | 課金モデルに価格なし | 価格設定を追加 |
ルール安定後、他ツールへ 1 つずつ適用し、各プロトコルで実リクエストを確認します。

