OpenRouter 教程:如何获得最低成本的 LLM 推理
How to Get the Lowest-Cost LLM Inference on OpenRouter
OpenRouter 发布官方教程,讲解如何在平台上自动获得最低成本的 LLM 推理。核心方法包括:在模型 slug 后加 :floor 路由到最便宜供应商、用 max_price 设置硬性价格上限、用 partition: "none" 加吞吐阈值跨模型选最便宜的组合,以及 BYOK 自带密钥(收 5% 费用)。
OpenRouter 官方拆解了降低推理成本的多个配置杠杆,并给出免费额度、5.5% 平台费和量化端点等容易踩坑的细节。
既然你来到这里,你就已经知道模型并不是唯一的成本变量。同一个模型在不同提供商上的费用可能相差数倍,而这种差距在规模化时会迅速放大。
本指南将向你展示自动获取最低价格的确切配置,以及如果忽略就会抬高账单的坑。
如果你已经遇到了账单意外,请从坑的部分开始看。如果你想知道 5.5% 的平台费是否值得,成本计算在底部的决策表中。如果你只是想知道已选模型的最便宜提供商,请在模型 slug 后追加 :floor 并跳到那一节。
简要总结
- 从免费模型开始。OpenRouter 有 20 多个 token 成本为 $0 的模型。免费账户每天可获得 50 次请求。一次性充值 $10 后,每天可提升到 1,000 次。
- 默认路由器已经偏向更便宜的提供商。你无需配置任何内容即可受益。
- 在任何模型 slug 后追加
:floor,即可始终路由到该模型最便宜的提供商。 - 当你需要硬性预算上限时,请使用
max_price。如果没有提供商符合条件,请求会失败,而不是超出你的计划支出。 - 列出的最低价格有时是量化端点。如果精度对你的工作负载很重要,请使用
quantizations过滤器或provider.ignore。
不确定哪个杠杆适用于你的情况?这张图告诉你从哪里开始:

什么是 :floor 成本快捷方式?
OpenRouter 上的每个模型都可以通过多个提供商获取,而它们的收费并不相同。仅以 Llama 3.3 70B 为例,根据服务方的不同,输入价格从每百万 token $0.10 到超过 $1.00 不等。
在模型 slug 后追加 :floor 会告诉路由器始终选择最便宜的那个。这与在请求体中设置 provider.sort: "price" 完全相同。只需改一个字符串:
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="$OPENROUTER_API_KEY",
)
resp = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct:floor", # routes to the cheapest provider
messages=[{"role": "user", "content": "Classify this ticket."}],
)在 TypeScript 中同样如此:
import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY });
const completion = await openRouter.chat.send({
model: 'meta-llama/llama-3.3-70b-instruct:floor',
messages: [{ role: 'user', content: 'Classify this ticket.' }],
stream: false,
});它的对应项是 :nitro,它按吞吐量而非价格排序。两者值得一起了解:
| 后缀 | 等同于 | 优化目标 |
|---|---|---|
:floor | provider.sort: "price" | 最低价格 |
:nitro | provider.sort: "throughput" | 最高吞吐量 |
:floor 的代价是它会禁用负载均衡并锁定到最便宜的端点,而该端点在某一天可能并不是最可靠的。
对于批处理任务、文档处理和离线工作负载,多花几秒钟无关紧要,这是一笔划算的交易。对于面向用户的实时调用,请三思。如果最便宜的端点最终被证明是降级的,下面的坑部分会告诉你如何排除它。
OpenRouter 默认如何选择便宜的提供商
在着手任何路由配置之前,先了解已经为你运行的内容会有所帮助。即使没有任何显式设置,OpenRouter 的默认行为也已经偏向更便宜的提供商。
以下是确切的策略:
- 跳过在过去 30 秒内出现过重大故障的提供商。
- 在稳定的提供商中,从成本最低的候选中选择,按价格的平方反比加权。
- 将其余的作为回退。
平方反比加权正是其有用之处。假设提供商 A 的成本为 $1/M,提供商 B 为 $2/M,提供商 C 为 $3/M,而提供商 B 最近出现过几次故障。你的请求会首先发往提供商 A,其可能性大约是提供商 C 的 9 倍,因为 1 除以 3 的平方等于 1/9。如果 A 失败,下一个是 C。B 因故障记录而排在最后。便宜和保持在线会自动得到平衡。
我们构建这套权重机制,是因为我们吃过亏,深知朴素的按价格平均路由会带来什么后果。把所有请求都发给最便宜的提供商听起来很合理,直到该提供商成为第一个在负载下饱和、第一个性能下降、且恢复最慢的那一个。我们在 80 多家提供商上运行这套机制,每月处理约 100 万亿个 token,而平方反比方法正是让成本节省不以牺牲可靠性为代价的关键。
有一点需要记住:在你的提供商偏好中设置 sort 或 order 会完全关闭这种负载均衡。下一节会告诉你什么时候需要覆盖它。
如何用 max_price 设置硬性价格上限?
:floor 会路由到最便宜的提供商。max_price 则相反:它会阻止请求发往任何价格高于你所设上限的提供商。:floor 寻找最低价,max_price 则强制执行上限。
为了确保预算,provider 字段中的 max_price 对象 会限制你每百万 token 的支出上限:
resp = client.chat.completions.create(
model="meta-llama/llama-3.3-70b-instruct",
messages=[{"role": "user", "content": "Draft a release note."}],
extra_body={
"provider": {
"max_price": {"prompt": 1, "completion": 2}
}
},
)这只会路由到输入 token 价格不高于 $1/M、输出不高于 $2/M 的提供商。如果所有可用提供商都更贵,请求就会失败。这是有意为之。你宁愿看到错误,也不愿收到意料之外的账单。
最实用的组合通常是 max_price 搭配 sort: "throughput":
"provider": {
"sort": "throughput",
"max_price": {"prompt": 1, "completion": 2}
}这样你就能获得可用的最快提供商,只要其输入价格不超过 $1/M、输出不超过 $2/M。一个配置里同时实现速度优化路由和硬性预算保证。
仍然足够好的最便宜模型是什么?
提供商路由能为你已经选定的模型降低成本。选择更便宜的模型才是更大的杠杆。前沿模型与能力不错的开放权重模型之间,每 token 的价格差距往往是 10 倍到 50 倍。
像 DeepSeek V4、Llama 3.3 70B、Qwen 和 Mistral 这样的开放权重模型能很好地处理大多数生产任务:文档处理、分类、摘要、代码生成、结构化输出提取。对于大多数工作负载来说,它们是合适的选择。
同一模型在不同提供商之间的价格差异让路由的论点变得具体。以下是 Llama 3.3 70B 在四家提供商上的情况:
| 提供商(Llama 3.3 70B) | 输入 $/M | 输出 $/M |
|---|---|---|
| DeepInfra | $0.10 | $0.32 |
| Novita | $0.135 | $0.40 |
| Groq | $0.59 | $0.79 |
| Together | $1.04 | $1.04 |
仅输出价格一项,同一模型就从 $0.32 波动到每百万 token 超过 $1,有些端点甚至超过 $2。这就是让路由器挑选最便宜的合格提供商、而不是硬编码某一家的全部理由。
进阶做法:满足性能下限的最便宜模型
如果你对由哪个模型处理请求比较灵活,可以给 OpenRouter 一组可接受的模型,让它在所有模型中找出仍然满足吞吐量阈值的最便宜端点。设置 partition: "none" 会告诉路由器按价格在所有模型间全局排序,而不是总是先尝试第一个模型:
const completion = await openRouter.chat.send({
models: [
'anthropic/claude-sonnet-4.5',
'openai/gpt-5-mini',
'google/gemini-3-flash-preview',
],
messages: [{ role: 'user', content: 'Summarize this PR.' }],
provider: {
sort: { by: 'price', partition: 'none' },
preferredMinThroughput: { p90: 50 },
},
stream: false,
});这会在三个模型中路由到最便宜的模型与提供商组合,同时保证 p90 下至少达到每秒 50 个 token。具体到编码任务,像 DeepSeek V4 和 Qwen3 Coder 这样的开放权重模型具有很高的性价比。
BYOK 如何降低成本?
如果你已经拥有某提供商的 API 密钥,无论是通过直接合同、协商费率还是现有额度,BYOK(自带密钥) 都能让你用这些密钥通过 OpenRouter 路由。你保留与提供商的关系和定价。OpenRouter 在其上叠加路由、故障转移和可观测性。
该费用为同一模型和提供商在 OpenRouter 上正常价格的 5%。当前免费额度取决于套餐,并按标价推理成本计算;详情请见定价页面。
我们看到团队认为 BYOK 总是更便宜,因为他们使用的是自己的密钥。只有当你的直接提供商费率减去套餐额度以上的 5% 费用后,低于 OpenRouter 的零加价目录价格时,它才胜过标准的按需付费。在假设它能省钱之前,请将你预期的标价推理支出与当前额度进行比较。
对于跨回退集的 BYOK,partition: "none" 在这里也有帮助。如果你的主模型没有配置 BYOK 提供商,但某个回退模型有,这可以让 OpenRouter 路由到使用你密钥的回退模型,从而让更多流量按你自己的价格计费:
const completion = await openRouter.chat.send({
models: ['anthropic/claude-sonnet-4.5', 'openai/gpt-5-mini'],
messages: [{ role: 'user', content: 'Hello' }],
provider: { sort: { by: 'price', partition: 'none' } },
stream: false,
});业余项目有免费的 LLM 模型吗?
有。OpenRouter 有 20 多个免费模型,可通过你用于其他所有内容的同一端点和 API 密钥调用,token 成本为 $0。对于副业项目或周末原型,你无需花费任何费用即可开始。
该名单包括 Llama 3.3 70B、Qwen3 Coder、GPT-OSS 120B 和 NVIDIA Nemotron 3 Super 等模型。这些都是可靠的模型,对于原型设计和早期验证来说绰绰有余。
免费模型与付费模型使用相同的请求结构。你只需将模型字符串改为免费 slug,就完成了:
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/llama-3.3-70b-instruct:free",
"messages": [{"role": "user", "content": "Summarize this changelog in two lines."}]
}'你可以在 openrouter.ai/models?max_price=0 浏览完整列表,或让 Free Models Router 自动为你挑选一个。
问题在于:免费套餐的速率限制
免费账户每天可获得 50 次请求,每分钟 20 次请求。当你添加 $10 或更多额度后,免费模型的上限会提高到每天 1,000 次请求,速率仍为每分钟 20 次。这笔一次性充值永不过期。
| 账户状态 | 请求数/天(免费模型) | 请求数/分钟 |
|---|---|---|
| 免费账户 | 50 | 20 |
| $10+ 额度 | 1,000 | 20 |
在基于免费模型进行构建之前,你还应该知道,免费端点的上下文窗口有时比其付费版本更小,因此在付费版上可行的长上下文任务在免费版上可能会被截断。而且失败的请求仍会计入你的每日配额,因此配置错误的 重试循环 可能会在产生任何有用结果之前就耗尽你的额度。
值得了解的成本陷阱
最便宜的标价并不总是最便宜的实际成本。如果不提前规划,有几件事会推高你的账单。
最便宜的端点可能是量化端点
当输出质量意外下降时,大多数开发者会认为模型变了或提供商更新了什么。一个可能的原因是量化。一些提供商以更低的价格提供量化模型权重:FP8、FP4、INT8。你的应用仍然会返回响应。只是它与全精度权重产生的结果不同,而日志中没有任何信息告诉你原因。
平心而论,量化并不一定更差。我们自己的基准分析发现,激进量化的端点可以与全精度竞品相媲美。但如果你的工作负载对精度敏感,你有两个手段。
排除特定提供商:
"provider": {
"sort": "price",
"ignore": ["provider-slug"]
}或通过 quantizations 过滤器 要求更高精度的服务:
"provider": {
"sort": "price",
"quantizations": ["fp16", "bf16"]
}5.5% 的平台费用应计入每一次成本计算
我们不会对提供商 token 定价加价,但按需购买的额度需支付 5.5% 的平台费。充值 100 美元,就有 5.50 美元从你的推理预算中扣除。这一点写在定价页面上,并未隐藏,但正是这个数字让某些对比具有误导性。
任何将 OpenRouter 的 token 费率与提供商直接费率进行比较、却不计入这笔费用的成本计算都是不完整的。
取消流式传输并不总能停止计费
如果你在响应中途中止流式请求,OpenRouter 会在支持流取消的提供商处停止计费。Bedrock、Groq、Google、Mistral 以及其他几家不支持。
如果你的应用频繁取消流式传输,无论是通过用户取消按钮、超时,还是提前短路的智能体循环,在将其作为成本控制手段依赖之前,请先确认哪些提供商支持取消。
失败的免费层请求仍会占用你的配额
如果免费模型请求因速率限制、提供商故障或超时而失败,它仍会消耗你每天 50 次或 1,000 次请求中的一次。一个误触发的重试循环可能在产生任何有用结果之前就耗尽你的配额。如果你在免费端点上构建,请添加带退避的重试逻辑。
综合来看:一条成本决策规则
以下是完整的“何时使用”表格:
| 你的情况 | 该怎么做 | 配置 |
|---|---|---|
| 只是测试或业余项目 | 免费模型,$0 | model: "...:free" |
| 需要以最低价格使用特定模型 | 添加 :floor | model: "...:floor" |
| 任何可用的模型都行 | 回退集,按价格排序并设置吞吐量下限 | sort: { by: "price", partition: "none" } + preferredMinThroughput |
| 硬性预算上限 | 添加价格上限 | provider: { max_price: { prompt: 1, completion: 2 } } |
| 已经直接向提供商付费 | BYOK | 配置你的密钥;免费额度见定价页面 |
| 最便宜但担心质量 | 排除提供商或按精度过滤 | ignore: ["provider"] 或 quantizations: ["fp16", "bf16"] |
| 最便宜且可靠 | 保持默认设置不动 | 无需配置 |
贯穿始终的一点:在 OpenRouter 上实现低成本是一次性做出的配置决策。如果你的工作负载在多轮对话中重复相同的长提示词,提示词缓存和粘性路由会在上述任何路由选择的基础上进一步削减输入成本。
关于这些杠杆背后的完整路由机制,请参阅提供商路由参考和模型回退。
常见问题
OpenRouter 比直接找提供商更便宜吗?
就 token 定价而言,并不便宜。我们按提供商费率原样传递,不加价。它省钱的地方在于路由:可以访问你可能没有账户的更便宜的提供商,自动故障转移使失败的请求不会浪费算力,以及将批处理工作路由到最便宜的可用端点,而无需你自己维护这套逻辑。真正需要考虑的成本是购买额度时 5.5% 的平台费。按每月 500 美元的推理费用计算,就是 27.50 美元。是否值得,取决于你原本要花多少工程时间来管理提供商。
OpenRouter 上最便宜的模型是什么?
免费模型的 token 成本为 $0。名单包括 Llama 3.3 70B、Qwen3 Coder、GPT-OSS 120B 和 NVIDIA Nemotron 3 Super,限制为无额度时每天 50 次请求,或充值 $10 及以上时每天 1,000 次。对于付费推理,使用 :floor 路由的开源权重模型会自动为你提供该模型最便宜的提供商。
OpenRouter 的免费模型真的免费吗?
是的,每 token $0。限制是免费账户每天 50 次请求,充值 $10 额度后每天 1,000 次,两者均为 20 RPM。免费端点的上下文窗口有时比付费版本更小。
如何始终使用最便宜的提供商?
将 :floor 追加到你的模型 slug 中,或在请求体中设置 provider.sort: "price"。两者作用相同。
最便宜的 LLM API 足以胜任编程吗?
对于常规编程任务,是的。像 Qwen3 Coder 和 DeepSeek V4 这样的开放权重模型能以远低于前沿模型的价格处理样板代码、重构、代码审查和文档编写。前沿模型在复杂架构和困难调试方面仍具有明显优势,因此把昂贵的调用留给需要它们的工作。
OpenRouter 会对失败的请求收费吗?
不会。你只需为成功的补全付费。失败和回退请求不计费。
来源:OpenRouter:Announcements(RSS) · openrouter.ai