Skip to content

カスタム Provider

管理カタログから OpenAI Chat Completions または Anthropic Messages のアップストリームを接続します。

公開 SDK base URL との違い#

Anthropic SDK と Claude Code から PleumRouter へ接続する場合は、ルート https://router.pleum.ai を使用します。クライアントが /v1/messages を追加します。この受信面は Messages、count_tokens、tools、SSE に対応しますが、Anthropic の全機能との完全な同等性は保証しません。

https://router.pleum.ai https://api.example.com/v1/messages

管理画面に保存する値#

カスタム provider の base_url は PleumRouter が呼び出す完全なアップストリームエンドポイントです。SDK のルートではないため、/v1/chat/completions または /v1/messages まで含めます。

アップストリーム URL の安全境界#

登録時の URL 構文検証は Unicode の点区切り、非正規の数値 IPv4 表記、非グローバル IP リテラルを拒否し、アップストリーム要求はリダイレクトに従いません。ただし DNS rebinding を完全には防げないため、デプロイ環境のネットワーク制御で private・link-local アドレスへの egress を必ず拒否してください。

プロトコルと認証#

OpenAI Chat Completions は bearer または x-api-key 認証を選べます。Mistral、Groq、xAI、Google・Cohere の互換面、Vercel AI Gateway の openai-compatible 面など、Chat Completions の要求・応答形式を実装するエンドポイントが対象です。

OpenAI Chat Completions
Protocol: OpenAI Chat Completions
Full endpoint: https://api.example.com/v1/chat/completions
Authentication: Authorization: Bearer <encrypted key>

Anthropic Messages は bearer または x-api-key 認証を選べます。Amazon Bedrock Mantle と Microsoft Foundry の Anthropic Messages 互換エンドポイントは、完全な /v1/messages URL を登録できます。

Anthropic Messages
Protocol: Anthropic Messages
Full endpoint: https://api.example.com/v1/messages
Authentication: x-api-key <encrypted key>  # or Authorization: Bearer
OpenAI Chat Completions と Anthropic Messages のどちらでも、新しいカスタム Provider モデルはテキストのみ登録できます。管理 UI が他のモダリティを防ぎ、バックエンドも 422 で再検証します。

互換性の条件#

互換という名称だけでは不十分です。選択したプロトコルの要求・応答 JSON、tool use、usage フィールド、ストリーミング SSE イベントを実際に提供する必要があります。キーは暗号化保存され、選択したヘッダーだけで送信されます。

論理モデルまたは供給元 Provider のいずれかがカスタムの場合、token 単価の既存 image/audio/video/3d モデルは接続できません。正しい非 token 単価の既存メディアは、プロトコル互換なら引き続き接続できます。

現在の対象外#

AWS Bedrock Runtime、Google Vertex AI、OAuth フロー、AWS SigV4 署名は直接対応していません。独自の URL 構築・署名・トークン交換が必要な API を bearer/x-api-key として登録しないでください。

次の任意優先候補#

追加プロトコルはまだ登録しません。次の候補は Ollama native、Gemini native、Cohere v2、その後 Bedrock Runtime・Vertex などの cloud adapter です。