现状问题
供应商配置目前围绕五个写死的类型(claude_code / codex / gemini / xai / deepseek)展开,带来几个结构性限制:
- 接口与供应商绑死:一个实例只能走一种请求格式。同一家中转同时提供 Anthropic Messages、OpenAI Chat Completions / Responses、Gemini 四类接口时,只能建多个实例重复配置。
- 新增渠道要改代码:每接一家厂商都要动类型枚举与分支逻辑,而不是加一条数据。
- 单 Key、单地址:一个供应商只能配一把 Key、一个地址。多账号、多入口主机(同一服务的
a.com 与 b.com)无法表达。
- 模型元数据分散:上下文窗口、最大输出、模态、能力、思考档位散落在多处手写表与启发式里,容易过期且没有统一的查看入口。
- 失败无兜底:请求失败只能整体报错,没有换 Key、换接口、换主机的自动重试。
- 配置门槛高:用户要自己判断填哪个地址、用哪种格式,没有探测与自动配置。
期望
- 聊天接口收敛为四类(Anthropic Messages、OpenAI Chat Completions、OpenAI Responses、Gemini generateContent),厂商差异作为同一接口下的实现变体处理。
- 供应商预设做成随应用发布的数据(注册表),新增渠道只加数据不加代码分支。
- 一个供应商可同时挂多个接口端点,各自独立配置地址与请求细节。
- 支持多把 Key(各带模型范围)与多个源地址。
- 模型元数据有唯一来源与分层覆盖规则,并提供可查看的目录。
- 请求失败可按凭据、源、端点、供应商逐层自动切换,带熔断。
- 填 Key 与地址后能探测并自动完成大部分配置,人工只调剩余部分。
验收
- 一个中转实例可同时配置四类接口并分别路由不同模型。
- 新增一家厂商渠道无需改动路由或运行时代码。
- 多 Key 可按模型范围分别生效;多源地址可在失败时自动切换。
- 模型的能力与限额能看到来源(用户覆盖 / 目录 / 供应商 / 启发式)并可还原。
- 旧配置加载后行为不变,不需要用户重新配置。
现状问题
供应商配置目前围绕五个写死的类型(
claude_code/codex/gemini/xai/deepseek)展开,带来几个结构性限制:a.com与b.com)无法表达。期望
验收