Routing Policies
fallback/weighted/latency/auto とオーケストレーター(cascade/parallel)の作成・一覧・更新・削除。呼び出しは model:"orch/<slug>"(policy/<slug> エイリアス)。
ルーティングポリシー管理エンドポイントは、ダッシュボードのセッショントークン(ログイン済みの JWT)で認証します — Authorization: Bearer <JWT>。これらは SDK 互換のエンドポイントではなく、ダッシュボード管理用 API です。呼び出し時のポリシーの動作はルーティングポリシー機能ドキュメントを参照して ください。
orch/<slug>(policy/<slug>)の呼び出しには運用ゲートが有効になっている必要があります — 既存 4 タイプは routing.policies_enabled(デフォルト on)、cascade・parallel は routing.orchestrators_enabled(ベータ、デフォルト off)。ゲートが off の状態での呼び出しは 400 を返します。一覧・作成#
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| slug | string | 必須 | 呼び出し用の識別子。パターン ^[a-z0-9][a-z0-9-]{0,62}$。"policy/<slug>" として使われます。ユーザーごとに一意(重複時は 409)。 |
| display_name | string | 必須 | 表示名。1〜100 文字。 |
| policy_type | string | 必須 | fallback・weighted・latency・auto・cascade・parallel のいずれか。auto はプール内で意図(カテゴリ)ごとにベンチマークスコア最上位のモデルを自動選択します(selected_smart)。cascade・parallel はオーケストレーター(ベータ)— 詳細は機能ドキュメント参照。 |
| entries | array | 必須 | モデルエントリ 1〜10 個。フィールドは下表参照。cascade では低価格→高性能のティア順、parallel では並列ワーカープールです。 |
| config | object | 任意 | オーケストレーション・パラメータ(JSON DSL):cascade(hard_categories・judge_model・response_check)、parallel(deep_categories・synthesis)、共通の routing_prefs・limits。構造は機能ドキュメント参照。 |
| org_id | string | 任意 | 組織共有 — 自分が所属する組織の UUID。設定すると組織メンバーが呼び出せ、作成者と組織の owner/admin が編集・削除できます。未設定(または空文字列)なら個人用。 |
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| model | string | 必須 | ルーティング先のモデル ID。実在するアクティブなモデルであること(1〜100 文字)。 |
| weight | integer | 任意 | 重み 1〜10000。weighted タイプでのみ意味を持ちます。 |
| retries | integer | 任意 | 同じエントリの繰り返し回数 0〜3(デフォルト 0)。fallback タイプでのみ意味を持ちます。 |
エントリには、実在するアクティブな単価課金の leaf モデルだけを指定できます。他のポリシー (policy/…)、現行ルーティング親(benchmark_smart・analytics_smart・perfect)、廃止済みの親(pleum-smart・pleum-perfect)は 400 で拒否され、存在しない・非アクティブなモデルも 400 になります。
POST は成功時に 201 を、slug がすでに存在する場合は 409 を返します。 GET /v1/routing-policies は {items: [...], total: n} を新しい順で返します。
curl https://apirouter.pleum.ai/v1/routing-policies \
-H "Authorization: Bearer <JWT>" \
-H "Content-Type: application/json" \
-d '{
"slug": "prod-chat",
"display_name": "Prod Chat",
"policy_type": "fallback",
"entries": [
{"model": "claude-sonnet-4-6", "retries": 1},
{"model": "gpt-4o", "retries": 0},
{"model": "gpt-4o-mini", "retries": 0}
]
}'{
"id": "1f0a4c2e-...",
"slug": "prod-chat",
"display_name": "Prod Chat",
"policy_type": "fallback",
"entries": [
{"model": "claude-sonnet-4-6", "retries": 1},
{"model": "gpt-4o", "retries": 0},
{"model": "gpt-4o-mini", "retries": 0}
],
"is_active": true,
"created_at": "2026-07-01T09:00:00Z",
"updated_at": "2026-07-01T09:00:00Z"
}更新・削除#
PATCH は送信したフィールドのみ更新します(display_name・policy_type・entries・is_active)。slug は変更できません。自分の 所有でない(または存在しない)ポリシーは 404。DELETE は {"ok": true} を返します。is_active: false にすると、削除せずに呼び出しだけを止められます。
curl -X PATCH https://apirouter.pleum.ai/v1/routing-policies/1f0a4c2e-... \
-H "Authorization: Bearer <JWT>" \
-H "Content-Type: application/json" \
-d '{"is_active": false}'