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渠道为例:

  1. 渠道类型:选择"OpenAI"
  2. 渠道名称:自定义一个名称,如"OpenAI-GPT-4"
  3. API Key:填入你的OpenAI API密钥
  4. 模型列表:可以自动获取或手动填写
  5. 权重:设置负载均衡的权重(默认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 令牌管理与访问控制

在"令牌"页面,你可以创建和管理访问密钥:

  1. 创建令牌:设置名称、选择可访问的模型
  2. 设置额度:限制每个令牌的使用量
  3. IP白名单:限制只有特定IP可以访问
  4. 过期时间:设置令牌的有效期

4.3 模型映射与重定向

如果你需要将用户请求的模型A重定向到模型B,可以使用模型映射功能。比如将用户对"gpt-4"的请求实际转发到"gpt-4-turbo"。

5. 实际使用与接口调用

5.1 获取访问令牌

在调用API之前,需要先获取访问令牌:

  1. 登录One-API管理界面
  2. 进入"令牌"页面
  3. 点击"新建令牌"
  4. 复制生成的令牌(格式为: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星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐