5步搞定:用One-API搭建自己的大模型调用中转站(支持负载均衡)
5步搞定:用One-API搭建自己的大模型调用中转站(支持负载均衡)
使用 root 用户初次登录系统后,务必修改默认密码
123456!
1. 为什么需要大模型调用中转站?
当你同时使用多个大模型时,可能会遇到这样的困扰:每个厂商的API接口格式都不一样,调用方式各异,管理起来特别麻烦。OpenAI有OpenAI的格式,百度文心一言有另一套标准,阿里通义千问又是不同的规范——每次切换模型都要重新调整代码。
One-API就是为了解决这个问题而生的。它就像一个智能翻译官,把各种大模型的API都转换成标准的OpenAI格式,让你用同一套代码就能调用所有主流模型。更厉害的是,它还支持负载均衡和故障自动转移,确保你的服务始终稳定可靠。
2. 环境准备与快速部署
2.1 系统要求
在开始之前,确保你的系统满足以下要求:
- 操作系统:Linux/Windows/macOS(推荐Linux服务器)
- 内存:至少2GB RAM
- 存储:至少10GB可用空间
- Docker:已安装Docker环境
2.2 一键部署命令
One-API提供了极其简单的部署方式,只需要一条命令就能完成部署:
# 使用 SQLite 数据库(推荐初学者)
docker run --name one-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /path/to/your/data:/data \
justsong/one-api
# 使用 MySQL 数据库(推荐生产环境)
docker run --name one-api -d --restart always \
-p 3000:3000 \
-e SQL_DSN="root:your_password@tcp(localhost:3306)/oneapi" \
-e TZ=Asia/Shanghai \
-v /path/to/your/data:/data \
justsong/one-api
参数说明:
--restart always:容器异常退出时自动重启-p 3000:3000:将容器内3000端口映射到主机3000端口-v /path/to/your/data:/data:数据持久化,防止数据丢失-e TZ=Asia/Shanghai:设置时区为上海时间
部署完成后,访问 http://你的服务器IP:3000 就能看到登录界面了。
3. 初始配置与模型接入
3.1 首次登录与安全设置
第一次访问One-API时,使用以下默认凭据登录:
- 用户名:
root - 密码:
123456
重要安全提示:登录后第一件事就是修改默认密码!在系统设置中找到密码修改选项,设置一个强密码来保护你的系统。
3.2 添加第一个模型渠道
登录成功后,点击左侧菜单的"渠道"选项,然后点击"添加渠道"。这里以添加OpenAI渠道为例:
- 渠道类型:选择"OpenAI"
- 渠道名称:自定义一个名称,如"OpenAI-GPT-4"
- API Key:填入你的OpenAI API密钥
- 模型列表:可以自动获取或手动填写
- 权重:设置负载均衡的权重(默认100)
点击"提交"后,One-API会自动测试连接并验证API密钥的有效性。
3.3 支持的主流模型列表
One-API的强大之处在于支持几乎所有主流大模型:
| 模型类型 | 支持厂商 | 特别说明 |
|---|---|---|
| 国际模型 | OpenAI、Azure OpenAI、Anthropic Claude、Google Gemini | 支持最新模型版本 |
| 国内模型 | 百度文心一言、阿里通义千问、讯飞星火、智谱ChatGLM | 无需额外配置 |
| 其他模型 | 字节豆包、360智脑、腾讯混元、DeepSeek等 | 开箱即用 |
4. 高级功能配置
4.1 负载均衡设置
One-API的负载均衡功能让你可以同时使用多个相同模型的渠道,提高可用性和性能:
# 示例:为同一个模型设置多个渠道
渠道1:OpenAI-官方API (权重:50)
渠道2:OpenAI-代理1 (权重:30)
渠道3:OpenAI-代理2 (权重:20)
系统会自动按权重分配请求,当某个渠道失败时自动切换到其他可用渠道。
4.2 令牌管理与访问控制
在"令牌"页面,你可以创建和管理访问密钥:
- 创建令牌:设置名称、选择可访问的模型
- 设置额度:限制每个令牌的使用量
- IP白名单:限制只有特定IP可以访问
- 过期时间:设置令牌的有效期
4.3 模型映射与重定向
如果你需要将用户请求的模型A重定向到模型B,可以使用模型映射功能。比如将用户对"gpt-4"的请求实际转发到"gpt-4-turbo"。
5. 实际使用与接口调用
5.1 获取访问令牌
在调用API之前,需要先获取访问令牌:
- 登录One-API管理界面
- 进入"令牌"页面
- 点击"新建令牌"
- 复制生成的令牌(格式为:
sk-xxxxxxxxxxxxxxxx)
5.2 调用示例代码
使用标准的OpenAI API格式调用任何支持的模型:
import openai
# 配置One-API地址和令牌
openai.api_base = "http://你的服务器IP:3000/v1"
openai.api_key = "sk-你的令牌"
# 调用聊天接口
response = openai.ChatCompletion.create(
model="gpt-4", # 可以是任何支持的模型
messages=[
{"role": "user", "content": "你好,请介绍一下自己"}
],
stream=True # 支持流式传输
)
# 处理流式响应
for chunk in response:
content = chunk.choices[0].delta.get("content", "")
if content:
print(content, end="", flush=True)
5.3 curl命令调用
如果你更喜欢使用命令行工具:
curl -X POST "http://localhost:3000/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-你的令牌" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "你好,请介绍一下自己"}],
"temperature": 0.7,
"max_tokens": 500
}'
5.4 流式传输支持
One-API完全支持流式传输,可以实现打字机效果。在Web应用中特别有用:
// JavaScript示例
const eventSource = new EventSource(
`http://localhost:3000/v1/chat/completions?model=gpt-4&message=你的问题&stream=true`
);
eventSource.onmessage = function(event) {
const data = JSON.parse(event.data);
console.log(data.choices[0].delta.content);
};
6. 总结
通过以上5个步骤,你已经成功搭建了一个功能强大的大模型调用中转站。让我们回顾一下关键要点:
One-API的核心价值:
- 统一接口:用OpenAI标准格式调用所有主流大模型
- 负载均衡:自动分配请求到多个渠道,提高稳定性
- 集中管理:在一个界面管理所有API密钥和访问权限
- 成本控制:精确控制每个用户/项目的使用额度
- 扩展性强:支持自定义模型和第三方服务
实际应用场景:
- 为团队提供统一的大模型访问入口
- 在不同模型提供商之间做故障转移
- 对比不同模型的输出效果
- 控制和管理大模型使用成本
One-API的部署和使用都非常简单,但功能却异常强大。无论你是个人开发者还是企业用户,都能从中获得巨大的便利。现在就开始你的大模型统一管理之旅吧!
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)