20+主流大模型一键调用:LLM API管理系统的保姆级部署指南
1. 为什么你需要一个统一的API入口
你是不是也遇到过这些情况?
- 想试试通义千问,得去阿里云开通百炼,填一堆企业信息;
- 想调用DeepSeek R1,又得注册新账号、申请API Key、反复测试base_url格式;
- 同时对接文心一言和讯飞星火,代码里要维护两套密钥、三个不同地址、四种鉴权方式;
- 客户临时要求切换模型,你得改配置、测兼容、修报错,一上午就没了。
这不是开发,是运维。
而今天要介绍的这个系统,就是为解决这些问题而生——它不训练模型,不优化算法,只做一件最实在的事:把20多个主流大模型,变成一个OpenAI风格的API接口。你写一次代码,就能自由切换ChatGLM、Qwen、Claude、Gemini、豆包、混元……甚至Ollama本地模型,全部无需改业务逻辑。
更关键的是:它不是SaaS服务,不锁用户,不收月费,不看用量。它是一个单文件可执行程序 + Docker镜像,下载即用,部署即走,所有数据留在你自己的服务器上。
下面,我们就从零开始,手把手带你完成完整部署。
2. 环境准备与一键部署
2.1 最低硬件与系统要求
这个系统对资源非常友好,普通开发机即可运行:
- CPU:2核以上(推荐4核)
- 内存:2GB起步(推荐4GB,多模型并发时建议8GB)
- 磁盘:500MB可用空间(不含日志和数据库增长)
- 操作系统:Linux(Ubuntu 22.04 / CentOS 7+ / Debian 11+)或 macOS(仅开发测试)
- Docker:v20.10+(如使用Docker方式部署)
注意:Windows用户请使用WSL2环境,原生Windows支持不稳定,官方不推荐。
2.2 两种部署方式任选其一
方式一:Docker一键部署(推荐新手)
这是最快、最干净的方式,5分钟完成全部初始化:
# 1. 创建专属目录并进入 mkdir -p ~/oneapi && cd ~/oneapi # 2. 下载预配置的docker-compose.yml(已适配国内网络环境) curl -fsSL https://raw.githubusercontent.com/songquanpeng/one-api/main/docker-compose.yml -o docker-compose.yml # 3. 启动服务(自动拉取镜像、初始化数据库、启动Web后台) docker compose up -d # 4. 查看服务状态 docker compose ps启动成功后,你会看到one-api和db两个容器处于running状态。
方式二:二进制文件直跑(适合离线/内网环境)
适用于无Docker权限或需深度定制的场景:
# 1. 下载最新Linux版可执行文件(自动识别amd64/arm64) curl -fsSL https://github.com/songquanpeng/one-api/releases/latest/download/one-api-linux-amd64 -o one-api chmod +x one-api # 2. 创建配置目录与数据库文件 mkdir -p ./data touch ./data/one-api.db # 3. 首次运行(会自动生成默认配置config.yaml) ./one-api --port=3000 # 4. 按提示访问 http://localhost:3000 进行初始化小贴士:首次运行会生成
config.yaml,其中包含数据库路径、监听端口、管理员账号等核心配置,后续修改直接编辑该文件即可。
2.3 首次登录与安全加固
服务启动后,打开浏览器访问http://你的服务器IP:3000(Docker默认映射3000端口)。
- 默认管理员账号:
root - 默认密码:
123456( 必须首次登录后立即修改!)
登录后点击右上角头像 →「修改密码」,设置强密码(至少8位,含大小写字母+数字)。
这一步不可跳过——系统文档明确强调:“使用 root 用户初次登录系统后,务必修改默认密码123456!”
同时建议:
- 在「系统设置」→「安全设置」中开启「登录失败锁定」(5次失败锁定15分钟)
- 关闭「允许游客访问」选项(防止未授权用户查看模型列表)
- 如部署在公网,务必配合Nginx反向代理+HTTPS,禁用直接暴露3000端口
3. 统一API接入:像调用OpenAI一样用所有模型
3.1 核心原理:协议透传,不做中间解析
这个系统最聪明的设计在于:它不碰你的请求体,也不改你的响应体。
当你发送一个标准OpenAI格式的请求:
curl http://localhost:3000/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-xxx" \ -d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "你好"}] }'系统只做三件事:
- 根据
sk-xxx查找对应用户的API Key权限; - 根据
model字段匹配已配置的渠道(比如gpt-3.5-turbo→ Azure OpenAI渠道); - 把整个原始JSON体,加上目标渠道所需的Header(如Azure的
api-key),原样转发给后端模型服务。
所有字段透传:temperature、top_p、stream、tools、response_format……全支持
所有响应原样返回:包括usage、id、system_fingerprint等OpenAI标准字段
兼容所有SDK:LangChain、LlamaIndex、OpenAI Python SDK、JavaScript SDK……零适配成本
3.2 添加第一个模型渠道:以通义千问为例
我们以阿里云百炼平台的Qwen2.5-72B为例,演示如何接入一个国产大模型:
- 登录后台 → 左侧菜单「渠道管理」→ 点击「添加渠道」
- 填写以下信息:
- 渠道名称:阿里云百炼-Qwen2.5-72B
- 基础URL:
https://dashscope.aliyuncs.com/compatible-mode/v1 - 密钥类型:
Authorization Header - 密钥前缀:
Bearer - 密钥值:你在阿里云百炼控制台生成的API Key
- 模型列表:手动输入
qwen2.5-72b-chat(注意:必须与百炼平台实际模型名完全一致)
- 点击「保存」
此时,你就可以用OpenAI SDK,把model设为qwen2.5-72b-chat,直接调用这个国产超大模型了。
验证小技巧:在「渠道管理」页面,点击该渠道右侧的「测试」按钮,系统会自动发送一条
/chat/completions请求,返回success: true即表示连通成功。
3.3 多模型自由切换:一行代码搞定
假设你已在系统中配置了以下渠道:
qwen2.5-72b-chat→ 阿里云百炼glm-4-flash→ 智谱AIdeepseek-chat→ DeepSeek官网moonshot-v1-32k→ Moonshot AI
那么你的业务代码完全不需要改——只需换一个model参数:
from openai import OpenAI # 复用同一套OpenAI客户端 client = OpenAI( api_key="sk-xxx", # 这是你在OneAPI后台创建的用户Key,不是各厂商的原始Key base_url="http://your-server-ip:3000/v1" ) # 想用通义千问?→ 改model就行 response = client.chat.completions.create( model="qwen2.5-72b-chat", messages=[{"role": "user", "content": "用Python写一个快速排序"}] ) # 想切到智谱GLM?→ 只改这一行 response = client.chat.completions.create( model="glm-4-flash", messages=[{"role": "user", "content": "用Python写一个快速排序"}] ) # 想试DeepSeek?→ 还是只改这一行 response = client.chat.completions.create( model="deepseek-chat", messages=[{"role": "user", "content": "用Python写一个快速排序"}] )所有密钥管理、请求路由、错误重试、额度扣减,均由后台自动完成。
4. 实战配置:让20+模型真正为你所用
4.1 主流模型接入速查表(已验证可用)
| 模型厂商 | 推荐模型名 | 基础URL(示例) | 获取Key方式 | 备注 |
|---|---|---|---|---|
| OpenAI | gpt-4o-mini | https://api.openai.com/v1 | platform.openai.com | 需科学访问 |
| Azure OpenAI | gpt-4o | https://YOUR-RESOURCE.openai.azure.com/openai/deployments/YOUR-DEPLOYMENT | Azure门户创建部署 | 需填写api-version参数 |
| Anthropic | claude-3-5-sonnet-20241022 | https://api.anthropic.com/v1 | console.anthropic.com | 需在Header加anthropic-version |
| Google Gemini | gemini-1.5-pro | https://generativelanguage.googleapis.com/v1beta | Google Cloud控制台 | 需key=YOUR_KEY拼在URL后 |
| 通义千问 | qwen2.5-72b-chat | https://dashscope.aliyuncs.com/compatible-mode/v1 | 阿里云百炼控制台 | 免费额度充足 |
| 文心一言 | ernie-4.0-turbo-8k | https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro | 百度千帆控制台 | 需access_token认证 |
| 讯飞星火 | spark-lite-20241022 | https://spark-api.xf-yun.com/v4.0/chat | 讯飞开放平台 | 需Authorization: Bearer ${token} |
| ChatGLM | glm-4-flash | https://open.bigmodel.cn/api/paas/v4/chat/completions | 智谱AI控制台 | 国产模型响应快 |
| 豆包(火山引擎) | doubao-pro-32k | https://ark.cn-beijing.volcengineapi.com/v3/chat/completions | 火山引擎控制台 | 新模型更新快 |
| 腾讯混元 | hunyuan-standard | https://hunyuan.tencentcloudapi.com | 腾讯云控制台 | 需签名认证,建议用SDK |
提示:所有URL和模型名,均可在OneAPI后台「渠道管理」→「添加渠道」页面的「帮助文档」中一键复制,无需手动查找。
4.2 高级能力实战:负载均衡与故障转移
当某个模型服务不稳定时,你不想让整个业务卡住?系统支持智能路由:
- 进入「渠道管理」→ 点击「添加渠道组」
- 命名为
Qwen主备组,勾选「启用负载均衡」 - 将以下两个渠道加入该组:
- 渠道A:阿里云百炼(
qwen2.5-72b-chat,权重80) - 渠道B:硅基流动(
qwen2.5-72b,权重20)
- 渠道A:阿里云百炼(
- 在「模型映射」中,将用户请求的
qwen2.5-72b-chat映射到该渠道组
效果:
- 正常情况下,80%请求走百炼,20%走硅基;
- 若百炼渠道连续3次超时,系统自动降权至0,100%流量切到硅基;
- 百炼恢复后,权重自动渐进回升。
这比在代码里写重试逻辑简单太多,且对业务层完全透明。
4.3 安全与分发:给团队成员分配独立Key
作为技术负责人,你肯定不想把主账号Key发给每个开发同学。系统提供完善的令牌管理体系:
- 创建子用户:后台「用户管理」→「添加用户」,设置邮箱、角色(普通用户/管理员)
- 生成专属Key:点击用户 → 「API密钥」→ 「生成新密钥」
- 精细管控:为每个Key设置:
- 过期时间(如:30天后自动失效)
- 总额度(如:$100,用完即停)
- IP白名单(如:只允许公司出口IP
203.208.60.0/24) - 可访问模型(如:仅允许调用
qwen2.5-72b-chat和glm-4-flash)
开发同学拿到自己的Key后,代码完全不变,但你已在后台锁死了所有风险点。
5. 运维与监控:让系统长期稳定运行
5.1 日志与问题排查
系统默认将所有关键操作记录到./logs/app.log(Docker版在容器内/app/logs/):
- 用户登录/登出
- API Key调用详情(时间、IP、模型、token用量、耗时、状态码)
- 渠道健康检查结果
- 管理员操作(增删改渠道、用户、密钥)
排查慢请求?直接搜索duration_ms > 5000
发现异常调用?按IP过滤,定位是否被刷量
渠道连不通?看日志里是否有channel health check failed
5.2 数据库备份与迁移
所有数据存在SQLite文件./data/one-api.db中(Docker版挂载在/app/data/):
- 每日自动备份:在
config.yaml中设置:backup: enabled: true path: "./backup" cron: "0 2 * * *" # 每天凌晨2点执行 - 手动导出:后台「系统设置」→「数据导出」→ 一键下载JSON格式全量数据(含用户、渠道、密钥、额度记录)
- 跨服务器迁移:停服务 → 复制
one-api.db文件 → 启动新实例 → 完事
没有MySQL依赖,没有复杂迁移脚本,一个文件就是全部。
5.3 升级不中断:平滑版本迭代
升级永远是最怕的环节。该系统采用「双版本热切换」机制:
# 1. 下载新版本二进制(不覆盖旧版) curl -fsSL https://github.com/songquanpeng/one-api/releases/download/v0.9.10/one-api-linux-amd64 -o one-api-v0.9.10 # 2. 停止旧服务(Docker用户用 docker compose down) ./one-api --stop # 3. 启动新版(指定同一配置和数据库) ./one-api-v0.9.10 --config=config.yaml --data=data/one-api.db --port=3000 # 4. 验证无误后,再删除旧版 rm one-api全程业务无感知,旧进程退出前会处理完所有正在执行的请求。
6. 总结:它不是另一个API代理,而是你的AI基础设施中枢
回看开头提到的那些痛点:
- 多个模型不用多个账号 → 统一用户体系+密钥分发
- 不同base_url不用反复改代码 → 一套OpenAI SDK走天下
- 模型切换不用改业务逻辑 → 只换model参数
- 安全管控不用自己写中间件 → 内置IP限制、额度、过期、模型白名单
- 故障应对不用等研发上线 → 负载均衡+自动降级+渠道健康检查
它不替代你的大模型,而是让你真正把大模型当“水电煤”一样使用——需要时即开,不用时即关,坏了自动切,贵了随时换。
对于个人开发者,它是免运维的AI网关;
对于小团队,它是可控的模型资源池;
对于企业,它是合规、审计、计费一体化的AI基础设施底座。
而这一切,始于一个命令、一个镜像、一次点击。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。