FreeLLMAPI:在一个兼容 OpenAI 的端点后堆叠 16 个免费 LLM 层
将 Google、Groq、Cerebras、Mistral、NVIDIA、OpenRouter 以及更多免费层聚合到单一代理中。~1.7B 令牌/月。Docker 安装,Claude Code 集成,工具调用,流式传输,回退链。
- 更新于 2026-06-22
FreeLLMAPI:在一个 OpenAI 兼容端点后面堆叠 16 个免费 LLM 层 #
TL;DR — FreeLLMAPI 在单个“/v1/chat/completions”端点后面聚合了 16 个以上 LLM 提供商(Google Gemini、Groq、Cerebras、Mistral、NVIDIA、OpenRouter、GitHub Models、Cohere、Cloudflare、HuggingFace、Z.ai、Ollama Cloud、Kilo、Pollinations、LLM7、OVH)的免费层级。 合计起来,它们每月产生大约 17 亿代币的工作推理能力。 通过 Docker 在一个命令中进行安装,添加您的提供商密钥,并将任何 OpenAI 兼容客户端指向您的本地服务器。
什么是 FreeLLMAPI? #
现在每个主要的人工智能实验室都提供免费套餐——每月几百万个代币,每天几千个请求。 每层本身都是一个玩具。 将它们叠加在一起,总计大约每月 17 亿个代币的工作推理能力,涵盖 100 多个模型,从小而快速到功能相当强大。
问题在于,手动堆叠它们非常痛苦:十七个不同的 SDK、十七个不同的速率限制、十七个请求可能失败的地方。 FreeLLMAPI 将其折叠为一个 OpenAI 兼容端点。 将任何 OpenAI 客户端库指向您的本地服务器,它就会在您为其添加密钥的任何提供商之间透明地路由。
FreeLLMAPI 由 Tashfeen Ahmed 构建,是一个带有 React 管理仪表板的自托管 Node.js 代理 (TypeScript/Express)。 它支持:
- OpenAI 聊天完成 API (
/v1/chat/completions) - Anthropic Messages API (
/v1/messages) — 与 Claude Code 一起使用 - 响应 API (
/v1/responses) — 用于 Codex CLI - 图像生成(
/v1/images/ Generations) - 文本转语音(
/v1/audio/speech) - 具有往返多步骤流程的工具调用
- 嵌入基于家庭的路由
- 流式和非流式响应
- 429/5xx/超时自动故障转移
- SQLite 中的 AES-256-GCM 加密密钥存储
GitHub: tashfeenahmed/freellmapi · 星星: 11,381+ · 许可证: MIT · 语言: TypeScript
支持的提供商 #
FreeLLMAPI 目前支持 16 个免费提供商和 100 多个模型:
| 供应商 | 主要型号 | 速率限制 |
|---|---|---|
| 谷歌人工智能 | Gemini 2.5 Flash、3.x 预览 | 约 30 转/分 |
| 格罗克 | 骆驼 3.3 70B、骆驼 4、GPT-OSS、Qwen3 | 约 40 转/分 |
| 大脑 | Qwen3 235B | 快速推理 |
| 米斯特拉尔 | 大 3、中 3.5、Codestral、Devstral | 约 60 转/分钟 |
| 开放路由器 | 21 个免费模式 | 变化 |
| GitHub 模型 | GPT-4.1、GPT-4o | ~10K 代币/天 |
| Cloudflare Workers AI | Kimi K2、GLM-4.7、GPT-OSS、花岗岩 4 | 约 40 转/分 |
| 连贯 | 命令 R+、命令-A | 约 15 转/分 |
| Z.ai(智浦) | GLM-4.5、GLM-4.7 闪存 | 变化 |
| NVIDIA NIM | 40 RPM 免费(仅限评估服务条款) | 约 40 转/分 |
| 拥抱脸 | 路由器、DeepSeek V4、Kimi K2.6、Qwen3 | 变化 |
| 奥拉玛云 | GLM-4.7、Kimi K2、gpt-oss、Qwen3 | 变化 |
| 基洛网关 | :免费航线 | 匿名 好 |
| 授粉 | GPT-OSS 20B | 匿名 好 |
| 法学硕士7 | GPT-OSS、Llama 3.1、GLM | 匿名 好 |
| OVH AI 端点 | Qwen3.5 397B、GPT-OSS、Llama 3.3 | 匿名 好 |
| OpenCode Zen | DeepSeek V4 闪存、Nelotron | 促销期 |
再加上一个自定义提供程序 - 从“密钥”页面指向任何 OpenAI 兼容端点(llama.cpp、LM Studio、vLLM、本地 Ollama 或远程网关)。
安装 #
单线(Docker) #
最快的路径是设置所有内容的单个命令:
卷曲-fsSL https://freellmapi.co/install.sh | 巴什
这将创建“~/freellmapi”,生成加密密钥,拉取 Docker 映像,并在端口 3001 上启动容器。重新运行是安全的 - 您的“.env”和加密密钥将被保留。
Docker Compose(手动) #
git 克隆 https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
# 生成静态密钥存储的加密密钥
ENCRYPTION_KEY =“$(openssl rand -hex 32)”
printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" > .env
docker 组成-d
打开“http://localhost:3001”,在 Keys 页面上添加您的提供程序密钥,重新排序 Fallback Chain 以进行尝试,并从 Keys 页面标题中获取统一的 API 密钥。
本地发展 #
git 克隆 https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
npm 安装
cp .env.example .env
ENCRYPTION_KEY="$(node -e 'console.log(require("crypto").randomBytes(32).toString("hex"))')"
printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" > .env
npm 运行开发
桌面应用程序 #
本机 .dmg (macOS) 和 .exe (Windows) 安装程序可从 Releases 获取。 桌面应用程序从系统托盘运行整个路由器和仪表板,并带有显示实时请求统计信息的玻璃弹出窗口。
路由器的工作原理 #
FreeLLMAPI 的路由器针对每个请求做出决定:
- 选择具有健康密钥且符合所有速率限制的最高优先级模型 2.解密密钥(AES-256-GCM),调用提供商SDK
- 在 429/5xx/超时时 → 冷却 + 重试后备链中的下一个模型(最多 20 次尝试)
┌──────────────────┐ 承载者 freellmapi-… ┌──────────────────────────┐
│ OpenAI SDK / │ ──────────────────────▶ │ 快速代理 (:3001) │
│ 卷曲 / 任何 │ ◀────────────────────── │ /v1/chat/completions │
│ OpenAI 客户端 │ 流式代币 └────────────┬────────────┘
└──────────────────┘ │
▼
┌────────────────────────────────────────────────┐
│ 路由器 │
│ 1. 选择最高优先级的模型 │
│ (a) 有一个健康的密钥并且 │
│ (b) 处于其所有速率限制之下。 │
│ 2.解密密钥,调用提供商SDK。 │
│ 3. 在 429/5xx → 冷却 + 重试下一个模型。 │
└────────────────────────────────────────────────┘
│
┌──────────────┬────────────┬──────────┴──────────┬────────────┬──────────┐
▼ ▼ ▼ ▼ ▼ ▼
Google Groq Cerebras OpenRouter HF …10 更多
每个响应都带有“X-Roated-Via:
将 FreeLLMAPI 与任何客户端一起使用 #
Python(OpenAI SDK) #
从 openai 导入 OpenAI
客户端 = OpenAI(
base_url =“http://localhost:3001/v1”,
api_key="freellmapi-your-unified-key",
)
resp = client.chat.completions.create(
model="auto", # 让路由器选择; 或指定例如 “gemini-2.5-flash”
messages=[{"role": "user", "content": "用一句话概括罗马的陷落。"}],
)
打印(resp.choices[0].message.content)
print("路由通过:", resp.headers.get("x-routed-via"))
流媒体 #
流 = client.chat.completions.create(
型号=“汽车”,
messages=[{"role": "user", "content": "给我发送一首关于 SQLite 的俳句。"}],
流=真,
)
对于流中的块:
print(chunk.choices[0].delta.content 或 "", end="",lush=True)
工具调用 #
工具=[{
“类型”:“功能”,
“功能”:{
“名称”:“获取天气”,
"description": "获取某个城市的当前天气。",
“参数”:{
“类型”:“对象”,
“属性”:{“城市”:{“类型”:“字符串”}},
“必填”:[“城市”],
},
},
}]
# 1. 模型请求工具调用
首先 = client.chat.completions.create(
型号=“汽车”,
messages=[{"role": "user", "content": "卡拉奇的天气怎么样?"}],
工具=工具,
tool_choice=“必需”,
)
呼叫=first.choices[0].message.tool_calls[0]
# 2.你执行该工具,反馈结果
最终 = client.chat.completions.create(
型号=“汽车”,
消息=[
{"role": "user", "content": "卡拉奇的天气怎么样?"},
第一个.choices[0].message,
{"role": "tool", "tool_call_id": call.id, "content": '{"temp_c": 32, "cond": "sunny"}'},
],
工具=工具,
)
打印(最终.选择[0].消息.内容)
Gemini Google 搜索基础 #
resp = client.chat.completions.create(
型号=“gemini-2.5-flash”,
messages=[{"role": "user", "content": "谁赢得了本周末的 F1 比赛?"}],
工具=[{“类型”:“功能”,“功能”:{“名称”:“google_search”,“参数”:{}}}],
)
打印(resp.choices[0].message.content)
视觉/图像输入 #
resp = client.chat.completions.create(
型号=“汽车”,
消息=[{
“角色”:“用户”,
“内容”:[
{"type": "text", "text": "这张图片里有什么?"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,<...>"}},
],
}],
)
打印(resp.choices[0].message.content)
克劳德代码集成 #
FreeLLMAPI 还支持 Anthropic Messages API,因此 Claude Code 和官方 Anthropic SDK 可以在您的免费池中运行:
导出 ANTHROPIC_BASE_URL=http://localhost:3001
导出 ANTHROPIC_AUTH_TOKEN=freellmapi-您的统一密钥
克劳德
使用“ANTHROPIC_AUTH_TOKEN”(作为承载令牌发送),不是“ANTHROPIC_API_KEY” - Claude 代码将一组“ANTHROPIC_API_KEY”视为冲突的第一方凭证并拒绝启动。
Claude 模型名称映射到 Keys → Anthropic 选项卡上的免费池:每个系列(“default”、“opus”、“sonnet”、“haiku”)路由到“auto”(路由器选择一个免费模型)或您固定的模型。 流媒体、系统提示、工具使用和图像输入都通过与 OpenAI 端点相同的路由器进行转换。
嵌入 #
/v1/embeddings 与 OpenAI 兼容,但有一个故意的差异:**故障转移永远不会跨模型。**来自不同模型的向量存在于不兼容的空间中。 按家庭划分的嵌入路线:
resp = client.embeddings.create(
型号=“汽车”,
input=[“敏捷的棕色狐狸”,“在我的盒子里装上五打酒壶”],
)
print(len(resp.data), "向量", len(resp.data[0].embedding), "dims")
可用的嵌入系列:
| 家庭 | 调暗 | 供应商 |
|---|---|---|
gemini-embedding-001 | 3072 | 3072 谷歌 |
文本嵌入-3-大 | 3072 | 3072 GitHub 模型 |
文本嵌入-3-小 | 1536 | 1536 GitHub 模型 |
嵌入-v4.0 | 1536 | 1536 连贯 |
bge-m3 | 1024 | 1024 Cloudflare → 拥抱脸 |
qwen3-embedding-0.6b | 1024 | 1024 云耀 |
nv-embedqa-e5-v5 | 1024 | 1024 英伟达 |
主要特点 #
- 自动故障转移 — 如果所选提供商返回 429、5xx 或超时,路由器会跳过它,将密钥置于短暂的冷却状态,然后重试后备链中的下一个模型(最多 20 次尝试)
- 粘性会话 — 多轮对话持续与同一个模型对话 30 分钟,以避免对话中模型切换造成的幻觉峰值
- 加密密钥存储 — API 密钥在访问 SQLite 之前使用 AES-256-GCM 进行加密; 解密发生在请求之前的内存中
- 统一 API 密钥 — 客户端使用单个
freellmapi-...不记名令牌向您的代理进行身份验证。 您永远不会向您的应用程序公开上游提供商密钥 - 运行状况检查 - 定期探测将键标记为“healthy”、“rate_limited”、“invalid”或“error”,以便路由器自动跳过死键
- 分析 — 每个请求的日志记录,包括延迟、令牌计数、成功率和每个提供商的故障
- 上下文切换 - 可选功能,当会话切换到不同模型时注入紧凑的系统消息,以便新模型知道它正在继续现有任务
- 随处运行 — Windows、macOS、Linux 服务器或小型 ARM SBC(包括 Raspberry Pi)。 闲置时约 40 MB RSS
性能和容量 #
合并后的免费套餐容量约为每月 17 亿个代币。 以下是按层级的粗略细分:
| 等级 | 预计每月代币 |
|---|---|
| 顶级(Gemini Pro、GPT-4o,来自 GitHub) | 约 5 亿代币 |
| 中层(Groq、Cerebras、Mistral) | 约 6 亿代币 |
| 较低层(Cloudflare、OVH、授粉) | 约 6 亿代币 |
您的实际容量取决于您启用的提供商及其当前的免费套餐配额。 路由器跟踪每个密钥的 RPM、RPD、TPM 和 TPD 计数器,因此它总是选择位于其上限之下的密钥。
限制 #
诚实地对待权衡:
- 无前沿型号。 免费目录最多的是 Llama 3.3 70B、GLM-4.5、Qwen 3 Coder 和 Gemini 2.5 Pro。 您不会通过此获得 GPT-5 或 Claude Opus 类推理。 对于困难问题,请付费购买真正的 API。
- 随着时间的推移,智力会下降。 您排名靠前的模型的每日上限最低。 一旦达到极限,路由器就会沿着优先级链下降到较小/较弱的型号。 预计有效情报会在每天深夜下降,然后在 UTC 午夜重置。
- 延迟变化很大。 Cerebras 和 Groq 速度极快; 其他人则不然。 无论哪一个可用,您都可以获得。
- 免费套餐可能会发生变化,恕不另行通知。 提供商会定期收紧、放松或删除免费套餐。 发生这种情况时,您将看到 429 或身份验证错误,直到更新目录为止。
- 根据定义,没有 SLA。 如果您需要可靠性,请使用有合同的付费提供商。
- 本地优先。 没有多租户身份验证。 自己运行这个; 不要将其暴露在互联网上。
- 不支持旧版补全。 仅实现了
/v1/chat/completions,而不是/v1/completions或/v1/moderations。
谁应该使用 FreeLLMAPI? #
- 个人开发者 希望使用多个模型进行原型设计而无需管理 17 个 API 密钥
- 人工智能爱好者 预算有限,希望以零成本获得最大推理能力
- Claude Code / Codex CLI 用户 希望在空闲池上运行代理
- RAG 构建者 需要来自多个提供商的嵌入并具有自动回退功能
- 任何构建 OpenAI 兼容应用程序的人 想要一个能够承受单个提供商速率限制的弹性代理
替代方案比较 #
| 特色 | 免费LLMAPI | 莱特法学硕士 | 开放路由器 |
|---|---|---|---|
| 免费层级聚合 | ✅ 16 家提供商 | ❌ 仅限付费 | ❌ 仅限付费 |
| 自托管 | ✅ Docker/节点 | ✅ Docker/节点 | ❌ 仅限云 |
| 人类 API 支持 | ✅ /v1/messages | ✅ | ✅ |
| 加密密钥存储 | ✅ AES-256-GCM | ✅ | 不适用 |
| 管理仪表板 | ✅ 反应 + 投票 | ❌ 仅 CLI | ✅ 网页 |
| 本地/桌面应用程序 | ✅ macOS/Windows | ❌ | ❌ |
| 成本 | 免费(麻省理工学院) | 免费(阿帕奇2.0) | 按代币付费 |
| 多租户 | ❌ 单用户 | ✅ | ✅ |
入门清单 #
- 安装 Docker(或 Node.js 20+ 用于本地开发)
- 运行
curl -fsSL https://freellmapi.co/install.sh | bash - 打开“http://localhost:3001”并登录
- 在 Keys 页面添加提供商密钥
- 重新排序您的 后备链 以优先考虑您最常使用的模型
- 获取您的统一 API 密钥
- 将您的 OpenAI SDK 指向“http://localhost:3001/v1”
- 开始提示
model: "auto"
常见问题 #
问:我是否需要所有 16 个提供商的 API 密钥? #
不需要。FreeLLMAPI 可与您添加的任何键配合使用。 一些提供商(Kilo、Polnations、LLM7、OVH)接受匿名请求。 其他则需要免费注册。 从 2-3 个键开始,然后根据需要添加更多。
问:我可以将 FreeLLMAPI 与 LangChain 或 LlamaIndex 一起使用吗? #
是的。 FreeLLMAPI 实现了 OpenAI 兼容的有线格式。 任何使用 base_url + api_key 的客户端都可以工作 — LangChain、LlamaIndex、Continue、Hermès Agent 等等。 只需将“base_url”更改为“http://localhost:3001/v1”即可。
问:后备链如何工作? #
您可以在仪表板中定义模型的优先级顺序。 当发出请求时,路由器会选择优先级最高的健康模型。 如果该模型返回 429、5xx 或超时,它将移至链中的下一个模型。 每个按键在重试之前都会有短暂的冷却时间。
问:我的数据安全吗? #
所有提供商 API 密钥均使用 AES-256-GCM 加密并存储在本地 SQLite 数据库中。 解密仅在发送请求之前在内存中发生。 您的提示和完成信息不会存储在外部 - 请求分析会在本地保留 90 天或 100,000 行(可配置)。
问:我可以添加自己的自定义提供商吗? #
是的。 自定义提供程序允许您指向任何 OpenAI 兼容端点 - llama.cpp、LM Studio、vLLM、远程 Ollama 实例或任何其他代理。 它出现在后备链的末尾,并且可以像任何其他提供商一样重新排序。
问:高级级别怎么样? #
免费安装遵循每月快照 - 永远零成本。 高级版(19 美元/年或 49 美元终身)遵循实时反馈,每 2-3 天刷新一次,因此新的免费型号会立即添加到您的路由器中。 目录服务器永远看不到您的提示、完成或提供程序密钥。
Docker Compose 设置 #
对于更喜欢 Docker Compose 而不是安装脚本的团队:
版本:'3.8'
服务:
免费地图:
图片:freellmapi/服务器:最新
端口:
- “3001:3001”
卷:
- ./data:/应用程序/数据
环境:
- ENCRYPTION_KEY=your-random-32-char-key-here
重新启动:除非停止
# 创建数据目录并启动
mkdir -p 数据
docker 组成-d
# 管理仪表板位于 http://localhost:3001
环境变量 #
所有配置都可以通过环境变量设置:
导出端口=3001
导出 ENCRYPTION_KEY="a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
导出 LOG_LEVEL=信息
导出 MAX_RETRIES=3
导出REQUEST_TIMEOUT=30000
# 验证您的配置
docker exec freellmapi 节点 --eval "console.log(process.env.PORT)"
CLI 管理 #
FreeLLMAPI 附带一个用于自动化的管理 CLI:
# 检查服务器状态
freellmapi状态
# 列出活跃的提供者及其关键数量
freellmapi 提供商 --list
# 导出配置以进行备份
freellmapi 配置导出 > freellmapi-backup.json
# 从备份中恢复配置
freellmapi 配置恢复 < freellmapi-backup.json
# 监控实时请求日志
freellmapi 日志 --follow --since 5m
# 检查哪些提供商现在受到速率限制
freellmapi 健康——提供商
来源 #
想要尝试 FreeLLMAPI? 使用 Docker 在 2 分钟内完成部署。 没有信用卡,没有 API 密钥管理,没有供应商锁定。 只需一个端点即可连接 16 个免费 LLM 提供商。
加入Dibi8社区: Telegram Group
💬 留言讨论