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

然后在控制台里:

  1. 创建一个工作空间(给你们的团队)
  2. 录入各家厂商的 API Key(加密存储)
  3. 生成一个 AI Hub 虚拟 Key(aihub_sk_xxx
  4. 把这个虚拟 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_urlhttps://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 的管控需求会发生什么变化。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐