Features

模型变体

在模型 ID 后追加 :cost、:latency 或 :throughput,即可内联选择 BitRouter 如何对供应商排序——逐请求、无需任何请求体字段。

当一个模型由多个供应商承载时,BitRouter 必须为每个请求挑选发往哪个上游。模型变体让你内联做出这个选择:在模型 ID 后追加一个 :<profile> 后缀,BitRouter 就会按你指定的维度对供应商排序。

后缀本身就是 model 字符串的一部分,因此既不需要请求体字段、也不需要 SDK——在 OpenAI、Anthropic、Google 三套接口上行为一致。

三种 profile

模型 ID供应商排序依据
openai/gpt-4o均衡(默认)——成本、延迟、吞吐的加权综合。
openai/gpt-4o:cost最便宜优先。
openai/gpt-4o:latency最低 p50 首 token 时延。
openai/gpt-4o:throughput最高输出 tokens/秒。

这三个维度与 供应商选择 中描述的完全一致,只是以内联简写的形式暴露。不带后缀的模型 ID 等价于 :balanced

快速示例

curl http://127.0.0.1:4356/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-4.6:cost",
    "messages": [{"role": "user", "content": "把 Hello 翻译成法语。"}]
  }'

该后缀在 /v1/messages(Anthropic)和 /v1beta/models/{model}:generateContent(Google)上行为一致——它随模型 ID 一起传递。

行为

  • 不带后缀即均衡默认。 不加后缀等价于 :balanced,与你现在得到的路由逐字节一致。变体只会对已有候选供应商重新排序,绝不改变哪些供应商有资格。
  • 偏置是激进的。 一个 profile 会把所选维度的权重压得很高,另两个维度仅作平手裁决之用;因此 :cost 会挑出真正最便宜的供应商,而不是“稍微便宜一点”。需要综合评分时,请用 :balanced(或不加后缀)。
  • 未知后缀不是 profile。 只有 costlatencythroughputbalanced 会被识别为 profile。其他任何写法——比如 openai/gpt-4o:fast——都会被当作模型 ID 的一部分,从而以普通的“未知模型” 404 失败,而非被静默改路由。(这与把 openai:gpt-4o 这类 provider:model ID 原样保留是同一条规则。)另一个被识别的后缀 :discount 会路由到 BitRouter 的自托管折扣供应商——并非路由 profile——并被单独处理。
  • 仅在 ≥2 个供应商时才有意义。 只由单一供应商承载的模型,加不加后缀路由结果都一样。

成本从第一天起就精确,延迟与吞吐需要预热。 :cost 按上游当前定价计算,因此立即生效。:latency:throughput 读取最近 1 小时的滑动遥测窗口——在冷启动或低流量的模型上,会先贴近均衡评分,直到样本累积足够。

:discount 后缀

除了上面的排序 profile,BitRouter 还接受一个 :discount 后缀,把请求路由到 BitRouter 的自托管供应商——开放模型在那里以低于官方的价格提供:

moonshotai/kimi-k2.6:discount     # 路由到自托管折扣供应商

由于它固定供应商、而非对候选供应商重新排序,:discount 不是路由 profile,也不与 :cost / :latency / :throughput 有意义地组合。开放模型即使不加该后缀也默认立享 25% 折扣;该后缀会强制使用折扣的自托管供应来源,账户上的定制折扣也在此生效。完整行为见折扣模型——包括面向开源项目的最高 50% 定制折扣。

变体绝不改变鉴权

profile 只影响供应商的排序。其余一切都以底层模型 ID 为准:

  • Guardrail 的模型白名单/黑名单与 BYOK 规则,会把 anthropic/claude-sonnet-4.6:cost 完全当作 anthropic/claude-sonnet-4.6 来判定——profile 永远无法放宽或绕过策略。
  • BYOK 供应商仍然排在平台供应商之前;profile 只在每个层级内部排序。
  • 计费不变——你按所选供应商对底层模型的费率付费。

查看某次请求用了哪个 profile

所选 profile 会记录在每次请求上,并在用量历史中返回。GET /v1/namespaces/{nsid}/requests 的每一行都带有 routing_profile 字段(balanced / cost / latency / throughput),便于你审计各策略各自占了多少流量。

provider.sort 的关系

目前选择路由 profile 的受支持方式就是模型 ID 后缀。请求体形式的等价物 provider.sort供应商选择 中有描述,但尚未启用;在它上线之前,请使用后缀。

How is this guide?

On this page