One API:开源的LLM API管理与分发系统部署和使用
One API是一个开源的LLM API管理与分发系统,支持多种主流大模型(如GPT、Claude、Gemini等),通过统一OpenAI API格式简化多模型访问。主要功能包括API Key管理、负载均衡、额度监控和二次分发。支持Docker一键部署,提供多语言界面和丰富配置选项,适合个人开发者或企业集成AI服务。用户可通过标准化接口访问不同模型,并实现灵活的权限控制和额度管理。部署简单,支持S
在AI时代,大语言模型(LLM)如OpenAI的GPT系列、Anthropic的Claude、Google的Gemini等已成为开发者必备工具。然而,管理多个模型提供商的API Key、统一接口适配以及二次分发往往成为痛点。One API——一个开源的LLM API管理与分发系统。它支持多种主流模型,通过标准的OpenAI API格式访问所有大模型,开箱即用。本文将从One API的定义、功能特点、部署方法、配置、使用指南以及常见问题等方面进行有序介绍,帮助你快速上手。
什么是One API?
One API是一个开源的LLM API管理和分发系统,由GitHub用户songquanpeng开发,项目地址为GitHub - songquanpeng/one-api。它旨在统一管理多个LLM提供商的API,支持OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360智脑、腾讯混元等主流模型。通过One API,可以将这些模型的API统一适配为OpenAI格式,实现Key管理和二次分发。
核心优势在于:
- 统一API接口:所有模型通过标准的OpenAI API格式访问,无需为每个提供商编写自定义代码。
- 开箱即用:单可执行文件,提供Docker镜像,一键部署。
- 多语言支持:界面支持中文、英文和日文。
- 开源免费:基于MIT许可,但使用时需遵守OpenAI使用条款和法律法规,不得用于非法用途。根据中国《生成式人工智能服务管理暂行办法》,请勿向中国公众提供未经备案的AI服务。
One API适用于个人开发者、团队或企业,用于API Key分发、负载均衡、额度管理和监控。它不是一个AI模型本身,而是模型API的“中间件”,帮助你高效整合多源LLM资源。
One API的功能特点
One API提供了丰富的功能,覆盖API管理、用户控制和扩展性。以下是主要特点:
- 模型支持:兼容多种大模型和第三方代理服务,支持负载均衡访问多个渠道。
- Stream模式:支持流式传输,实现打字机效果。
- 多机部署:支持主从架构,适合高并发场景。
- 令牌管理:设置令牌过期时间、额度、IP限制和模型访问权限。
- 兑换码管理:批量生成和导出兑换码,用于账户充值。
- 渠道管理:批量创建渠道,支持分组和模型列表设置。
- 用户分组与渠道分组:为不同分组设置倍率,实现差异化定价。
- 额度明细查看:支持美元单位显示额度,并提供用户邀请奖励。
- 公告与自定义:发布公告、设置充值链接和新用户初始额度。
- 模型映射:重定向请求模型,但需谨慎使用以避免字段丢失。
- 失败重试与绘图:支持自动重试和绘图接口。
- Cloudflare AI Gateway集成:简化代理配置。
- 自定义设置:自定义系统名称、Logo、页脚、首页和关于页面(支持HTML/Markdown或iframe嵌入)。
- API扩展:通过系统访问令牌调用管理API,实现自定义扩展。
- 用户校验与登录:支持Cloudflare Turnstile校验,多种登录方式(如邮箱、GitHub、微信等)。
- 主题切换:支持多种主题,默认“default”。
- 报警推送:配合Message Pusher推送报警信息到App。
- 其他:绘图支持、渠道测试、批量更新等。
这些功能使One API成为一个全面的API管理平台,适用于从个人到企业的各种规模。
如何部署One API?
One API部署简单,支持多种方式。默认初始账号为root
,密码为123456
(登录后务必修改)。以下按步骤详解。
1. Docker部署(推荐)
使用Docker是最简单的部署方式,支持SQLite或MySQL数据库。
-
SQLite版:
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
-
MySQL版(推荐高并发场景):
docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
- 修改
SQL_DSN
为你的数据库连接(需预建数据库oneapi
)。 - 数据保存在宿主机
/home/ubuntu/data/one-api
目录,确保写入权限。 - 如果失败,添加
--privileged=true
。 - 镜像备用:
ghcr.io/songquanpeng/one-api
。
- 修改
访问http://localhost:3000/
登录。
更新镜像:docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR
。
Nginx配置(可选):
server {
server_name openai.justsong.cn; # 修改为你的域名
location / {
client_max_body_size 64m;
proxy_http_version 1.1;
proxy_pass http://localhost:3000; # 修改端口
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_cache_bypass $http_upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_read_timeout 300s; # 调整超时
}
}
使用certbot配置HTTPS:sudo certbot --nginx
。
2. Docker Compose部署
使用MySQL,数据存储在./data/mysql
。
docker-compose up -d
查看状态:docker-compose ps
。
3. 宝塔面板一键部署
- 安装宝塔面板9.2.0+。
- 进入“Docker”菜单安装服务。
- 在应用商店搜索“One-API”,安装并配置域名。
4. 手动部署
- 下载可执行文件或从源码编译:
git clone https://github.com/songquanpeng/one-api.git cd one-api/web/default npm install npm run build cd ../.. go mod download go build -ldflags "-s -w" -o one-api
- 运行:
chmod u+x one-api ./one-api --port 3000 --log-dir ./logs
5. 多机部署
- 所有服务器设置相同
SESSION_SECRET
。 - 使用MySQL(
SQL_DSN
),所有节点连接同一数据库。 - 从服务器设置
NODE_TYPE=slave
。 - 设置
SYNC_FREQUENCY
(秒)同步配置,推荐启用Redis(REDIS_CONN_STRING
)。 - 从服务器可选设置
FRONTEND_BASE_URL
重定向页面。
6. 部署到第三方平台
- Sealos:一键部署(国外服务器,支持高并发)。
- Zeabur:Fork仓库,添加项目,配置MySQL和变量(如
PORT=3000
,SQL_DSN
)。 - Render:直接部署Docker镜像。
One API的配置
One API支持环境变量(.env
文件)和命令行参数配置。
环境变量示例
REDIS_CONN_STRING=redis://default:redispw@localhost:49153
:启用Redis缓存。SESSION_SECRET=random_string
:固定会话密钥。SQL_DSN=root:123456@tcp(localhost:3306)/oneapi
:使用MySQL。SYNC_FREQUENCY=60
:同步频率(秒)。CHANNEL_UPDATE_FREQUENCY=1440
:渠道余额更新(分钟)。GLOBAL_API_RATE_LIMIT=180
:API速率限制。- 更多:参考项目文档,如
RELAY_TIMEOUT
(超时)、THEME=default
(主题)。
命令行参数
--port 3000
:端口。--log-dir ./logs
:日志目录。--version
:查看版本。--help
:帮助。
登录后,在后台界面进一步配置,如自定义Logo、公告等。
如何使用One API?
部署后,使用步骤如下:
- 添加渠道:在“渠道”页面添加API Key(如OpenAI Key)。
- 创建令牌:在“令牌”页面新增访问令牌,设置额度、权限。
- 访问API:使用OpenAI格式。
- API Base:
https://your-domain/v1
(如https://openai.justsong.cn/v1
)。 - API Key:你的令牌。
- 示例(OpenAI库):
OPENAI_API_KEY="sk-xxxxxx" OPENAI_API_BASE="https://your-domain/v1"
- API Base:
- 指定渠道(管理员令牌):
Authorization: Bearer ONE_API_KEY-CHANNEL_ID
。 - 集成第三方:
- ChatGPT Next Web:Docker运行,设置Base URL和Key。
- ChatGPT Web:类似配置。
- QChatGPT(QQ机器人):修改配置文件设置Base URL和Key。
- 额度计算:额度 = 分组倍率 × 模型倍率 × (提示Tokens + 补全Tokens × 补全倍率)。GPT-3.5补全倍率为1.33,GPT-4为2。
- 监控与管理:查看额度明细、测试渠道、发布公告。
常见问题解答
- 额度计算问题:公式如上,非流模式官方返回总Tokens,但需注意倍率差异。
- 额度不足提示:检查令牌额度(非账户额度)。
- 无可用渠道:检查分组和模型设置。
- JSON错误:可能是IP被Cloudflare封禁。
- ChatGPT Next Web Failed to fetch:勿设BASE_URL,确保HTTPS和Key正确。
- 负载饱和:上游429错误,重试。
- 数据丢失:使用MySQL或持久化SQLite。
- 数据库一致性破坏:清理无效渠道记录。
结语
One API是一个强大且灵活的工具,帮助你轻松管理多源LLM API。如果遇到问题,可以查看GitHub Issues或在线演示(https://openai.justsong.cn)。
更多推荐
所有评论(0)