One API 镜像部署与多模型接入实战
背景
项目里一旦同时接文心一言、ChatGLM、通义千问这类模型,代码很快就会开始分叉:每家都有自己的 api_key、base_url、请求头和流式参数,模型名也不统一。切换一次环境,往往不是改一行配置那么简单,出错点通常就藏在这些细节里。
我更倾向于把这层差异收口到一个统一的 API 网关上。One API 这类镜像做的事情很直接:对外提供标准 OpenAI API 接口,后面接多少家模型服务都行,业务代码只认同一套调用方式。密钥管理、流量控制、额度审计也都放在这一层处理,省得散落到各个项目里。
部署方式
下面以 Linux 服务器为例,实际操作不复杂,熟手的话几分钟能跑起来。
启动镜像
# 一行命令拉取并后台运行(使用默认端口 3000)
docker run -d \
--name one-api \
-p 3000:3000 \
-v /path/to/one-api-data:/app/data \
--restart=always \
registry.cn-hangzhou.aliyuncs.com/one-api/one-api:latest
这里的 -v 是把容器里的数据目录挂到宿主机,配置和账号不会因为容器重建就丢。--restart=always 也建议顺手加上,不然机器重启后还得手动拉起来。
等十秒左右,看看日志:
docker logs one-api | grep "Server is running"
如果能看到类似 Server is running on http://localhost:3000,说明服务已经起来了。
首次登录
浏览器打开 http://你的服务器 IP:3000。
第一次登录必须用 root,初始密码是 123456。这个默认值别留着,登录后先把密码改掉。只要 IP 暴露在公网,没改密码的网关基本等于裸奔。
添加文心一言渠道
进入左侧【渠道管理】,点【+ 新建渠道】。
| 字段 | 填写内容 | 说明 |
|---|---|---|
| 渠道名称 | 百度文心一言 | 自定义,方便识别 |
| 渠道类型 | 文心一言 | 下拉选择 |
| API Key | your_ernie_api_key | 从百度千帆控制台获取的 SK 密钥 |
| Base URL | https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro | 文心一言官方 V3 接口地址 |
| 模型名称 | ernie-4.5-turbo | 填你实际开通的模型 |
点保存,看到绿色对勾,基本就接通了。
创建令牌并调用
进入【令牌管理】→【+ 新建令牌】:
- 令牌名称:
前端项目调用 - 允许模型:勾选
ernie-4.5-turbo - IP 限制:可以填公司出口 IP 段
生成后会拿到一个形如 sk-xxx 的令牌。后续请求按标准 OpenAI 格式发就行:

