LiteLLM 配置使用教程
LiteLLM 配置使用教程
本教程将引导您完成 LiteLLM 的基本配置和使用,并深入解读其高级功能。
一、 运行效果展示
配置完成后,您可以将不同的大语言模型统一到一个 API 端点下进行调用。
运行状态截图:
实际调用效果:
二、 快速搭建过程
1. 核心配置文件 (config.yaml) 解读
以下是一个基础的 LiteLLM 配置文件示例,它定义了模型列表、下游密钥和路由设置。
1 | # config.yaml |
2. model_list 配置详解
model_list 是配置文件的核心,用于定义您要代理的所有上游模型。
1 | - model_name: doubao-coding # 自定义下游调用的模型名称 |
提示: 如果您想添加多个上游模型,只需复制并粘贴以上代码块,并修改相应的参数即可。请务必保持正确的 YAML 缩进。
3. general_settings 配置详解
general_settings 用于配置 Proxy 的通用规则,例如身份验证和日志记录。
1 | general_settings: |
4. 其他常用配置项
路由设置 (router_settings)
1 | router_settings: |
速率限制 (rate_limits)
您可以为特定的模型设置请求频率限制。
1 | rate_limits: |
三、 高级功能:官方文档深度解读
基于以上配置,LiteLLM 已经可以满足个人中转使用的基本需求。如果您希望探索更多企业级功能,可以参考 LiteLLM 官方文档。以下内容来自 Gemini-2.5-Pro 对官方文档的模块化解读。
文档结构总览
LiteLLM 的配置主要通过 YAML 文件或环境变量进行,其核心模块分为以下几部分:
model_list: 模型定义。核心部分,定义所有要代理的大语言模型。litellm_settings: LiteLLM 自身行为设置。控制日志、回调、网络、缓存和故障转移等核心功能。general_settings: Proxy/服务器通用设置。负责用户管理、数据库、安全和计费等服务器级别的功能。router_settings: 高级路由设置。负责在多个模型部署之间进行智能路由、负载均衡和故障恢复。environment_variables: 环境变量。许多配置也支持通过环境变量设置,方便在 Docker 等容器化环境中使用。
模块化功能详解
模块一:模型定义 (model_list)
这是基础配置,每个模型定义包含:
model_name: 您给模型起的“别名”,供客户端调用。litellm_params: 连接到真实模型所需的信息(model,api_key,api_base等)。model_info(可选): 为模型提供元数据。id: 模型的唯一标识符。mode: 模型类型,例如embedding(用于生成向量)。input_cost_per_token/output_cost_per_token: 定义输入/输出 Token 的成本,用于计费和预算控制。max_tokens: 模型支持的最大上下文长度。base_model: 模型的基础模型(例如gpt-4)。
解读:model_info 的加入让 LiteLLM 不仅能代理模型,还能对模型的成本和能力进行管理。
模块二:可靠性与故障恢复 (litellm_settings & router_settings)
这是 LiteLLM 作为企业级网关的核心价值,确保服务稳定。
default_fallbacks: 默认备用模型。当一个模型请求失败时,自动切换到此列表中的备用模型。context_window_fallbacks: 上下文超长备用。当请求因上下文超长而失败时,自动切换到上下文更长的模型。content_policy_fallbacks: 内容安全备用。当请求因内容审查失败时,切换到审查策略不同的模型。cooldown_time/allowed_fails: 熔断机制。如果一个模型在短时间内连续失败多次 (allowed_fails),则将其“冷却” (cooldown_time),暂时停止向其发送请求。num_retries/retry_policy: 自动重试。可以针对不同类型的错误(如认证失败、超时)设置不同的重试策略。
解读:这一整套机制(备用、熔断、重试)极大地提高了服务的健壮性,使 LiteLLM 能自动处理各种异常。
模块三:可观测性 (Logging & Callbacks) (litellm_settings)
让您清楚地了解系统内部的运行状况。
success_callback/failure_callback: 成功/失败回调。当请求成功或失败时,将日志和元数据发送到指定的第三方服务,如Langfuse,OpenTelemetry (OTel),Sentry,Datadog等。json_logs: 将日志输出为 JSON 格式,方便机器解析和收集。set_verbose: 开启详细调试日志,用于深度问题排查(不建议在生产环境开启)。turn_off_message_logging: 出于隐私或合规考虑,关闭对请求体(Prompt 和 Response)的记录,只记录元数据。
解读:LiteLLM 不仅是转发工具,还能深度集成到您现有的监控体系中,实现企业级的日志、追踪和监控。
模块四:性能优化 (Caching) (litellm_settings)
减少重复请求,降低成本和延迟。
cache: true: 开启缓存功能。cache_params: 配置缓存后端。type: redis: 使用 Redis 作为缓存数据库,是生产环境的常见选择。qdrant_semantic_cache_embedding_model: 语义缓存。这是一个高级功能,它不仅缓存完全相同的请求,还能通过向量相似度判断“语义上相似”的请求,并直接返回缓存结果。ttl: 缓存的存活时间 (Time To Live)。
解读:缓存是节省成本和提升响应速度的利器。特别是语义缓存,能极大地提升常见问题的响应效率。
模块五:用户与安全管理 (general_settings)
负责管理谁能用、怎么用。
master_key: 代理的超级管理员密钥。database_url: 连接数据库的 URL。这是实现虚拟密钥、用户预算、消费记录等功能的基础。配置数据库后,LiteLLM 就从一个简单的代理变成了功能完善的模型管理平台。disable_spend_logs: 关闭消费记录,如果您不关心计费。enable_jwt_auth: 支持使用 JWT (JSON Web Tokens) 进行认证,方便与现有用户系统集成。key_management_system: 集成专业的密钥管理服务(如google_kms或azure_kms),进一步提升安全性。
解读:这部分配置让 LiteLLM 具备了多租户管理能力。您可以为不同用户或团队生成虚拟 API Key,并对他们的消费和权限进行精细化管理。
模块六:高级路由策略 (router_settings)
当您为同一个模型配置了多个部署时(例如,一个 OpenAI 的 gpt-4 和一个 Azure 的 gpt-4),此功能非常有用。
routing_strategy: 定义路由策略。simple-shuffle: 随机选择一个部署。least-busy: 选择最空闲的(根据当前的 TPM/RPM)。latency-based-routing: 选择延迟最低的。usage-based-routing-v2: 基于使用情况的路由(优先选择成本最低或限额剩余最多的)。
解读:高级路由策略实现了智能负载均衡和成本优化。LiteLLM 可以动态地将请求发送到当前最健康、最快或最便宜的模型部署上。
- 标题: LiteLLM 配置使用教程
- 作者: ZKY
- 创建于 : 2025-11-16 16:00:00
- 更新于 : 2025-11-16 15:58:51
- 链接: https://blog.zky-dw.top/LiteLLM 配置使用教程/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。