模型与价格
用 GET /v1/models 列出可用模型及其每 token 价格,并了解每次调用的扣费是如何精确计算的。
模型按 token 计费,价格以美元 / 每百万 token 标示。每次调用根据模型在响应中报告的 token 数扣费,金额会在几秒内从你的预付费余额中扣除。
列出模型#
GET /v1/models 返回你此刻可以调用的所有模型,附带上下文长度、价格以及为其提供服务的渠道分组。它无需 API 密钥,并且在 OpenAI 和 Anthropic SDK 中都可通过 client.models.list() 调用。
curl https://lovelyrouter.com/v1/models精简后的响应:
{
"object": "list",
"data": [
{
"id": "claude-sonnet-5.5",
"object": "model",
"type": "model",
"display_name": "Claude Sonnet 5.5",
"created": 1700000000,
"created_at": "2025-01-01T00:00:00Z",
"owned_by": "Anthropic",
"context_length": 1000000,
"pricing": {
"input": 2,
"output": 10,
"cache_read": 0.1,
"cache_write": 2.5,
"unit": "USD per 1M tokens"
},
"groups": ["claude-value"]
},
{
"id": "gpt-6.1-sol",
"object": "model",
"type": "model",
"display_name": "GPT-6.1 Sol",
"created": 1700000000,
"created_at": "2025-01-01T00:00:00Z",
"owned_by": "OpenAI",
"context_length": 1050000,
"pricing": {
"input": 2,
"output": 10,
"cache_read": 0.1,
"cache_write": null,
"unit": "USD per 1M tokens"
},
"groups": ["gpt-value"]
}
],
"has_more": false,
"first_id": "claude-fable-5.1",
"last_id": "gpt-5.6-luna"
}| 字段 | 含义 |
|---|---|
id | 要发送的模型 ID。其他写法也能解析;请参阅模型 ID。 |
owned_by | 厂商:Anthropic、OpenAI 或 Google。 |
context_length | 最大上下文窗口,单位为 token。 |
pricing.input | 未缓存输入 token 的价格。 |
pricing.output | 输出 token 的价格,包括推理和思考 token。 |
pricing.cache_read | 从提示缓存读取的输入 token 的价格。 |
pricing.cache_write | 写入提示缓存的输入 token 的价格。null 表示缓存写入按输入价格计费。 |
pricing.unit | 始终为 USD per 1M tokens。 |
groups | 为该模型提供服务的渠道分组。 |
created、created_at | 固定的占位值,仅为兼容 SDK 而保留。 |
所有价格都是应用渠道分组倍率之前的标价。GET /v1beta/models 以 Gemini 的格式返回同样的模型,但不含价格。
每次调用如何计费#
每次调用的用量分为四类 token,每类按各自的价格计费:
| Token 类别 | Anthropic 用量字段 | OpenAI 用量字段 | Gemini 用量字段 |
|---|---|---|---|
| 未缓存输入 | input_tokens | prompt_tokens 减去 cached_tokens | promptTokenCount 减去 cachedContentTokenCount |
| 缓存读取 | cache_read_input_tokens | prompt_tokens_details.cached_tokens | cachedContentTokenCount |
| 缓存写入 | cache_creation_input_tokens | 不报告 | 不报告 |
| 输出 | output_tokens(含思考) | completion_tokens(含推理) | candidatesTokenCount + thoughtsTokenCount |
扣费公式为:
charge = ( uncached_input × input_price
+ cache_read × cache_read_price
+ cache_write × cache_write_price
+ output × output_price ) ÷ 1,000,000 × multiplier倍率取自服务本次调用的渠道分组,该分组会在 x-lovely-group 响应头中报告。模型也可以有自己的倍率,此时它会取代分组的倍率。目前所有在服务的分组均按 ×1.00 计费,因此标价就是你实际支付的价格。扣费向上取整到最接近的 $0.000001。
例如,在 claude-sonnet-5.5 上一个智能体会话中的一轮:
| Token 类别 | Token 数 | 每百万价格 | 费用 |
|---|---|---|---|
| 未缓存输入 | 1,200 | $2.00 | $0.002400 |
| 缓存读取 | 30,000 | $0.10 | $0.003000 |
| 缓存写入 | 2,000 | $2.50 | $0.005000 |
| 输出 | 800 | $10.00 | $0.008000 |
| 合计 | $0.018400 |
如果没有缓存,同样 33,200 个输入 token 的费用会是 $0.066400。如何保持较高的缓存命中率,请参阅提示缓存。
图像模型#
图像模型(gpt-image-*)按张计费,而不是按 Token 计费。在 GET /v1/models 中,它们的 pricing 是 per_image(每张图片的美元价格),而不是 Token 价格。详见图像定价。
不收费的情况#
- 在到达模型之前就被拒绝的请求:密钥无效、模型不被允许、余额不足、触发限流、JSON 无效。
- 在所有渠道上都失败的请求,以及已在另一个渠道上重试的失败尝试。你只为最终作答的那次尝试付费。
POST /v1/messages/count_tokens和 Gemini:countTokens。- 列出模型。
取消和中断的流#
如果你提前关闭流,需要为截至当时已生成的 token 付费。输入使用流报告的 token 数;如果流未报告任何 token 数,则按你的请求内容大约每 4 个字符 1 个 token 估算。输出取截至当时报告的 token 数与按已返回给你的文本大约每 4 个字符 1 个 token 的估算值中的较大者。
因模型停止响应而被网关切断的流,也按同样方式对已返回的内容计费。请参阅流式输出。
在哪里查看扣费#
每次调用都会显示在日志中,附带 token 数和扣费。模型广场按渠道分组显示每个模型已应用倍率的价格,以及实时可用性。余额和充值请参阅额度与计费;用量报告请参阅用量与日志。
实时价格表#
| 模型 | 上下文 | 输入 | 输出 | 缓存读取 | 缓存写入 |
|---|---|---|---|---|---|
实时数据来自 GET /v1/models · 每百万 token 美元价格