Lovely Router文档
获取密钥
模型 API

模型与价格

用 GET /v1/models 列出可用模型及其每 token 价格,并了解每次调用的扣费是如何精确计算的。

模型按 token 计费,价格以美元 / 每百万 token 标示。每次调用根据模型在响应中报告的 token 数扣费,金额会在几秒内从你的预付费余额中扣除。

列出模型#

GET /v1/models 返回你此刻可以调用的所有模型,附带上下文长度、价格以及为其提供服务的渠道分组。它无需 API 密钥,并且在 OpenAI 和 Anthropic SDK 中都可通过 client.models.list() 调用。

curl https://lovelyrouter.com/v1/models

精简后的响应:

Response
{
  "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_tokensprompt_tokens 减去 cached_tokenspromptTokenCount 减去 cachedContentTokenCount
缓存读取cache_read_input_tokensprompt_tokens_details.cached_tokenscachedContentTokenCount
缓存写入cache_creation_input_tokens不报告不报告
输出output_tokens(含思考)completion_tokens(含推理)candidatesTokenCount + thoughtsTokenCount

扣费公式为:

Text
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 美元价格