跳至主要内容

A/B 测试 - 流量镜像

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

此功能适用于:

  • 在切换模型之前,测试新模型在生产环境提示词(prompts)上的表现。
  • 比较不同服务商之间的成本和延迟。
  • 通过将流量镜像到更详细(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、审计日志、支出跟踪、多团队管理和护栏 —— 专为生产环境构建。
了解更多 →