跳至主要内容

A/B 测试 - 流量镜像

流量镜像允许您将生产流量“模仿”到辅助(静默)模型进行评估目的。静默模型的响应在后台收集,不会影响主请求的延迟或结果。

此功能适用于:

  • 在切换模型前,测试新模型在生产环境提示词下的表现。
  • 比较不同提供商之间的成本和延迟。
  • 通过将流量镜像到更详细(verbose)的模型来调试问题。

快速入门

要启用流量镜像,请在部署的 litellm_params 中添加 silent_model

from litellm import Router

model_list = [
{
"model_name": "gpt-3.5-turbo",
"litellm_params": {
"model": "azure/chatgpt-v-2",
"api_key": "...",
"silent_model": "gpt-4" # 👈 Mirror traffic to gpt-4
},
},
{
"model_name": "gpt-4",
"litellm_params": {
"model": "openai/gpt-4",
"api_key": "..."
},
}
]

router = Router(model_list=model_list)

# The request to "gpt-3.5-turbo" will trigger a background call to "gpt-4"
response = await router.acompletion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "How does traffic mirroring work?"}]
)

工作原理

  1. 收到请求:向模型组(例如 primary-model)发送请求。
  2. 选择部署:LiteLLM 从该组中选择一个部署。
  3. 主调用:LiteLLM 向主要部署发起调用。
  4. 镜像:如果存在 silent_model,LiteLLM 会触发对该模型的后台调用。
    • 对于 同步 (Sync) 调用:使用共享线程池。
    • 对于 异步 (Async) 调用:使用 asyncio.create_task
  5. 隔离性:后台调用使用原始请求参数的 deepcopy,并将 metadata["is_silent_experiment"] = True。它还会剔除日志 ID,以防止使用统计时的冲突。

主要特性

  • 延迟隔离:主要请求在准备好后立即返回。后台(静默)调用不会造成阻塞。
  • 统一日志记录:后台调用通过 Router 进行处理,这意味着它们会自动记录到您配置的可观测性工具(Langfuse、S3 等)中。
  • 评估:在日志中使用 is_silent_experiment: True 标志来过滤并比较主要调用与镜像调用之间的结果。
🚅
LiteLLM 企业版
SSO/SAML、审计日志、支出跟踪、多团队管理和护栏 —— 专为生产环境构建。
了解更多 →