内置 79 条供应商路由覆盖不到的平台,可以在「接入」页手动添加自定义供应商——填几个字段,本地保存,立即生效。
什么时候需要自定义供应商
- 你用的是某个内置目录里没有的中转站 / 自建网关
- 你自己搭了一个 OpenAI 兼容或 Anthropic 兼容的服务(比如本地跑的模型网关)
- 内置路由的上游地址变了,想临时用自定义的顶一下
怎么添加
在「接入」页或设置页找到「自定义供应商」区块,填四个字段:
| 字段 | 说明 | 规则 |
|---|---|---|
| 名称 | 展示用的名字,随便填 | 1–50 个字符 |
| Slug | 代理路径里的标识,比如 myapi → 代理地址是 /api/proxy/myapi | 只能用小写字母、数字、连字符,2–31 位,不能和内置供应商的 slug 重名(重名会报 409 冲突) |
| API 地址 | 上游服务的地址 | 只需要填域名/路径部分(如 api.example.com/v1),会自动补全 https://;如果已经带协议前缀会原样保留 |
| 协议 | openai 或 anthropic 二选一 | 决定代理怎么解析响应来记账(提取 token 用量、模型名的字段格式不同);不影响请求本身的转发方式 |
保存后立即生效,不需要重启应用。
关于「协议」字段的一个常见误解
协议字段只影响记账时怎么解析响应,不会把你的请求从一种协议"翻译"成另一种协议。 代理对请求本体是纯透传——路径、method、body、query 原样转发给上游,不做任何协议转换。
也就是说:如果上游服务本身不支持某个端点(比如没实现 OpenAI 较新的 Responses API /v1/responses,只支持 Chat Completions /v1/chat/completions),选哪个协议字段都救不了——上游会直接因为端点不存在而报错。这种情况要去检查客户端(如 Codex / CC Switch)的协议模式设置是否匹配上游实际支持的端点,跟 Oxelia51 这边的配置无关。详见常见错误排查。
API 地址的限制
出于安全考虑(防止代理被用来访问内网地址),自定义供应商的地址有几条硬性规则:
- 必须是
https://;http://只允许127.0.0.1或localhost(给本机自建服务用的例外) - 地址不能解析到内网 / 回环 / 链路本地地址(写入时会做校验并拒绝),本机例外除外
- 地址里不能带用户名密码、query 参数或 fragment
如果保存时提示地址无效,先检查是不是踩了这几条规则之一。
保存失败怎么办
| 报错 | 原因 | 解决 |
|---|---|---|
| Slug 格式错误 | 用了大写字母、下划线,或长度不对 | 改成小写字母/数字/连字符,2–31 位 |
| Slug 冲突(409) | 跟某个内置供应商的 slug 重名 | 换一个没被占用的 slug |
| 地址无效 | 不是合法的 https://(或本机 http://)地址,或带了不允许的部分 | 按上面「API 地址的限制」核对 |
| 地址被拒绝(内网地址) | 解析出来的 host 是私有/回环地址,但又不是 127.0.0.1/localhost | 确认你填的是真实可从公网访问的上游地址 |
删除
自定义供应商可以随时删除;内置供应商不能通过这个入口删除(也不需要,内置的不占用你的自定义额度)。