为什么选 OpenRouter 的免费模型池
大多数官方 Free Tier 是「一家厂商一个后台」,要逐个注册、逐个绑卡。OpenRouter 的定位是聚合层,但它自己维护了一份标注为 :free 的模型清单——这些条目由平台与模型提供方共同开放,注册一个账号、生成一个 API Key,就能用 OpenAI 兼容格式调用多个来源的免费模型。对只想「先跑通、再谈量」的开发者,这是注册成本最低的一条官方通道。
关键点:免费池不是「无限量」,而是「有速率上限、有可用性波动」。把它当成日常小额供给,而不是生产主链路。
操作步骤
第一步:注册与生成 Key
- 打开 openrouter.ai,用邮箱或 GitHub 账号注册。
- 进入 Keys 页面创建 API Key,命名建议带上用途(如
local-script-free),方便后续单独吊销。 - 免费池通常不要求绑卡;但一旦你想调用付费模型,就需要充值。不要为了免费池去绑卡,保持账号处于纯免费状态即可。
第二步:筛出真正可用的免费模型
- 在 Models 页面按价格筛选,或直接看模型 ID 后缀是否带
:free。 - 逐个查看模型卡片上的上下文长度与速率限制说明——不同免费条目的限制不一样,通常按「每分钟请求数 / 每天请求数」双维度约束。
- 用一次最小请求验证可用性:
```bash
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"<带 :free 后缀的模型ID>","messages":[{"role":"user","content":"ping"}]}'
```
- 把返回正常的模型 ID 记进一个白名单文件,脚本只从这个白名单里取模型。
第三步:接进本地工作流
因为接口是 OpenAI 兼容的,任何支持自定义 base_url 的客户端都能直接用:
- 命令行/脚本:设置
OPENAI_BASE_URL=https://openrouter.ai/api/v1,把 key 换成 OpenRouter 的。 - 本地工具:多数开源客户端支持填写自定义 endpoint,填入上面的地址即可。
- 失败回退:在白名单里准备 2–3 个免费模型,主模型返回 429 时自动切下一个,避免单点限速卡死整个脚本。
第四步:把限速写进代码
免费池最常见的失败是 429。做法很简单:
- 请求之间加固定间隔(例如每次请求后 sleep 数秒)。
- 捕获 429 后做指数退避重试,而不是立刻重发。
- 记录每个模型的成功/失败次数,定期把长期失败的条目从白名单里剔除。
注意事项
- 免费池条目会变:模型上下架、限速调整都可能发生,不要把它写死在业务逻辑里,用配置文件管理。
- 可用性有波动:高峰期免费条目可能排队或直接不可用,重要任务要有备用方案。
- 数据与隐私:免费条目可能对请求数据的使用政策与付费条目不同,不要发送敏感信息。
- 不要多账号刷量:平台对滥用有风控,多账号绕限速通常会导致封禁,得不偿失。
- 额度数字别写死:具体速率与每日上限以模型页面当时展示为准,本文不给出固定数值。
适用场景
- 个人开发者做原型验证、写小工具、跑批处理脚本。
- 教学演示、内部 Demo,对稳定性要求不高的场合。
- 作为付费主链路的「降级备份」:主链路失败时切到免费池兜底。
不适合:需要稳定 SLA 的生产服务、高并发任务、涉及敏感数据的处理。