Scripts2026年5月7日·1 分钟阅读

LiteLLM Router — Smart Failover & Load Balancing in Python

LiteLLM Router routes LLM endpoints with retry, fallback, latency-based, weighted A/B. Pure Python — drop into any codebase, no separate proxy needed.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Stage only · 17/100Stage only
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Stage only
信任
信任等级:New
入口
Asset
通用 CLI 安装命令
npx tokrepo install fd0004e9-6d6b-4e72-b6b1-643c80dad027

简介

LiteLLM Router 是 LiteLLM Proxy 的 Python 原生版 —— 同样的路由逻辑(自动回退、负载均衡、A/B、按延迟路由),不用跑 proxy server。import Router 类、定义模型列表、调 .completion() 就行。适合 Python 应用想要 LiteLLM 韧性又不想跑独立 Docker proxy。需要 Python ≥3.8,同步和异步都支持。装机时间 2 分钟(pip install litellm + 20 行)。


Hello world

from litellm import Router

router = Router(model_list=[
    # 主路径
    {
        "model_name": "claude-fast",
        "litellm_params": {
            "model": "anthropic/claude-3-5-haiku-20241022",
            "api_key": os.environ["ANTHROPIC_API_KEY"],
            "rpm": 1000,
        },
    },
    # 回退
    {
        "model_name": "claude-fast",  # 同名 = 同一池子
        "litellm_params": {
            "model": "openai/gpt-4o-mini",
            "api_key": os.environ["OPENAI_API_KEY"],
            "rpm": 5000,
        },
    },
])

# Router 按负载 + 健康度挑一个
resp = router.completion(
    model="claude-fast",
    messages=[{"role": "user", "content": "Hello"}],
)

Anthropic 挂了或限速,router 静默回退到 GPT-4o-mini。调用方两种情况都拿到成功响应。

按延迟路由

router = Router(
    model_list=[...],
    routing_strategy="latency-based-routing",
    routing_strategy_args={"ttl": 25},  # 每 25 秒重评估
)

Router 每 TTL 秒 ping 一次每个端点,把新请求路由到最快的。p99 敏感的用户面应用关键。

A/B 测试

router = Router(model_list=[
    {
        "model_name": "experimental",
        "litellm_params": {"model": "openai/gpt-4o"},
        "model_info": {"weight": 0.1},  # 10% 流量
    },
    {
        "model_name": "experimental",
        "litellm_params": {"model": "anthropic/claude-3-5-sonnet-20241022"},
        "model_info": {"weight": 0.9},  # 90% 流量
    },
])

按响应里的 model_used 跟踪质量指标,决定哪个胜出。

异步

import asyncio

async def main():
    resp = await router.acompletion(
        model="claude-fast",
        messages=[{"role": "user", "content": "Hello"}],
    )

asyncio.run(main())

FAQ

Q: Router 和 Proxy 选哪个? A: Router 适合单 Python 应用(不用多一个容器)。Proxy 适合多团队 / 多语言(任何说 OpenAI 格式的客户端都能用)。路由逻辑一样,部署模型不同。很多团队生产用 Router、本地开发用 Proxy。

Q: Router 跟踪成本吗? A: 跟踪。响应里带 _response_ms_hidden_params 里的 cost。要持久化跟踪就把 Router 接到回调(Langfuse / Helicone / OTEL),一行配置。

Q: 能加自定义路由逻辑吗? A: 能 —— routing_strategy='custom' 然后传一个 callable。适合「带 PII 脱敏的请求永远走 Claude」或「按用户等级路由」这种规则。


🙏

来源与感谢

Built by BerriAI. Licensed under MIT.

BerriAI/litellm — ⭐ 17,000+

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产