FreeLLMAPI 是什么?
FreeLLMAPI 是一个 OpenAI 兼容的代理服务器,将多家 LLM 提供商的免费额度接入统一 API 接口。只需将 OpenAI 兼容客户端指向代理,即可向单一端点发送请求,而无需配置各家 SDK 或处理不同限流。
该项目专为个人实验设计。它聚合约 14 家提供商的密钥(通过提供商适配器),将每个请求路由至可用模型,并在提供商限流或出错时自动切换。
主要特性
- OpenAI 兼容端点:实现
POST /v1/chat/completions和GET /v1/models,只需更改 OpenAI SDK 或其他兼容客户端的base_url即可使用。 - 流式支持:当
stream: true时,服务器使用 Server-Sent Events (SSE) 返回响应;否则返回标准 JSON 响应。 - 工具调用直通:支持 OpenAI 风格的
tools/tool_choice请求,并将助手tool_calls及后续tool角色消息转发至提供商适配器。 - 自动切换与重试:若选中提供商返回 429、5xx 或超时,路由器将该密钥标记为临时不可用,并沿回退链重试下一个提供商(最多 20 次)。
- 按密钥追踪使用量:针对每个
(platform, model, key)追踪 RPM, RPD, TPM, 和 TPD,选择未达免费额度上限的密钥。 - 粘性多轮路由:对话保持在同一模型 30 分钟,减少中途切换。
- 加密密钥存储:使用 AES-256-GCM 加密上游提供商密钥后存入 SQLite;使用前在内存中解密。
- 统一代理认证:客户端使用单一
freellmapi-...bearer 令牌认证代理,而非上游提供商密钥。 - 健康检查与管理控制:定期探测将密钥标记为健康/限流/无效/错误;内置管理面板(React + Vite)可管理密钥、重排序回退优先级、查看分析并运行提示 playground。
如何使用 FreeLLMAPI
- 安装依赖:使用 Node.js 20+ 和 npm。
- 克隆并安装:
git clone https://github.com/tashfeenahmed/freellmapi.gitcd freellmapinpm install
- 设置环境配置:
- 复制示例 env:
cp .env.example .env - 生成
ENCRYPTION_KEY并置入.env(仓库提供命令输出随机 32 字节十六进制密钥)。
- 复制示例 env:
- 启动代理:按仓库 quick start / README 所述运行服务器(页面摘录包含设置步骤,仓库文档详述确切启动命令)。
- 配置 OpenAI 兼容客户端:
- 将客户端
base_url设置为本地 FreeLLMAPI 服务器。 - 使用代理 bearer 令牌(
freellmapi-...)认证并调用POST /v1/chat/completions(可选stream: true)。
- 将客户端
使用场景
- 跨提供商单代码库聊天测试:将现有 OpenAI 兼容应用(或库)指向代理,即可实验多种模型,无需管理各家 SDK。
- 减少手动限流失败:利用自动切换跳过返回 429/5xx/超时的提供商,按配置回退顺序继续请求下一个可用模型。
- 工具使用聊天流程:运行 OpenAI 风格工具调用请求,
tool_calls和工具结果消息通过同一代理流程路由。 - 长对话一致性:活跃使用中保持聊天会话在同一模型(粘性会话 30 分钟),提供商不可用时仍享回退。
- 本地实验加密密钥处理:代理内集中上游密钥并静态加密存储,客户端应用无需暴露提供商密钥。
常见问题
-
FreeLLMAPI 支持完整 OpenAI API 吗? 不支持。该项目专注聊天补全和模型列表(
/v1/chat/completions、/v1/models)。嵌入、图像、音频/语音、多模态输入均不支持,遗留/v1/completions、审核及多补全亦然。 -
FreeLLMAPI 如何处理限流? 追踪按密钥使用计数器(RPM/RPD/TPM/TPD),选择未达上限的密钥。若提供商仍返回 429(或 5xx/超时),路由器沿回退链重试下一个提供商。
-
流式传输与我的客户端兼容吗? 是。聊天端点
stream: true时代理支持 SSE 流式传输。 -
能用现有 OpenAI 兼容库吗? 代理旨在与官方 OpenAI SDK 和其他兼容客户端配合,只需指向代理
base_url。 -
适合生产使用吗? 仓库明确声明“仅供个人实验”。
替代方案
- 直接使用单一提供商:许多服务提供自家 API,语义一致,但无法获得多提供商聚合、自动切换或免费额度叠加至单一端点。
- 自建路由/回退层:自定义代理可实现切换和密钥轮换,但需自行管理各提供商专用 SDK、限额及错误处理。
- 使用支持多 LLM 后端的编排框架:某些工具可在不同模型提供商间路由请求,但工作流可能不同(且可能不提供此处所述的 OpenAI 兼容
/v1/chat/completions代理行为)。 - 手动切换密钥和模型:可在应用中手动选择提供商,但会丢失 FreeLLMAPI 提供的自动重试/切换及按密钥限流跟踪功能。
替代品
AakarDev AI
AakarDev AI 是一个强大的平台,通过无缝的向量数据库集成简化 AI 应用程序的开发,实现快速部署和可扩展性。
BookAI.chat
BookAI允许您通过简单提供书名和作者与您的书籍进行AI聊天。
skills-janitor
skills-janitor 插件用于审计和跟踪 Claude Code 技能使用情况,并与九个聚焦的斜杠命令进行对比,零依赖。
FeelFish
FeelFish AI 小说写作助手PC客户端,支持人物与设定规划、章节生成与编辑,并凭上下文一致性续写剧情。
BenchSpan
BenchSpan 支持 AI agent 基准并行运行,自动记录得分与失败并整理运行历史;按提交标签复现,减少失败重跑浪费的 token。
ChatBA
ChatBA 是用于生成幻灯片的生成式 AI,可用聊天式流程快速根据你的输入创建演示内容与幻灯片。