OneLLM 上手:一行代码不改,一个 Key 接入 15+ 国产模型
OneLLM 上手:一行代码不改,一个 Key 接入 15+ 国产模型
上一篇讲了 API Key 管理的各种痛点,这篇直接上实操——怎么用开源项目 OneLLM 搭建统一的模型网关,让你的应用一个 Key 接入 DeepSeek、通义千问、GLM、豆包、Kimi 等 15+ 家国产模型厂商。
先看效果
搭建完成后,你在代码里调用的是自己的网关,而不是直接调各模型厂商的 API:
以前:
app → DeepSeek API(直连,Key 写死在代码里)
app → 通义千问 API(又一个 Key)
app → GLM API(再来一个...)
现在:
app → 自己网关 :8787 → DeepSeek
→ 通义千问 (同一个 Key,改个 header 就行)
→ GLM
→ 豆包
→ Kimi
→ ...
切换模型只需要改一个 HTTP 请求头参数,业务代码零改动。
前置条件
- Node.js ≥ 18
- Docker(用于跑 Redis,安装过程略过)
- 你自己的模型厂商 API Key(至少一个,比如 DeepSeek)
第一步:克隆项目
git clone https://github.com/EmilyLi2026/OneLLM.git
cd OneLLM/gateway-core
npm install
第二步:启动网关
# 先起 Redis(网关依赖它做缓存)
docker-compose up -d redis
# 启动网关
npm run dev:node
看到 Gateway running on port 8787 就表示成功了。整个过程不超过一分钟。
第三步:发第一个请求
用你最熟悉的 DeepSeek 试试(需要你有一个 DeepSeek API Key,去 platform.deepseek.com/api_keys 申请):
curl http://localhost:8787/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-portkey-provider: deepseek" \
-H "x-portkey-api-key: 你的DeepSeek-Key" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "用一句话介绍人工智能"}]
}'
返回结果和直接调 DeepSeek API 完全一样——因为网关只是帮你做了转发,不修改请求和响应。
第四步:换个模型试试
同样一个网关,改一下 header 里的 x-portkey-provider,就能切到通义千问:
curl http://localhost:8787/v1/chat/completions \
-H "Content-Type: application/json" \
-H "x-portkey-provider: dashscope" \
-H "x-portkey-api-key: 你的通义千问-Key" \
-d '{
"model": "qwen3-turbo",
"messages": [{"role": "user", "content": "你好,介绍一下杭州"}]
}'
同理,切到 GLM:
-H "x-portkey-provider: zhipu"
-H "x-portkey-api-key: 你的智谱-Key"
-d '{"model": "glm-4-flash", ...}'
你的业务代码不用改一个 import,不用动一个环境变量。
第五步(进阶):用虚拟 Key,彻底放手
如果你想把 Key 管理也统一起来——不直接暴露厂商原始 Key——可以启动管理后台:
# 1. 准备 MySQL(新建一个库)
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS onellm CHARACTER SET utf8mb4;"
# 2. 配置管理 API
cd admin-api
cp .env.example .env # 编辑填入数据库信息
npm install
npx tsx src/db/migrate.ts # 初始化数据库(建表 + 预置 15+ 国产模型数据)
npx tsx src/index.ts # 启动管理后台 → :3100
# 3. 启动可视化控制台
cd ../admin-console
npm install
npx vite # → :3101
然后在控制台里:
- 创建一个工作空间(给你们的团队)
- 录入各家厂商的 API Key(加密存储)
- 生成一个 AI Hub 虚拟 Key(
aihub_sk_xxx) - 把这个虚拟 Key 绑定到你录好的各个厂商 Key 上
现在,你只需要一个虚拟 Key,就能调所有厂商:
curl http://localhost:8787/v1/chat/completions \
-H "x-aihub-api-key: aihub_sk_xxx" \
-H "x-aihub-provider: deepseek" \
-d '{"model": "deepseek-chat", "messages": [...]}'
想切到通义千问?改 x-aihub-provider: dashscope。同事离职?吊销一个虚拟 Key 就行,不用去每个厂商后台轮换。
网关里有哪些厂商可以用
项目内置了 84 家厂商的适配器,国产核心的 15+ 家都覆盖了:
| 厂商 | provider 参数值 | 代表模型 |
|---|---|---|
| DeepSeek 深度求索 | deepseek |
deepseek-chat, deepseek-reasoner |
| 阿里云 通义千问 | dashscope |
qwen3-max, qwen3-turbo |
| 智谱AI | zhipu |
glm-4.6, glm-4-flash(免费) |
| 月之暗面 Kimi | moonshot |
moonshot-v2-128k |
| MiniMax 稀宇 | minimax |
abab7.5(1M 上下文) |
| 百度 文心 | baidu |
ernie-4.5, ernie-speed(免费) |
| 字节 豆包 | bytedance |
doubao-pro-256k |
| 科大讯飞 星火 | xunfei |
spark-v4.0 |
| 腾讯混元 | tencent |
hunyuan-pro |
| 百川智能 | baichuan |
baichuan4 |
| 零一万物 | lingyiwanwu |
yi-large(200K 上下文) |
| 阶跃星辰 | stepfun |
step-2 |
| 硅基流动 | siliconflow |
多模型代理(有免费额度) |
你的代码真的不用改
因为 OneLLM 的 API 是完全 OpenAI 兼容 的。你的项目如果用的是 OpenAI SDK,只需要把 base_url 从 https://api.openai.com 改成 http://localhost:8787/v1:
# Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8787/v1",
api_key="aihub_sk_xxx" # 你的虚拟 Key
)
response = client.chat.completions.create(
model="deepseek-chat", # 想用哪个填哪个
messages=[{"role": "user", "content": "Hello"}]
)
// Node.js (OpenAI SDK)
const OpenAI = require('openai');
const client = new OpenAI({
baseURL: 'http://localhost:8787/v1',
apiKey: 'aihub_sk_xxx',
});
改一行 base_url,后面所有模型随便切。
它不只是网关
网关跑起来只是第一步。OneLLM 还带了这些能力(开箱即用):
- 预算管控:设工作空间月预算 500 元 → 花到 400 元发消息提醒你(80%),花到 500 元自动阻断(硬熔断)
- 调用日志:每次请求记录模型名、Token 量、花费、耗时、输入输出内容
- 审计不可篡改:所有管理操作(谁创建了 Key、谁改了预算)以 append-only 方式记录
- Provider 冒烟测试:一条命令检测所有厂商连通性
- K8s 部署:Helm Charts 直接安装
下一步
如果你也正在被多模型 Key 管理折磨,试试:
git clone https://github.com/EmilyLi2026/OneLLM.git
cd OneLLM/gateway-core && npm install && npm run dev:node
开源、MIT 协议、不收费。如果遇到问题,去 GitHub Issues 留言,我每天都会看。
聊聊?
如果你也在折腾多模型接入、Agent 成本管控、或者正在为合规审计头疼——欢迎直接联系我。
扫码添加,备注"OneLLM"。不一定能秒回,但每条都会看。
下一篇我们来聊聊更长远的事——Agent 普及之后,企业对 LLM 的管控需求会发生什么变化。
更多推荐



所有评论(0)