# 默认路由规则

https://modelportal.ai/docs/default-routing?lang=zh

你没有设置任何偏好时，平台按下面的规则在同一模型的报价之间选择。规则里的几个数值是平台参数，运营可以在后台调整，这里写的是默认值。

## 1. 先筛出候选

请求用到的能力（工具、结构化输出、图片输入、流式等）和参数，报价必须都支持；上下文装不下、被熔断、已达声明限额、禁止服务你所在地区的报价都不参与。全部被排除时返回的错误见[常见错误](/docs/errors)。

## 2. 按价格排序

候选按比价价格从低到高排序，「降级」状态的报价一律排在「可用」报价之后。文本模型的比价价格 =（输入权重 × 输入单价 + 输出权重 × 输出单价）÷ 两项权重之和，权重全站统一。

## 3. 同档均分

以每档最低价为基准，价格与它相差不超过 1% 的报价归入同一档。同档之内按权重分流，默认权重让各供应商的份额相同：某供应商在这一档有 n 个报价时，每个报价的权重是 1/n。权重只能依据供应商声明的容量调整，或按违规处置结果设为 0，不参考抽成比例。调整过的权重在模型详情页的对比表里公开。

## 4. 会话亲和

连续的多轮请求落在同一个报价上，供应商侧的提示缓存更容易命中。

- 会话标识依次取请求头 `X-ModelPortal-Session`、Anthropic 请求体的 `metadata.user_id`；不使用 OpenAI 的 `user` 字段。
- 账户、密钥、模型、会话标识都相同的请求，5 分钟内优先使用上次承接的报价，每次命中重新计时。
- 只有那个报价仍然可用、没达限额、权重没被设为 0、比价价格不超过当前首选报价的 1.2 倍时才保留；否则按正常顺序选。
- 请求里传了 `order` 或 `sort` 时不做亲和。
- 没有会话标识的请求在同档报价之间随机分配。

```bash
curl https://modelportal.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-ModelPortal-Session: conversation-42" \
  -d '{"model": "MODEL_ID", "messages": [{"role": "user", "content": "你好"}]}'
```

## 5. 设置了 sort 时

`sort` 为 `price` 时严格按比价价格排序；为 `latency` 或 `throughput` 时按近 1 小时的首字延迟或吞吐排序。设了 `sort` 就不再按权重分流，指标样本不足的报价排在有数据的报价之后，彼此按价格排序。

## 优先级

`order` → 会话亲和 → `sort` 或默认价格排序 → 同档权重。鹰眼评级不参与默认路由。
