Appearance
价格更新
Capkii 的模型价格统一存放在价格表中,由管理员在 运营 --> 模型价格 页面维护。系统首次启动时会用内置的默认价格表初始化,之后可选择手动维护,或从价格服务批量同步。
手动维护
在 运营 --> 模型价格 页面可以直接新增、编辑、批量修改和删除模型价格。每条价格包含以下字段:
- 模型名称:需要与请求中的
model一致,支持以*结尾的前缀匹配(例如gpt-4o*)。 - 计费类型:
tokens按 token 计费,times按次计费。 - 模型归属:即
channel_type,决定模型在「可用模型」页面归属到哪个供应商。归属列表在运营 --> 模型归属维护,价格里的归属 ID 必须与归属列表中的 ID 一致,否则页面无法按供应商正确分组。 - 输入 / 输出倍率:相对基础额度的倍率。按次计费时两者填相同值。
- 锁定:勾选后,批量同步的「覆盖」模式不会修改该条价格,适合用于保护人工核定过的模型。
- 额外倍率:缓存读写、音频等特殊 token 的倍率。
- 长上下文分档:输入 token 超过阈值后,整次请求套用另一组输入/输出倍率。
从价格服务批量同步
点击页面上的 更新价格,填入一个返回价格表 JSON 的地址,拉取后会先列出「新增模型」与「价格变化」的对比,确认无误再选择同步方式:
- 仅新增:只写入系统中不存在的模型,已有价格不动。
- 覆盖:删除并重建全部未锁定的价格,使其与价格表完全一致。
- 仅更新:只更新系统中已存在的模型,不新增。
建议
生产环境建议先用「仅新增」,变更部分逐条人工核对后再改动,避免一次覆盖打乱已经调好的倍率。
同一个弹窗里还提供了直接从模型目录拉取直连渠道(OpenAI / Anthropic / Gemini 等)真实价格并换算为倍率的按钮,拉取结果同样进入上面的对比预览,不会覆盖已锁定的价格。
价格表 JSON 格式
价格服务需要返回一个价格对象数组,或者一个带 data 字段的对象(两种都能解析):
json
[
{
"model": "gpt-4o",
"type": "tokens",
"channel_type": 1,
"input": 1.25,
"output": 5,
"locked": false,
"extra_ratios": {
"cached_read": 0.1,
"cached_write": 1.25
},
"long_context": {
"threshold": 272000,
"input_ratio": 2,
"output_ratio": 1.5
}
},
{
"model": "mj_imagine",
"type": "times",
"channel_type": 34,
"input": 50,
"output": 50
}
]带 data 包装时:
json
{
"data": [{ "model": "gpt-4o", "type": "tokens", "channel_type": 1, "input": 1.25, "output": 5 }]
}字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 模型名称,必填,可用 * 结尾做前缀匹配 |
type | string | 计费类型,tokens 或 times,必填 |
channel_type | int | 模型归属 ID,需与 运营 --> 模型归属 中的 ID 对应 |
input | float | 输入倍率,按次计费时即单次倍率 |
output | float | 输出倍率,按次计费时与 input 填相同值 |
locked | bool | 是否锁定,锁定的价格不会被覆盖模式修改 |
extra_ratios | object | 额外倍率,键为倍率名(如 cached_read、cached_write),值为倍率 |
long_context | object | 长上下文分档,含 threshold、input_ratio、output_ratio;threshold 为 0 视为未启用 |
指向自建价格服务
如需使用自行维护的价格表,可通过环境变量 UPDATE_PRICE_SERVICE 指定默认地址,价格页的更新弹窗会自动填入该地址:
bash
UPDATE_PRICE_SERVICE=https://prices.your-domain.com/prices.json配合下面几个环境变量还可以让程序在启动后周期性自动同步:
AUTO_PRICE_UPDATES:是否开启自动更新。AUTO_PRICE_UPDATES_MODE:自动更新模式,add/overwrite/update/system,默认system(只用程序内置价格表初始化,不访问价格服务)。AUTO_PRICE_UPDATES_INTERVAL:自动更新周期,单位分钟。
各变量的完整说明见环境变量。
注意
自动更新会在无人确认的情况下改写价格表。若倍率为人工核定,建议保持 AUTO_PRICE_UPDATES_MODE=system,并对重要模型勾选「锁定」,仅在价格页手动拉取、逐条核对后再同步。