Model API Relay —— 自建 AI API 中转服务全攻略

ytt 发布于 2 小时前 10 次阅读


随着大语言模型(LLM)的蓬勃发展,越来越多的开发者和企业需要在不同 AI 提供商之间切换。OpenAI、Anthropic、Google 等各家有各自的 API 格式和计费方式,管理多个 API Key 和配额成为一项繁琐的工作。本文将介绍一个轻量级的解决方案——Model API Relay,一个自托管的 AI API 中转代理服务。

什么是 Model API Relay?

Model API Relay 是一个运行在 PHP + SQLite 环境下的 API 代理服务,它可以:

  • 统一接口:将多个 AI 提供商的 API 统一为 OpenAI 兼容格式
  • 自动转换:在 OpenAI Chat Completions 和 Anthropic Messages 格式之间双向转换
  • 智能路由:根据模型名称自动选择可用的上游通道,支持加权负载均衡
  • 多用户管理:基于 WordPress SSO 的登录体系,支持配额和钱包管理
  • 用量监控:完整的请求日志和 token 消耗统计

核心架构

系统采用经典的前后端分离架构:

  • 前端:Apple 设计风格的响应式 UI,包含管理后台、在线 Playground、聊天界面
  • 后端:PHP 8.4 原生实现,无框架依赖,轻量高效
  • 数据库:SQLite 3,零配置,适合中小规模部署
  • 反代:Nginx 反向代理 + Let's Encrypt SSL 证书
  • 部署:运行在树莓派 (aarch64) 上,功耗仅 5W

核心功能详解

1. 多格式自动转换

这是系统最核心的能力。当用户以 OpenAI 格式发送请求但模型名为 Claude 系列时,系统会自动将请求体转换为 Anthropic Messages API 格式,转发到上游 Anthropic 通道,然后将响应再转换回 OpenAI 格式返回。反之亦然。

这意味着开发者可以只使用一套 OpenAI SDK,就能调用包括 Claude、GPT、以及各种兼容模型在内的所有 AI 服务。例如:

from openai import OpenAI

client = OpenAI(
    api_key="sk-xxx",
    base_url="https://apio.m1f.cn"
)
# 用 OpenAI SDK 调 Claude!
response = client.chat.completions.create(
    model="claude-3-5-sonnet-20241022",
    messages=[{"role": "user", "content": "你好"}]
)

2. 智能通道路由

系统支持配置多个上游 API 通道,每个通道可以设置:

  • 类型:OpenAI、Anthropic 或 OpenAI 兼容
  • 模型列表:通道支持的模型,支持自动从上游获取
  • 优先级和权重:用于加权随机选择,实现负载均衡
  • 速率限制:每个通道的请求频率控制

当收到 API 请求时,系统会根据请求的模型名称自动匹配最优通道。如果某个通道出现故障,会自动切换到其他可用通道,保障服务可用性。

3. WordPress SSO 登录

用户无需单独注册,直接使用 m1f.cn 的 WordPress 账号即可一键登录。登录流程基于 OAuth 风格的弹窗授权,安全便捷:

  • 用户点击"使用 m1f.cn 账号登录"
  • 弹窗跳转到 WordPress 授权页面
  • 授权成功后通过 postMessage 传递 token
  • 后端验证 token 并创建本地会话

4. 个人钱包与配额管理

系统内置了完整的钱包系统:

  • 每个用户有独立的余额账户
  • 每次 API 调用根据 token 消耗自动扣费
  • 完整的交易记录
  • 管理员可以手动调整余额
  • 支持按 token 配额和按金额两种计费模式

5. 管理后台

遵循 Apple 设计语言的管理界面,提供完整的系统管理能力:

  • 仪表盘:实时统计数据,7 天趋势图
  • 用户管理:创建、编辑、禁用用户,设置配额和余额
  • 通道管理:添加上游 API 通道,自动同步模型列表,测试连接
  • 令牌管理:生成和管理 API 访问令牌
  • 调用日志:按用户、模型、时间筛选查看详细调用记录
  • 系统设置:动态配置所有系统参数

技术亮点

  • 纯 PHP 实现:无框架依赖,零 Composer 依赖,部署即用
  • SQLite 存储:无需数据库服务器,单文件数据库便于备份和迁移
  • SSE 流式支持:完整支持 Server-Sent Events 流式响应
  • CORS 支持:全端点跨域支持,可直接从浏览器调用
  • Apple 设计系统:基于 SF Pro 字体和 Action Blue 的精致 UI

部署与使用

访问 apio.m1f.cn 即可使用在线服务。主要入口:

使用 m1f.cn 账号登录后即可获取 API Key,开始调用。

未来规划

  • 支持更多 AI 提供商(Google Gemini、Cohere 等)
  • 增加用量告警和自动充值功能
  • 支持更多的格式转换
  • WebSocket 实时推送
  • 多语言界面支持

Model API Relay 是一个持续演进的项目,欢迎提出建议和反馈。