---
title: "ルーティング実践"
description: "モデル例外、プロトコル変換、デフォルト、推論マッピングで一般的なルーティングを構成します。"
version: "ja"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.ochub.org/ja/llms.txt
> Use this file to discover all available pages before exploring further.

# ルーティング実践

このガイドは[動作するモデルプロバイダー](/ja/getting-started/relay)があり、少なくとも
1 ツールから OcHub 経由のリクエストが成功していることを前提にします。各例では 1 層だけを
追加し、ログで効果を確認します。

## 判定順序

1. クライアントの Anthropic Messages、OpenAI Chat、OpenAI Responses を識別。
2. アプリに接続されたモデルプロバイダーを取得。
3. クライアントモデルを最初に一致する例外へ照合。
4. 上流へ送るモデル名を決定。
5. 有効なインターフェースから候補を作成。
6. ネイティブを優先し、変換可能な代替を試行。
7. 推論パラメーターを変換または削除。
8. リクエストモデル、上流モデル、課金モデル、トークン、状態、レイテンシーを記録。

モデルプロバイダーの 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` へ送ります。

1. モデルプロバイダーを編集し「モデル例外」を開きます。
2. モデルまたはパターンに `claude-sonnet-current`。
3. 上流モデルに `anthropic/claude-sonnet-4-6`。
4. インターフェースは自動。
5. 保存してエイリアスでリクエスト。
6. 詳細のリクエストモデル、モデル、課金モデルを比較。

一部上流は変換後もクライアントエイリアスを返します。必要ならプロバイダー側ログも比較します。

## 例 2：Codex から Chat 専用上流を使う

1. Chat 上流の基点を `/v1/chat/completions` なしで入力します。
2. **OpenAI Chat**だけを有効にします。
3. モデルプロバイダーを **Codex** へ適用します。
4. 最初はモデル例外を追加せず、Responses → Chat 自動変換を使います。
5. Codex を再起動し、Responses 固有機能に依存しない短いリクエストを送ります。
6. 使用量で状態、モデル、出力を確認します。

通常リクエストは変換できますが：

- Codex のリモート圧縮は Responses 上流が必要。
- Responses 固有項目は削除されるか完全に変換できない場合がある。
- ツール呼び出し、構造化出力、推論は上流実装に依存。

後から Responses が追加されたら検出して有効にします。自動ルーティングがネイティブを優先します。

## 例 3：モデル系列ごとにインターフェースを固定

| モデルまたはパターン | 上流モデル | インターフェース |
| --- | --- | --- |
| `claude-*` | 空 | Anthropic Messages |
| `gpt-*` | 空 | OpenAI Responses |

モデル名を維持し、プロトコルだけを固定します。特定終点だけでモデルが使える、資料が推奨する、
通常テキストは動くがツール呼び出しが失敗する場合に使います。

例外が参照するインターフェースは無効化できません。

## 例 4：上流が 1 モデルだけ

すべてを `company-model-v2` へ送る場合：

```text
デフォルトモデル：company-model-v2
```

同時に `*` 例外を追加する必要はありません。デフォルトは例外に一致しないすべてを処理します。

1 モデルの内部ゲートウェイやクライアント側モデルを変えられない場合に適します。モデル選択が
必要、誤記を発見したい、価格差が大きい場合には適しません。

## 例 5：モデルとインターフェースを同時変更

| フィールド | 値 |
| --- | --- |
| モデルまたはパターン | `claude-*` |
| 上流モデル | `company-reasoner` |
| インターフェース | OpenAI Chat |

モデル変換と Messages → Chat を同時に行います。先に通常テキスト、次にツール呼び出しを
確認します。失敗時は一度インターフェースを自動へ戻してモデルを確認し、その後 Chat を固定します。

## 例 6：推論強度を統一する

| モード | 動作 | 用途 |
| --- | --- | --- |
| 自動マッピング | 強度とトークン予算を変換 | 複数 CLI で上流共有 |
| そのまま渡す | クライアント項目を維持 | プロトコルが完全一致 |
| 推論を無効化 | 関連項目を削除 | 上流が拒否 |

自動の 4 予算は正の昇順にします。

1. 上流の最小、標準、最大を確認。
2. 低に有効な最小値。
3. 中、高、最大を制限内で増加。
4. 中を先に確認。
5. レイテンシー、出力、トークンを比較して調整。

高い予算は最初のトークンと請求トークンを増やす場合があります。

## 例 7：予備のモデルプロバイダーを準備する

OcHub が自動で選択・再試行するのは**1 つのモデルプロバイダー内の有効インターフェース**です。
別のモデルプロバイダーのカードへの移動は自動ではありません。

1. 主系と予備を作成。
2. 両方で検出と実リクエストを確認。
3. 同等のエイリアスを設定。
4. 通常は主系へ接続。
5. 障害時にアプリページから予備へ手動切り替え。
6. 短いリクエストとログを確認。
7. 復旧後に戻す。

障害中にプロトコル、マッピング、予算、価格を同時変更せず、まず利用可能な経路を復元します。

## リクエストログで確認する

| 項目 | 確認内容 |
| --- | --- |
| アプリ | クライアントの帰属 |
| プロバイダー | 期待するモデルプロバイダー |
| リクエストモデル | 元モデルまたはエイリアス |
| モデル | 上流が返した／実際のモデル |
| 課金モデル | 価格表に使うモデル |
| 状態 | HTTP 成否 |
| 最初のトークン | 出力開始までの待ち時間 |
| 所要時間 | 全体の時間 |
| エラー | 認証、ルーティング、モデル、上流障害 |

毎回 1 変数だけを変え、識別しやすい短いプロンプトを使います。

## 診断表

| 症状 | 原因 | 次の手順 |
| --- | --- | --- |
| 404 で全検出失敗 | 完全パスまたは余分な `/v1` | origin／接頭辞へ戻す |
| `no gateway channel serves model` | 候補が残らない | パターンと有効インターフェースを確認 |
| モデル未変換 | ルール不一致または順序 | 正確なモデルで試し前へ移動 |
| デフォルト無効 | 別の例外に一致 | 例外削除または上流モデルを設定 |
| テキスト成功、ツール失敗 | 変換または上流機能不足 | ネイティブを優先 |
| Codex 圧縮失敗 | Responses 上流なし | Responses を有効化または機能無効化 |
| レイテンシー増加 | 変換、推論予算、上流状態 | 詳細と予備を比較 |
| コスト 0 | 課金モデルに価格なし | [価格設定](/ja/advanced/pricing)を追加 |

ルール安定後、他ツールへ 1 つずつ適用し、各プロトコルで実リクエストを確認します。

Source: https://docs.ochub.org/ja/advanced/routing-recipes/index.mdx
