自建 OpenAI 兼容层:把多个模型统一成一个接口
公司里不同项目用了不同模型:有的用 DeepSeek,有的用通义,有的还想留 OpenAI 备用。每个项目配一套 key 和 base_url,管理起来一团糟。后来我搭了一个 OpenAI 兼容层(one-api),把所有模型统一成一个入口。
方案:用开源的 one-api(或者它的 fork new-api),一个服务管理所有模型渠道。项目方只需要配一个 key 和一个 base_url,模型名在请求里指定,具体走哪个渠道由 one-api 决定。
部署:
docker run --name one-api -d \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v ./data:/data \
one-api/one-api:latest
起来之后在管理后台配置渠道:填上各家 API key,设置模型名映射。
关键配置:
-
模型名映射。渠道里的模型名可能和暴露给用户的模型名不一致,要建映射。比如渠道里是 qwen-max,对外叫 qwen。这样换模型不用改项目代码。
-
渠道权重和优先级。同一种模型配置多个渠道(比如 DeepSeek 主渠道 + 备用渠道),设置权重做负载均衡,或者设优先级做故障转移。我配置了 DeepSeek 失败自动切到备用。
-
配额和令牌管理。one-api 支持给每个令牌设置额度,团队里每人一个令牌,月底看用量,按项目分摊成本很方便。
坑:
-
渠道测试必做。配完渠道先点"测试",别等到线上报错才发现 key 配错。测试失败要去看渠道日志,one-api 的报错信息有时候藏得很深。
-
流式和非流式都要测。有些渠道只支持流式,有些兼容性一般。上线前把两种模式都测一遍。
-
版本差异。one-api 和 new-api 功能有差异,new-api 多了些渠道类型(比如支持某些国内模型更全)。选型时看你要接哪些模型。
-
别把所有鸡蛋放一个篮子。兼容层本身挂了,所有模型都不可用。我在 nginx 层做了兼容层的健康检查和自动重启。
收益:团队接入新模型从"改代码"变成"后台配渠道",管理成本大幅下降。
评论0
还没有评论,来抢沙发~