大模型接口管理和分发系统One API
什么是 One API ?
One-API是OpenAI接口管理 & 分发系统,支持Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360智脑以及腾讯混元,可用于二次分发管理key,仅单可执行文件,已打包好Docker镜像,一键部署,开箱即用。
One API 可以用来管理模型池,其可以兼容 OpenAI 、Azure 、国内主流模型和本地模型等

工作原理如下:
- 在
渠道页面中添加你的API Key - 然后在
令牌页面中新增访问令牌 - 客户端使用令牌访问
One API - 根据请求中的
model参数,匹配对应的渠道(根据渠道里的模型进行匹配,必须完全一致)。如果匹配到多个渠道,则随机选择一个(同优先级) One API向真正的地址发出请求,并将结果返回给客户端
graph LR
A(用户)
A --->|使用 One API 分发的 key 进行请求| B(One API)
B -->|中继请求| C(OpenAI)
B -->|中继请求| D(Azure)
B -->|中继请求| E(其他 OpenAI API 格式下游渠道)
B -->|中继并修改请求体和返回体| F(非 OpenAI API 格式下游渠道)

安装
在群晖上以 Docker 方式安装。
在注册表中搜索 one-api ,选择第一个 justsong/one-api,版本选择 latest。
本文第一次折腾时,
latest版本对应为v0.5.7-alpha.1;本文写作时,latest版本对应为v0.6.5

卷
在 docker 文件夹中,创建一个新文件夹 one-api,并在其中建一个子文件夹 data
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/one-api/data | /data | 存放数据库和日志等 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
| 本地端口 | 容器端口 |
|---|---|
3033 | 3000 |

环境
| 可变 | 值 |
|---|---|
TZ | 设为 Asia/Shanghai |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 one-api 和 子目录
mkdir -p /volume1/docker/one-api/data
# 进入 one-api 目录
cd /volume1/docker/one-api
# 运行容器
docker run -d \
--restart always \
--name one-api \
-p 3033:3000 \
-v $(pwd)/data:/data \
-e TZ=Asia/Shanghai \
justsong/one-api
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'
services:
one-api:
image: justsong/one-api
container_name: one-api
restart: unless-stopped
ports:
- 3033:3000
volumes:
- ./data:/data
environment:
- TZ=Asia/Shanghai
然后执行下面的命令
# 新建文件夹 one-api 和 子目录
mkdir -p /volume1/docker/one-api/data
# 进入 one-api 目录
cd /volume1/docker/one-api
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:3033 就能看到主界面

点 登陆 按钮
初始管理员账号用户名为
root,密码为123456

当然也可以注册新用户

登陆成功之后的主界面
【注意】:记得立刻修改默认密码!

新建渠道
点 添加新的渠道

Moonshot AI
以 Moonshot AI 为例
- 类型:类型下拉选择
Moonshot AI

- 名称:随意
- 分组:内置三种,分别是
default、vip和svip - 模型:一般会根据类型自动填写
- 密钥:
Moonshot AI的秘钥,可以在这里申请:https://platform.moonshot.cn/console/api-keys
这是 Moonshot 的开发者账号,新用户注册会有 15 元额度。这和之前我们用的 kimi-free-api 中介绍的 refresh_token 不是一个概念。

保存之后,可以 测试

如果没问题的话,会提示测试成功

kimi-free-api
当然,我们也可以添加之前使用过的 kimi-free-api
kimi是Moonshot基于Moonshot AI开发的产品
- 类型:选择
自定义渠道 Base URL:填入kimi-free-api的访问地址http://群晖IP:8126- 名称:例如:
kimi-free-api - 分组:
default就行 - 模型:输入自定义模型名称,
填入即可 - 秘钥:从 kimi.moonshot.cn 网页上获取的
refresh_token

保存之后,可以测试一下是否设置正确

创建令牌
要二次分发使用,还需要有令牌

用于控制可使用的模型、额度、时限等
【注意】:这里没有设置模型范围,意味着后续添加的新渠道的模型,都是可以通过这个令牌进行访问的

保存之后


会得到一个字符串,其中
key:对应的是ChatGPT Next Web的环境变量OPENAI_API_KEYurl:对应的是ChatGPT Next Web的环境变量BASE_URL,但不能用http://localhost:3000,而要使用外部地址http://http://群晖IP:3033
ChatGPT Next Web
文章传送门:跨平台私人ChatGPT应用ChatGPT-Next-Web
如果你还没安装 ChatGPT-Next-Web ,可以用下面的命令一键搞定
# 运行容器
docker run -d \
--restart unless-stopped \
--name chatgpt-next-web \
-p 3059:3000 \
-e OPENAI_API_KEY=<你的 key> \
-e BASE_URL=http://<你的群晖IP>:3033 \
-e CUSTOM_MODELS="-all,+moonshot-v1-8k,+moonshot-v1-32k,+moonshot-v1-128k" \
yidadaa/chatgpt-next-web
如果你已经安装过ChatGPT-Next-Web,需要修改三个环境变量参数
OPENAI_API_KEY:之前不论你是安装的FreeGPT35还是aurora,这个值都是随便填的,现在必须改为我们前面获取的keyBASE_URL:填写One API服务的地址 + 端口
| 服务名称 | 服务地址 |
|---|---|
FreeGPT35 | http://192.168.0.197:3044 |
aurora | http://192.168.0.197:8328 |
GPT4Free | http://192.168.0.197:1337 |
kimi-free-api | http://192.168.0.197:8126 |
One API | http://192.168.0.197:3033 |
CUSTOM_MODELS :用来控制模型列表,使用 + 增加一个模型,使用 - 来隐藏一个模型,使用 模型名=展示名 来自定义模型的展示名,用英文逗号隔开。需改为 -all,+moonshot-v1-8k,+moonshot-v1-32k,+moonshot-v1-128k

重新启动 ChatGPT-Next-Web 容器后,进入的设置,可以看到模型已经改变了

接下来就可以开始聊天了

当然,One API 作为分发系统,还支持充值、兑换、日志等功能

本文章转载微信公众号@各种折腾
最新文章
- 用 Poe-API-wrapper 连接 DALLE、ChatGPT,批量完成AI绘图或文字创作
- 2025年20大自动化API测试工具 – HeadSpin
- RESTful Web API 设计中要避免的 6 个常见错误
- LangGraph 工具详解:构建 AI 多步骤流程的关键利器
- GitHubAPI调用频率限制的增加方法
- 如何使用Route Optimization API优化配送路线
- 什么是聚类分析?
- 安全好用的OpenApi
- 医疗数据管理与fhir api的未来发展趋势
- 为什么要使用Google My Business Reviews API
- 2025年7月第2周GitHub热门API推荐:rustfs/rustfs、pocketbase/pocketbase、smallcloudai/refact
- API设计的首要原则