AI个人学习
和实操指南
豆包Marscode1

UniAPI:免服务器统一管理大模型API转发

综合介绍

UniAPI 是一个兼容 OpenAI 协议的 API 转发器,核心功能是通过统一的 OpenAI 格式管理多个大模型服务商的 API,比如 OpenAI、Azure OpenAI、Claude 等。开发者可以用一个接口调用不同厂商的模型,无需频繁调整代码。UniAPI 支持模型择优、断路器机制和流式输出优化,确保请求高效稳定。它提供 Vercel 一键部署,适合快速搭建个人或团队的 API 服务站。项目由 GitHub 用户 zhangtyzzz 开发,仍在持续更新中。

UniAPI:免服务器统一管理大模型API转发-1


 

功能列表

  • 支持 OpenAI 及兼容 OpenAI 协议的服务,包括 Azure OpenAI、Claude 等。
  • 将不同厂商的 API 统一转换为 OpenAI 格式,简化调用流程。
  • 支持模型映射,用统一模型名调用不同厂商的实际模型。
  • 提供模型择优机制,根据 72 小时成功率和首 token 响应时间选择最佳服务。
  • 内置断路器机制,服务连续失败后自动暂停请求,保护系统稳定性。
  • 优化流式输出,把大块响应拆成小块,提升视觉效果。
  • 支持自定义 API 密钥、Base URL 和模型列表,灵活配置。
  • 通过 Vercel 部署,提供管理面板和安全认证。

 

使用帮助

UniAPI 的使用分为部署和配置两部分。下面详细介绍如何安装、配置和操作,确保你能快速上手。

安装流程

UniAPI 支持两种部署方式:本地运行和 Vercel 一键部署。这里以 Vercel 部署为主,适合大多数用户。

Vercel 一键部署

  1. 访问部署链接
    点击官方提供的 Vercel 部署地址
  2. 配置环境变量
    在 Vercel 部署页面填写以下变量:

    • ADMIN_API_KEY:管理员密钥,用于登录管理面板,必须设置,例如 mysecretkey
    • TEMP_API_KEY:允许访问 API 的密钥,可设置最多 2 个,例如 key1 和 key2
    • REDIS_URL:Redis 连接地址,用于持久化存储配置(可选)。
    • ENVIRONMENT:设为 production 以禁用开发模式默认密钥。
      配置完成后,点击“Deploy”。
  3. 获取部署地址
    部署成功后,Vercel 会生成一个 URL,比如 https://your-vercel-url.vercel.app。用 ADMIN_API_KEY 登录管理面板。

本地运行(可选)

  1. 准备环境
    确保设备安装 Python 3.8 或以上。检查版本:
python --version
  1. 下载文件
    访问 https://github.com/zhangtyzzz/uni-api/releases,下载最新二进制文件,例如 uni-api-linux-x86_64-0.0.99.pex
  2. 运行程序
    在终端执行:
chmod +x uni-api-linux-x86_64-0.0.99.pex
./uni-api-linux-x86_64-0.0.99.pex

默认监听 http://localhost:8000

配置 API

  1. 登录管理面板(Vercel 部署)
    打开部署后的 URL,输入 ADMIN_API_KEY 登录。界面显示“添加配置”和“配置列表”。
  2. 添加 API 配置
    点击“添加配置”,填写以下内容:
  • 服务商:选择 OpenAI、Claude 等。
  • Base URL:输入服务商的 API 地址,例如 https://api.openai.com/v1
  • API 密钥:输入从服务商获取的密钥,例如 sk-xxxx
  • 模型名称:输入实际模型名或映射名,例如 gpt-3.5-turbo
    保存后,配置会显示在列表中。
  1. 模型映射
    在配置中添加映射,例如:
  • 统一名称 gpt-4 映射到 OpenAI 的 gpt-4 和 Claude 的 claude-2
    请求时用 gpt-4,系统自动选择可用服务。

使用主要功能

  1. 发送请求
    用 curl 测试 API:
curl -X POST https://your-vercel-url.vercel.app/v1/chat/completions 
-H "Authorization: Bearer your_api_key" 
-H "Content-Type: application/json" 
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "你好"}], "stream": true}'

返回流式输出,表示配置成功。

  1. 模型择优
    系统会根据过去 72 小时的成功率和首 token 响应时间,自动选择最佳服务商。你无需手动干预。
  2. 断路器机制
    当某服务连续失败时,触发断路器:
  • 3 次失败:暂停 5 分钟。
  • 4 次失败:暂停 10 分钟。
  • 9 次失败:暂停 48 小时。
    暂停期间,系统切换到其他服务商。
  1. 流式优化
    对于 Gemini 等大块响应的模型,UniAPI 自动拆分成小块输出。

常见问题解决

  • 请求失败 401:检查 Authorization 头是否包含正确的 Bearer your_api_key
  • 模型不可用:确保配置的模型名与服务商提供的一致,或检查映射设置。
  • 部署后无法访问:确认 ENVIRONMENT 设为 production,并检查 Vercel 日志。

通过以上步骤,你可以轻松部署并使用 UniAPI。它的配置简单,功能强大,非常适合需要管理多厂商 API 的场景。

 

应用场景

  1. 开发者测试多厂商模型
    你想比较 OpenAI 和 Claude 的输出效果。UniAPI 让你用一个接口调用两者,节省时间。
  2. 团队搭建稳定 API 服务
    团队需要一个可靠的 API 站支持业务。UniAPI 的断路器和择优机制确保服务不中断。
  3. 教育和研究
    学生可以用 UniAPI 研究不同模型的响应速度和稳定性,适合学术实验。

 

QA

  1. UniAPI 支持哪些服务商?
    支持 OpenAI、Azure OpenAI、Claude 等兼容 OpenAI 协议的服务,具体见 GitHub 更新。
  2. 断路器触发后怎么办?
    系统自动切换其他服务商,冷却期后重试。无需手动操作。
  3. 流式输出有什么优势?
    它把大块响应拆成小块,用户体验更流畅,尤其适合实时聊天场景。
未经允许不得转载:首席AI分享圈 » UniAPI:免服务器统一管理大模型API转发
zh_CN简体中文