模型与端点
供应商连接保存地址与认证;部署关联连接,定义公开模型、上游型号、执行协议、价格和端点能力。先保存供应商,再创建部署。同一公开模型可以包含多条部署,路由选择的实际目标是一条部署。

页面字段对应代码
| 字段 | 用途 |
|---|---|
| model_name | 客户请求、权限与选路使用的模型名 |
| litellm_params.model | 上游实际型号 |
| litellm_credential_name | 保存的供应商连接 |
| deployment_id | 稳定部署标识,供权重引用、会话粘性与响应归属使用;地址或定价修改不改变它 |
| model_info.transport | 必须已注册的执行器 |
| endpoint_types | 标准入口按能力生成;Bypass/Fal 显式启用 |
价格不决定协议。未知或缺失 transport 拒绝保存。/public/endpoints 是注册目录;/model/available 是当前身份真正可调用的模型端点。端点是请求入口和执行能力标识,与供应商地址分别管理。
权重、回退与会话目标
模型管理保存同一公开模型各部署的默认相对权重及三类有序回退;路由模板在身份范围内覆盖这些规则。权重属于部署,回退属于公开模型或组;端点能力决定部署是否能执行本次请求,不能靠权重或粘性补足协议能力。
| 配置 | 生效规则 |
|---|---|
| 模型默认权重 | traffic-split 普通模型无显式分配时使用 |
| 模板模型 allocations | 覆盖该模型默认;省略继承默认,显式 [] 等权,未列出部署权重为 1 |
| 组分配 | 组请求及继承组策略的成员请求使用;缺省等权,不叠加成员默认权重 |
| 模型默认回退 | 按通用、上下文、内容策略保存有序目标;模板按源和类别覆盖 |
| 端点能力 | 每次请求及回退都检查;只有当前入口可执行的部署才进入候选池 |
精确模型规则优先于组策略;成员名请求始终只展开自身部署。完整模板选择、空值及回退执行规则分别见路由模板和路由组与回退。
动态会话偏好优先保持同一供应商连接和上游部署,因为 prompt 缓存通常与这些执行身份及请求前缀有关。合法偏好优先于权重、成本、延迟和负载;新会话或没有合法偏好时,按“模型默认配置 → 当前模板的模型规则与路由组”选择。上游实际缓存命中仍由供应商缓存机制决定。
会话缓存按调用方、会话 ID、请求模型/组和端点隔离,复用稳定 deployment_id。每轮从当前部署目录恢复地址、凭据和执行协议,再检查启用、能力、冷却及当前分配。traffic-split 权重归零使偏好失效;正权重改变影响无合法偏好时的选择及其余候选排序。
可重放的临时失败先在原部署按 retry_policy.max_attempts 重试,保留供应商和缓存复用机会;次数包含首次,例如 3 表示首次加两次重试。耗尽后才尝试其他合法部署,池耗尽再进入通用回退;上下文和内容策略错误可直接进入各自专用链。
跨模型回退成功后,原请求模型/组范围保存实际目标及回退路径,下一轮只在当前模板仍允许该路径时复用。发送前重新检查目标权限和预算,拒绝不能靠切换绕过。父响应续接保存响应创建时的固定归属,不随普通会话偏好变化。
同一明确会话切换模型或端点后,在对应范围重新选路,日志仍归同组。请求日志中的模型保留客户端请求别名,实际执行部署、供应商和上游型号分别记录。prompt 用于识别会话,部署选择由路由和能力目录决定。
路由模板 · 路由组与回退 · 会话保持与供应商粘性
发现、续接与回退
- 模型发现只在 404 后尝试另一个 /models 或 /v1/models 路径,两次共用 20 秒;其他错误和成功空列表不回退,不修改推理地址。
- 标准 Responses 用
previous_response_id续接,归属和临时历史按调用方、请求模型及端点隔离,保留一小时;instructions不继承。未知、过期或不可读取的父响应拒绝续接;已知归属的原部署不可用返回 409continuation_unavailable。无 Redis 时不跨进程,不提供长期原厂响应存储。 - 回退重新检查目标权限和预算;已输出的流、固定部署续接和结果不确定的异步创建不跨模型重放。
源码与验证
部署校验 · 新增 provider 代码 · 回退配置
go test ./internal/provider/... ./internal/dataplane/... -count=1