# LiteLLM 分类 Fallback：上下文超限与限流走不同候补，保留每次路由原因

已审计作者三类异常与候补路由；未运行LiteLLM Router或真实上游，提供可配置目标脚本而不伪造回退日志。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 把三种错误分开留样

E1上下文超限，E2限流，E3鉴权失败。错误类别来自真实异常类型或body，不能只看任意4xx就随便切模型。

## 2. 检查期望路由表

作者规则让超限走大上下文、限流走同级备用、鉴权停止修配置。audit.py不发送网络请求，只审计路由合同。

## 3. 配置LiteLLM两类fallback

按当前Router文档分别设置常规fallbacks与context_window_fallbacks，核对模型别名。不要把伪字段放入config后忽略未生效警告。

## 4. 用可控测试提供方触发错误

在隔离环境保存真实异常、路由尝试顺序和成功响应。禁止用自写JSON“已切换”冒充Router真实调用日志。

## 5. 核对上下文与采样兼容

备用模型必须能处理输入长度和业务要求；不能只因某个备用可用，就删除超长上下文或偷偷改变任务。

## 6. 检查重试与鉴权失败边界

限流重试按文档预算，鉴权错误要保留并修复；不要反复重试错误密钥或把回退成功掩盖配置问题。

## 7. 交付每次尝试的原因链

附请求ID、异常分类、模型序列与脱敏配置。当前包仅运行作者分类规则，没有实际Router或外部模型调用。

## 官方依据

- LiteLLM 官方文档或源码：https://docs.litellm.ai/docs/proxy/reliability
