Skip to content
このページは AI の支援により作成・翻訳されました。誤りがあれば、改善にご協力ください。 GitHub で編集

LLM プロバイダー

PRX はプロバイダーを通じて大規模言語モデルに接続します。プロバイダーは Provider トレイトを実装するプラガブルなバックエンドで、特定の LLM API に対する認証、リクエストフォーマット、ストリーミング、エラー分類を処理します。

PRX には 9 つの組み込みプロバイダー、サードパーティサービス用の OpenAI 互換エンドポイント、フォールバックチェーンとインテリジェントルーティングのインフラが同梱されています。

機能マトリックス

プロバイダー主要モデルストリーミングビジョンツール使用OAuthセルフホスト
AnthropicClaude Opus 4, Claude Sonnet 4ありありありあり(Claude Code)なし
OpenAIGPT-4o, o1, o3ありありありなしなし
Google GeminiGemini 2.0 Flash, Gemini 1.5 Proありありありあり(Gemini CLI)なし
OpenAI CodexCodex モデルありなしありありなし
GitHub CopilotCopilot Chat モデルありなしありあり(Device Flow)なし
OllamaLlama 3, Mistral, Qwen, 任意の GGUFありモデル依存ありなしあり
AWS BedrockClaude, Titan, Llamaありモデル依存モデル依存AWS IAMなし
GLMGLM-4, Zhipu, Minimax, Moonshot, Qwen, Z.AIありモデル依存モデル依存あり(Minimax/Qwen)なし
OpenRouter複数ベンダーの 200 以上のモデルありモデル依存モデル依存なしなし
カスタム互換任意の OpenAI 互換 APIありエンドポイント依存エンドポイント依存なしあり

クイック設定

プロバイダーは ~/.config/openprx/config.toml(または ~/.openprx/config.toml)で設定します。最低限、デフォルトプロバイダーを設定し API キーを提供します:

toml
# デフォルトプロバイダーとモデルを選択
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"
default_temperature = 0.7

# API キー(ANTHROPIC_API_KEY 環境変数でも設定可能)
api_key = "sk-ant-..."

Ollama のようなセルフホストプロバイダーの場合、エンドポイントを指定します:

toml
default_provider = "ollama"
default_model = "llama3:70b"
api_url = "http://localhost:11434"

各プロバイダーは以下の順序で API キーを解決します:

  1. config.tomlapi_key フィールド
  2. プロバイダー固有の環境変数(例: ANTHROPIC_API_KEYOPENAI_API_KEY
  3. 汎用の API_KEY 環境変数

サポートされる変数の完全なリストは環境変数を参照してください。

ReliableProvider によるフォールバックチェーン

PRX はプロバイダー呼び出しを ReliableProvider レイヤーでラップし、以下を提供します:

  • 自動リトライ -- 一時的な障害(5xx、429 レート制限、ネットワークタイムアウト)に対する指数バックオフ付きリトライ
  • フォールバックチェーン -- プライマリプロバイダーが失敗した場合、リクエストは自動的にチェーン内の次のプロバイダーにルーティング
  • リトライ不要エラーの検出 -- 無効な API キー(401/403)や不明なモデル(404)などのクライアントエラーはリトライを無駄にせず即座に失敗

信頼性を [reliability] セクションで設定:

toml
[reliability]
max_retries = 3
fallback_providers = ["openai", "gemini"]

プライマリプロバイダー(例: Anthropic)が一時的なエラーを返した場合、PRX はバックオフ付きで最大 max_retries 回リトライします。すべてのリトライが尽きると、最初のフォールバックプロバイダーに移行します。成功するレスポンスが得られるかすべてのプロバイダーが尽きるまでフォールバックチェーンは続行されます。

エラー分類

ReliableProvider はエラーを 2 つのカテゴリに分類します:

  • リトライ可能: HTTP 5xx、429(レート制限)、408(タイムアウト)、ネットワークエラー
  • リトライ不可: HTTP 4xx(429/408 を除く)、無効な API キー、不明なモデル、不正なレスポンス

リトライ不可エラーはリトライをスキップし、即座に次のプロバイダーに移行して、レイテンシの無駄を回避します。

ルーター統合

高度なマルチモデルセットアップのために、PRX はリクエストごとに最適なプロバイダーとモデルを選択するヒューリスティック LLM ルーターをサポートします:

  • 機能スコアリング -- クエリの複雑さとモデルの強みをマッチング
  • Elo レーティング -- 時間経過に伴うモデルパフォーマンスを追跡
  • コスト最適化 -- シンプルなクエリにはより安価なモデルを優先
  • レイテンシ重み付け -- レスポンス時間を考慮
  • KNN セマンティックルーティング -- 類似度ベースのルーティングのために過去のクエリエンベディングを使用
  • Automix エスカレーション -- 安価なモデルで開始し、信頼度が低い場合にプレミアムモデルにエスカレーション
toml
[router]
enabled = true
knn_enabled = true

[router.automix]
enabled = true
confidence_threshold = 0.7
premium_model_id = "anthropic/claude-sonnet-4-6"

詳細はルーター設定を参照してください。

プロバイダーページ

Released under the Apache-2.0 License.