FreeLLMAPI:把 34 家免费模型额度聚合成一个 OpenAI 兼容接口,5 条命令跑通
【免费下载链接】freellmapi7.4 billion tokens per month. 34 free LLM providers. 635 free model endpoints. All behind one /v1 endpoint, plus any custom OpenAI-compatible endpoint. Smart routing, automatic failover, encrypted keys. Personal experimentation only.项目地址: https://gitcode.com/GitHub_Trending/fr/freellmapi
写小项目时最卡脖子的往往是 API 成本:一家提供商的免费额度用完了,下家的密钥格式又不同,限流规则还各搞各的。FreeLLMAPI 做的事很直接——把 34 家提供商的免费层打包成一个本地 OpenAI 兼容接口,你只需把 SDK 的base_url指过来,选哪家模型、哪家限流了该换谁,全由路由器接管。
免费池有多大:三组数字定预期
先给结论:单月免费推理容量约7.4 亿 token(原文口径 7.4 billion),目录覆盖474 个模型家族、635 个免费端点(584 个聊天、41 个 Embedding、7 个转录、3 个视频)。
这些数字是"理论上限",不是 SLA 承诺:每家的实际配额、每日上限都不一样,路由器的职责就是把它们用满且不超限。判断要不要跑:如果你的月用量在几百万 token 以内、又不想为开发环境付费,这个池子够用很久;如果你要的是某个特定前沿模型,它池子里没有,直接跳过。
最短路径安装:5 条命令起服务
前提:机器上装好 Docker。以下命令克隆仓库、生成静态加密主密钥、写入.env、启动容器。
git clone https://gitcode.com/GitHub_Trending/fr/freellmapi cd freellmapi ENCRYPTION_KEY="$(openssl rand -hex 32)" printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" > .env docker compose up -d其中ENCRYPTION_KEY是后续所有提供商密钥落盘加密用的主密钥,丢了就无法解密已存的密钥,务必自己留好;PORT=3001决定服务端口。Windows 用户丢进 WSL 执行即可,或者从 Releases 直接装桌面版.exe——桌面版免账号免密码,从系统托盘点开仪表盘。更多部署细节(备份、局域网、Termux)见 安装与部署文档。
验证装好了没有:三步走一次真请求
✅ 装完别猜,按下面三步验证,任何一步卡住就说明没通。
- 打开
http://localhost:3001,服务器版首次进入要先建一个邮箱 + 密码账号; - 进Keys页,把你手头的提供商密钥加进去(Google AI Studio、Groq、Mistral 都行,任意 OpenAI 兼容端点也可以);
- 在Fallback Chain里排好优先顺序,复制页头的统一密钥(
freellmapi-…格式),到Playground页发一句话。
判断标准:Playground 里出了回复,且回复下方标明了实际应答的提供商、模型 ID 和延迟,就算成功。
如果页面打不开,先查两件事:容器在不在跑(docker compose ps)、端口是不是 3001。
三个核心机制逐个拆
限流自动切换:请求怎么做到不断流
它解决的问题:某家提供商被限流(429)或出错(5xx)时,你的请求不该失败。路由器对每个已启用模型实时打三个分——速度、能力、可靠性——挑分数最高、密钥健康且没触限的模型去应答;一旦上游返回 429/5xx,这把密钥被置入冷却,请求自动转给链上下一个模型。类比成电话的自动呼叫转移:一条线忙,通话直接转下条线,不挂断。
触发方式就一个:请求里传model="auto",也支持auto:fast、auto:smart、auto:reliable等策略别名,或auto:<档案名>走指定链(完整别名表见 API 参考)。
怎么确认生效:每个响应都带X-Routed-Via: <平台>/<模型>头,写明是谁真正处理了请求;Models页的列表顺序就是此刻的真实路由顺序,每个模型挂着实时评分。
统一密钥:N 把密钥收成 1 把
它解决的问题:管 N 套提供商密钥的麻烦。真实密钥用 AES-256-GCM 加密存进本地 SQLite,每次请求时才在内存里解密调用,调用完即弃,明文不落盘;你的应用从头到尾只接触那把freellmapi-…统一密钥,相当于把一排房间钥匙锁进保险柜,手里只留一张门禁卡。
用法是把 SDK 的api_key填成统一密钥,base_url指向http://localhost:3001/v1,其余代码和你调 OpenAI 官方 API 完全一样。
from openai import OpenAI client = OpenAI(base_url="http://localhost:3001/v1", api_key="freellmapi-your-unified-key") resp = client.chat.completions.create( model="auto", messages=[{"role": "user", "content": "一句话总结罗马帝国的衰落"}], ) print(resp.choices[0].message.content) print(resp.headers.get("x-routed-via"))怎么确认生效:调用正常返回,且 Keys 页里每把密钥旁边有健康状态点和最近一次体检时间。
Fusion 多模型合成:一份答案更稳
它解决的问题:单个免费模型能力有限,回答不够稳。触发方式是请求虚拟模型model="fusion":路由器把同一份提示词并行发给一组风格各异的免费模型各自起草,再交给一个裁判模型综合出一份最终答案。面板、裁判和策略可以在仪表盘的Fusion页配置,也可以按请求覆盖。
怎么确认生效:同一个问题分别用单模型和 fusion 各问一遍,对比信息密度与细节覆盖,差异通常立竿见影。
最常见的 4 个故障与解决办法
⚠️ 下面四条是实际踩坑率最高的,提前知道能省不少时间。
1. 忘密码,收不到重置邮件。服务器版没有邮箱可发链接,一次性重置码直接打在服务器日志里,15 分钟内有效。用docker compose logs -f freellmapi翻日志拿到码,回登录页填进重置表单即可。
2. 局域网里别的设备打不开页面,一直卡着。容器默认只发布在127.0.0.1,跨设备访问http://服务器IP:3001必然挂起。要开放就用HOST_BIND=0.0.0.0 docker compose up -d启动——且只在信任的网络里这么干:服务是单用户的,全部防护就那把统一密钥。
3. 误判免费层的稳定性。池子里没有前沿模型,也没有 SLA。头部模型跑满每日配额后,傍晚到深夜整体智力会明显下滑,UTC 午夜才重置。白天用没问题,别指望深夜它还跟早上一样聪明。
4. 拿个人项目底座当生产依赖。项目定位就是个人实验与学习。真要做产品,发布前换成付费 API;上游提供商的服务条款对你经它代理的流量同样适用,合规责任在你自己(各家的条款解读见架构文档)。数据目录、卸载方式、日志位置等运维细节在安装与部署文档里。
跑通之后值得接着玩的方向
两个方向性价比最高:
- 把编程智能体指过来。Claude Code、Codex CLI、Aider、Cline、Cursor 等十几种工具都有一键配置生成器(如
npx freellmapi setup-claude),会备份现有配置、只合并不覆盖;Claude Code 和 Codex 还有凭证零落盘的启动器。每个工具的配方在 clients 文档。 - 把本地模型接进免费池。Ollama、vLLM 这类本地端点可以作为自定义 OpenAI 兼容端点加进 Keys 页,和本地模型混着路由,免费池 + 私有模型一起调度。
流式、工具调用、Embedding、图像/视频/语音生成的完整接口清单,见 API 参考;路由与故障转移的内部实现想深挖的话,架构索引按组件逐个讲了。
【免费下载链接】freellmapi7.4 billion tokens per month. 34 free LLM providers. 635 free model endpoints. All behind one /v1 endpoint, plus any custom OpenAI-compatible endpoint. Smart routing, automatic failover, encrypted keys. Personal experimentation only.项目地址: https://gitcode.com/GitHub_Trending/fr/freellmapi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考