- @[ChatLiteLLM]: 主要的 LangChain 聊天模型封装,用于 LiteLLM
- @[ChatLiteLLMRouter]: 一个
ChatLiteLLM封装,利用 LiteLLM 的路由功能实现负载均衡和回退
概览
集成细节
模型特性
安装配置
要访问ChatLiteLLM 和 ChatLiteLLMRouter 模型,需要安装 langchain-litellm 包,并创建 OpenAI、Anthropic、Azure、Replicate、OpenRouter、Hugging Face、Together AI 或 Cohere 账户。然后获取 API 密钥并导出为环境变量。
凭据
您需要选择想要的大语言模型(LLM)供应商并注册以获取其API密钥。示例 - Anthropic
前往 Claude控制台 进行注册并生成Claude API密钥。完成此操作后设置ANTHROPIC_API_KEY 环境变量:
示例 - OpenAI
访问 platform.openai.com/api-keys 注册OpenAI并生成API密钥。完成此操作后设置 OPENAI_API_KEY 环境变量。安装
LangChain LiteLLM集成可在langchain-litellm 包中找到:
实例化
ChatLiteLLM
您可以通过提供 由 LiteLLM 支持的model 名称来实例化 ChatLiteLLM 模型。
ChatLiteLLM路由
您还可以利用LiteLLM的路由功能,通过在 LiteLLM路由文档 中定义模型列表来实现路由配置。调用
无论您实例化了ChatLiteLLM还是ChatLiteLLMRouter,现在都可以通过LangChain的API使用ChatModel。
异步和流式输出功能
ChatLiteLLM 和 ChatLiteLLMRouter 也支持异步和流式输出功能:
高级功能
Gemini企业智能体平台基础(Google搜索)
使用Google搜索基础与Gemini企业智能体平台模型(例如gemini-3.6-flash)结合。接地元数据会在response_metadata中返回,适用于批量和流式调用。
从
response_metadata读取流式接地元数据需要langchain-litellm>=0.11.0。在调用ChatLiteLLM之前,它会将元数据返回到additional_kwargs,而ChatLiteLLMRouter在流式调用时不会返回元数据。响应API
use_responses_api 需要 langchain-litellm>=0.10.0。use_responses_api=True 设置为向服务提供商的 响应API 发送 ChatLiteLLM 调用,而不是 Chat Completions。LiteLLM 会将每个请求和响应进行翻译,因此消息、工具、流式输出和结构化输出均可正常工作。OpenAI 的内置工具(如网页搜索)需要此路径:
- LiteLLM 无法发送到响应API 的模型会在发出任何请求前抛出
ValueError。 - 此路径下 LiteLLM 会丢弃仅支持 Chat Completions 的参数,例如
stop、n和seed。 - 当
use_responses_api设置为None(默认值)或False时,LiteLLM 会选择 API 自身,它已将某些模型(如gpt-5-pro)发送到响应API。
理性化项目
保持理性化项目需要
langchain-litellm>=0.11.0。"store": False 返回该内容。OpenAI 也接受对内容显式指定 include:
additional_kwargs["reasoning_items"] 中,仅保留携带加密内容的那些。模型未进行推理的回合不会包含项目。每个保存的项目携带一个 origin 键,用于标识该请求,因此在存储对话时需保留此键。
后续请求在满足以下条件时会发送回合的项目:
- 该回合仅包含一个项目
- 请求配置与生成该项目的请求具有相同的模型、基础URL 和凭据
- 请求不匹配(例如通过回退、LiteLLM 响应缓存或
litellm.use_litellm_proxy)时,既不发送也不保留项目
invalid_encrypted_content 错误。匹配仅覆盖 ChatLiteLLM 能读取的设置,因此项目仍可能通过 LiteLLM 代理等路由到其他账户,或通过 LiteLLM 自动获取的凭据(如 OpenAI 工作负载身份)传递给其他账户。
以下回合不会返回项目:
- LiteLLM 自动向响应API 发送的调用(未使用
use_responses_api或responses/模型名称,例如gpt-5-pro),其回复不会保留项目。 - 流式回合包含多个项目。当 LiteLLM 不流式回复时,仅保留回合文本前的最后一个项目,以及工具调用前的最后一个项目,因此使用
invoke读取相同回合时可发送项目。
ChatLiteLLMRouter 下,项目仅当未设置回退且部署组中所有实例共享同一模型、基础URL、凭据、工具和理性化设置时才会返回。将部署命名为 <provider>/responses/<model>(参考 路由部署)。LiteLLM 自动向响应API 发送的调用(例如 openai/gpt-5-pro)无论是否使用 use_responses_api,都不会保留项目。
路由部署
Router 在每次调用时选择一个部署,因此不存在可供use_responses_api 统一改写的单一模型名称。将每个部署的模型命名为 <provider>/responses/<model>,即可将其发送到 Responses API:
langchain-litellm 0.11.0 开始,ChatLiteLLMRouter 上的 use_responses_api=True 会检查各部署,而不是对它们进行改写。当 LiteLLM 将被调用组中的每个部署都发送到 Responses API 时,调用会原样发出;否则会在发出请求之前抛出 ValueError,并列出每个未走该路径的部署。若调用可能触达该组之外的部署(例如通过回退或 model_group_alias),同样会抛出错误。早期版本对 ChatLiteLLMRouter 上的该标志直接抛出 ValueError。
API 参考
有关ChatLiteLLM 和 ChatLiteLLMRouter 所有功能与配置的详细文档,请参阅 @[langchain-litellm] API 参考。
官方原文:src/oss/python/integrations/chat/litellm.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。