AI 模型价格¶
Specivo 按 API 价格 对 AI 使用量计价:即同样的 token 在服务商按量付费价目表上要花多少钱。价格保存在一张由管理员维护的表中,位于 管理 → AI 模型价格。每个 Specivo 版本都内置了数百个模型的标价,你也可以用任何已启用的货币添加自己的价格。
Claude Max 这类包月套餐覆盖的使用量同样按这些价格计价,以便与套餐费用对比;套餐本身记录在 AI 订阅 中。
价格会随时间变化,所以这张表是一份历史记录。每个价格都有一段有效期,使用量始终按其发生时刻有效的价格计价。修改价格不会改写旧价格。
价格包含哪些内容¶
所有价格均为每百万 token 的价格,以单一货币计。使用量按 token 类别统计:
| 价格 | 适用于 |
|---|---|
| 输入 | 新输入的 token,不含缓存读取和写入 |
| 输出 | 生成的 token |
| 缓存写入(5 分钟) | 保留 5 分钟的提示词缓存写入 |
| 缓存写入(1 小时) | 保留 1 小时的提示词缓存写入。服务商未公布该价格时,内置价格取输入价格的两倍。 |
| 缓存读取 | 提示词缓存命中 |
| 推理 | 与输出分开上报的推理(“思考”)token。留空表示与输出同价。 |
其他任何价格留空,表示该类 token 未定价。含有此类 token 的使用量会显示为部分定价,而不会当作这些 token 免费。价格为 0 则是真实价格:免费。
长上下文¶
有些服务商在请求携带长上下文(例如超过 200,000 token)时收费更高。一个价格可以设置一个阈值,以及该档位的第二套价格。上下文(输入加缓存读写)超过阈值的请求整体按长上下文价格计费;恰好等于阈值的不算。长上下文价格留空时,回退到同类的普通价格。
上报工具会把此类请求的 token 放在单独的 long_context_tokens 字段中,与其他请求的普通 tokens 并列。两者互不重叠:每个 token 只按自己所在档位的价格计价一次,token 总数则是两者之和。
本地模型¶
价格可以标记为 本地模型,并可选指定一个 基准模型:用来为本地模型使用量计价的付费模型,以此显示本地运行节省了多少。
价格的来源¶
每个价格都有一个 来源:
| 来源 | 从哪里来 |
|---|---|
| 内置 | 随本版本 Specivo 一起发布的价格表 |
| 管理员 | 管理员在页面上或通过 API 录入 |
当内置价格和你录入的价格同时有效时,以你的为准。
内置价格¶
内置价格表来自 LiteLLM 的模型价格表(MIT 许可证),裁剪为编码智能体直接使用的几家服务商的文本模型:Anthropic、OpenAI、Google Gemini、xAI、DeepSeek、Mistral、Moonshot、Z.ai 和阿里云 DashScope。内置价格 卡片显示本版本包含多少个模型,以及价格表对应的日期。
LiteLLM 只发布当前价格,没有历史。因此内置价格表以只追加的方式加载:
- 实例中首次出现的模型,其第一个价格的生效时间为 2000 年 1 月 1 日(UTC),而非价格表的日期,这样价格表制作之前记录的使用量也能计价。前提是该模型没有更早的内置时间段,也没有你录入的、起始更早的价格。
- 价格未变则什么也不改。
- 价格有变,则在新价格表的日期结束原内置时间段,并开始一个新时间段。旧时间段保留,旧使用量仍按旧价格计价。
- 你录入的价格永远不会被改动,你停用的内置价格也不会。
价格表在安装 Specivo 时加载,之后每次 worker 启动时再次加载,因此带有新价格表的升级会自动应用。立即加载内置价格 可以随时手动执行同样的操作。
在旧版本中把某模型的第一个内置时间段存为价格表日期的实例,会在下次加载时把起始时间前移,旧起始时间之前的条目也会重新计价。
模型第一个时间段之前的使用量不计价:Specivo 从不用更晚的价格回退计算更早的使用量。如果需要比内置价格更早的价格,请把它录入为过去的时间段(见下文);你录入的价格优先于内置价格。
报表中的未定价使用量¶
有些条目在其模型和日期下没有价格时,它们计为 0,报表会在合计旁说明:M 个条目中有 N 个在其模型和日期下没有价格,计为 0,并列出相关模型和 添加或加载价格 的链接。图表中含有此类条目的时段会标上星号。为该模型添加覆盖这些日期的价格(或加载内置价格),再用重新计算过去的使用为已记录的条目重新计价。
查找价格¶
列表默认显示 当前有效 的价格,每个模型和来源一行。可以按服务商、模型名称或别名的一部分、来源、状态(启用或停用)筛选,切换到 所有时间段 还能看到过去的价格。点击模型打开其 价格历史:所有时间段,内置的和你录入的,最新的在前。当前正在使用的时间段标记为 当前使用。
模型名称如何匹配¶
各工具上报的模型名称格式不一。匹配前,Specivo 会:
- 转为小写并去掉首尾空格;
- 去掉
anthropic/、openai/、google/或models/等服务商前缀(Anthropic/Claude-Sonnet-4-5变为claude-sonnet-4-5); - 先查找同名模型,再查找把它列为 别名 的模型。
在使用量发生时刻有效的价格中,精确的模型名称优先于别名,你录入的价格优先于内置价格。若当时没有任何有效价格,该使用量即为未定价。
修改价格¶
价格从不原地编辑。修改价格就是从某个时刻起生效的新价格:
- 在列表中打开模型。
- 在 新价格生效于… 下,表单已填入当前价格。只改有变化的部分。
- 把 生效时间(UTC) 设为新价格生效的时刻,然后保存。
你之前为该模型录入的价格在该时刻结束,新价格从该时刻开始。两个时间段严丝合缝:变更时刻的使用量按新价格计价,前一瞬间的按旧价格。所有时间均为 UTC。
要为没有价格的模型添加价格,或覆盖某个内置价格,在列表页点击 添加价格,输入服务商和模型。
录入过去的时间段¶
服务商较晚才公布价格变更,或者你需要内置价格表日期之前的使用量价格时,可以录入过去的时间段:同时填写 失效时间(UTC)。过去的时间段不得与你为同一模型录入的其他价格重叠;先结束或停用那个价格。
重新计算过去的使用¶
AI 使用量在记录时按当时有效的价格计价,并保留该值:添加、结束或停用价格都不会改变已记录的使用量。当你刚录入的价格起始于过去,且其时间段内已有使用量记录,模型页面会显示 重新计算过去的使用,附条目数和时间范围。点击 重新计算这些条目,在后台重新计价。每个条目按其自身时刻计价,所以价格变更前后两侧的使用量分别按各自时间段的价格计算,而不是简单套用最新价格。价值发生变化的条目会生成新的修订版本,审计日志记录一条 ai_usage_costs_recomputed 事件,含变更前后的合计。
通过 API,管理员可以用 POST /api/v1/admin/ai-usage/recompute/ 重新计算任意范围,请求体形如
{"from": "2026-01-01T00:00:00Z", "to": "2026-06-01T00:00:00Z", "provider": "anthropic", "model": "claude-opus-4-6"}
(provider 和 model 可选;model 也会匹配其别名)。接口返回 202,带任务 id 和范围内的条目数。
其他货币¶
价格可以选用任何已启用的货币,例如以人民币计费的服务商用 CNY,合同价用 EUR 或 THB。使用量随后以该货币计价,报表再按汇率换算,与其他金额一样。
结束、停用或删除价格¶
在价格历史中某个时间段的 详情 下:
- 保存结束时间 设置或清除该时间段的结束时间。清除后时间段重新开放。
- 停用 使价格停止使用但不删除;启用 把它恢复。
- 删除 移除你录入的价格。内置价格不能删除(下次加载时会回来);请改为停用。
- 别名 和 备注(例如服务商公告的链接)随时可以编辑。
一旦有使用量按某个价格计价过,该价格就不能删除,其结束时间也不能移到该使用量之前。请改为停用。价格的金额和起始时间永远不能更改:请录入新价格。
通过 API¶
页面上的所有功能管理员都可以通过 /api/v1/admin/ai-model-prices/ 使用。价格是十进制字符串,如 "3.75",而不是 JSON 数字;时刻需要带时区偏移(2026-06-01T00:00:00Z)。
# Prices valid at an instant (given here in Asia/Bangkok time)
curl -H "Authorization: Bearer $TOKEN" \
"https://specivo.example.com/api/v1/admin/ai-model-prices/resolve/?model=claude-sonnet-4-5&at=2026-11-06T09:00:00%2B07:00"
# A new price from an instant: ends your previous price of the model there
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
https://specivo.example.com/api/v1/admin/ai-model-prices/ \
-d '{"provider": "anthropic", "model": "claude-sonnet-4-5", "currency": "USD",
"prices": {"input": "3", "output": "15", "cache_write_5m": "3.75",
"cache_write_1h": "6", "cache_read": "0.3"},
"effective_from": "2026-12-01T00:00:00Z"}'
resolve/ 返回 priced 及对应价格,或返回 unpriced。其他端点:GET /(列表与筛选)、GET /history/?provider=&model=、GET /providers/、GET、PATCH 和 DELETE /{id}/,以及加载内置价格表的 POST /seed/。
每次变更都会写入审计日志。
离线部署¶
内置价格表包含在镜像中,不会下载任何内容。按需手动录入或修正价格。