自建 OpenAI 兼容层:把多个模型统一成一个接口

陈老师445 阅读

公司里不同项目用了不同模型:有的用 DeepSeek,有的用通义,有的还想留 OpenAI 备用。每个项目配一套 key 和 base_url,管理起来一团糟。后来我搭了一个 OpenAI 兼容层(one-api),把所有模型统一成一个入口。

方案:用开源的 one-api(或者它的 fork new-api),一个服务管理所有模型渠道。项目方只需要配一个 key 和一个 base_url,模型名在请求里指定,具体走哪个渠道由 one-api 决定。

部署

Bash
docker run --name one-api -d \ -p 3000:3000 \ -e TZ=Asia/Shanghai \ -v ./data:/data \ one-api/one-api:latest

起来之后在管理后台配置渠道:填上各家 API key,设置模型名映射。

关键配置

  1. 模型名映射。渠道里的模型名可能和暴露给用户的模型名不一致,要建映射。比如渠道里是 qwen-max,对外叫 qwen。这样换模型不用改项目代码。

  2. 渠道权重和优先级。同一种模型配置多个渠道(比如 DeepSeek 主渠道 + 备用渠道),设置权重做负载均衡,或者设优先级做故障转移。我配置了 DeepSeek 失败自动切到备用。

  3. 配额和令牌管理。one-api 支持给每个令牌设置额度,团队里每人一个令牌,月底看用量,按项目分摊成本很方便。

  1. 渠道测试必做。配完渠道先点"测试",别等到线上报错才发现 key 配错。测试失败要去看渠道日志,one-api 的报错信息有时候藏得很深。

  2. 流式和非流式都要测。有些渠道只支持流式,有些兼容性一般。上线前把两种模式都测一遍。

  3. 版本差异。one-api 和 new-api 功能有差异,new-api 多了些渠道类型(比如支持某些国内模型更全)。选型时看你要接哪些模型。

  4. 别把所有鸡蛋放一个篮子。兼容层本身挂了,所有模型都不可用。我在 nginx 层做了兼容层的健康检查和自动重启。

收益:团队接入新模型从"改代码"变成"后台配渠道",管理成本大幅下降。

评论0

还没有评论,来抢沙发~