Skip to content

LLM 提供商

提供商 是 PRX 连接到大语言模型推理后端的抽象层。每个提供商实现统一的 Provider trait,通过工厂模式注册,PRX 在运行时根据配置动态创建对应实例。

PRX 目前支持 9 个原生提供商 和一个 OpenAI 兼容适配器(可对接任意兼容端点),共计覆盖数百个模型。

能力矩阵

提供商代表模型流式输出视觉理解工具调用OAuth 支持自托管
Anthropic (Claude)claude-sonnet-4-6, claude-opus-4原生是 (Claude Code)
OpenAIgpt-4o, o3原生
Google Geminigemini-2.5-pro, gemini-2.5-flash原生
OpenAI Codexcodex-mini原生
GitHub Copilotgpt-4o (via Copilot)原生
Ollamallama3, qwen2.5, deepseek原生
AWS Bedrockclaude-3.5-sonnet, titan原生
GLM (智谱)glm-4, glm-4-flash原生
OpenRouter聚合 300+ 模型原生
自定义兼容任意 OpenAI 兼容端点自动检测原生视端点

所有提供商均支持原生工具调用

PRX 的 ProviderCapabilities 结构体统一声明 native_tool_callingvision 能力。所有内置提供商均已实现原生工具调用支持。

快速配置

~/.openprx/config.toml 中设置默认提供商和模型:

toml
# 默认提供商与模型
default_provider = "anthropic"
default_model = "claude-sonnet-4-6"
default_temperature = 0.7
api_key = "sk-ant-..."

也可以通过环境变量覆盖 API Key(优先级高于配置文件):

bash
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GEMINI_API_KEY="AIza..."

使用引导向导完成交互式配置:

bash
prx onboard

故障转移链 (ReliableProvider)

PRX 通过 ReliableProvider 包装器实现多提供商故障转移链。当主提供商请求失败时,自动切换到备用提供商,支持自动重试和指数退避。

错误分类机制:

  • 可重试错误:HTTP 429(限速)、408(超时)、5xx(服务端错误)、网络连接中断
  • 不可重试错误:HTTP 4xx(认证失败、模型不存在、请求格式错误)
toml
[reliability]
max_retries = 3
fallback_providers = ["openai", "gemini"]

当配置了 fallback_providers 时,PRX 会按顺序尝试备用提供商,直到请求成功或所有提供商均已耗尽。

工作流程:

请求 → 主提供商 (anthropic)
         │ 失败 (可重试)

       重试 (指数退避)
         │ 仍然失败

       备用提供商 1 (openai)
         │ 失败

       备用提供商 2 (gemini)
         │ 成功

       返回结果

路由集成

ReliableProviderLLM 路由器 深度集成。路由器根据任务类型、模型能力、成本和延迟等维度,智能选择最优的提供商和模型组合。

toml
[router]
enabled = true
knn_enabled = true

[router.automix]
enabled = true
confidence_threshold = 0.7

路由器支持三种模式:

  • 启发式路由:基于加权评分(能力、成本、延迟、Elo 评分)选择模型
  • KNN 路由:基于历史查询的语义相似度投票
  • Automix:从低成本模型开始,根据置信度自适应升级

详见 LLM 路由概述

各提供商专页

扩展新提供商

要添加新的提供商,需要:

  1. src/providers/ 下创建新子模块
  2. 实现 Provider trait(capabilitieschatstream 等方法)
  3. create_provider_with_url 工厂函数中注册

详见项目 AGENTS.md 第 7.1 节。

Released under the Apache-2.0 License.