Skip to main content
LiteLLM 是一个简化调用 Anthropic、Azure、Huggingface、Replicate 等服务的库。 本笔记本介绍如何开始使用 LangChain + LiteLLM I/O 库。 此集成包含两个主要类:
  • ChatLiteLLM:用于 LiteLLM 基本使用的主要 LangChain 包装器(文档)。
  • ChatLiteLLMRouter:一个利用 LiteLLM 路由器的 ChatLiteLLM 包装器(文档)。

概述

集成详情

可序列化JS 支持下载量版本
ChatLiteLLMlangchain-litellmPyPI - DownloadsPyPI - Version
ChatLiteLLMRouterlangchain-litellmPyPI - DownloadsPyPI - Version

模型特性

工具调用结构化输出图像输入音频输入视频输入令牌级流式传输原生异步令牌用量对数概率

设置

要访问 ChatLiteLLMChatLiteLLMRouter 模型,您需要安装 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 环境变量。
## 设置环境变量
import os

os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

安装

LangChain LiteLLM 集成可通过 langchain-litellm 包获取:
pip install -qU langchain-litellm

实例化

ChatLiteLLM

您可以通过提供 LiteLLM 支持的 model 名称来实例化 ChatLiteLLM 模型。
from langchain_litellm import ChatLiteLLM

llm = ChatLiteLLM(model="gpt-4.1-nano", temperature=0.1)

ChatLiteLLMRouter

您还可以通过按照 LiteLLM 路由文档 中的说明定义模型列表,来利用 LiteLLM 的路由功能。
from langchain_litellm import ChatLiteLLMRouter
from litellm import Router

model_list = [
    {
        "model_name": "gpt-4.1",
        "litellm_params": {
            "model": "azure/gpt-4.1",
            "api_key": "<your-api-key>",
            "api_version": "2024-10-21",
            "api_base": "https://<your-endpoint>.openai.azure.com/",
        },
    },
    {
        "model_name": "gpt-4.1",
        "litellm_params": {
            "model": "azure/gpt-4.1",
            "api_key": "<your-api-key>",
            "api_version": "2024-10-21",
            "api_base": "https://<your-endpoint>.openai.azure.com/",
        },
    },
]
litellm_router = Router(model_list=model_list)
llm = ChatLiteLLMRouter(router=litellm_router, model_name="gpt-4.1", temperature=0.1)

调用

无论您实例化的是 ChatLiteLLM 还是 ChatLiteLLMRouter,现在都可以通过 LangChain 的 API 使用该聊天模型。
response = await llm.ainvoke(
    "将文本分类为中性、负面或正面。文本:我觉得食物还可以。情感:"
)
print(response)
content='Neutral' additional_kwargs={} response_metadata={'token_usage': Usage(completion_tokens=2, prompt_tokens=30, total_tokens=32, completion_tokens_details=CompletionTokensDetailsWrapper(accepted_prediction_tokens=0, audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0, text_tokens=None), prompt_tokens_details=PromptTokensDetailsWrapper(audio_tokens=0, cached_tokens=0, text_tokens=None, image_tokens=None)), 'model': 'gpt-3.5-turbo', 'finish_reason': 'stop', 'model_name': 'gpt-3.5-turbo'} id='run-ab6a3b21-eae8-4c27-acb2-add65a38221a-0' usage_metadata={'input_tokens': 30, 'output_tokens': 2, 'total_tokens': 32}

异步与流式功能

ChatLiteLLMChatLiteLLMRouter 还支持异步和流式功能:
async for token in llm.astream("你好,请解释抗生素的工作原理"):
    print(token.text(), end="")
抗生素是用于对抗体内细菌感染的药物。它们通过针对特定细菌,要么杀死它们,要么阻止它们的生长和繁殖来发挥作用。

抗生素通过几种不同的机制发挥作用。有些抗生素通过破坏细菌的细胞壁,导致细菌破裂死亡。其他抗生素干扰细菌的蛋白质合成,阻止它们生长和繁殖。还有一些抗生素针对细菌的 DNA 或 RNA,破坏其复制能力。

需要注意的是,抗生素仅对细菌感染有效,对病毒感染无效。同样重要的是,按照医疗专业人员的处方服用抗生素,并完成整个疗程,即使症状在药物用完之前有所改善。这有助于防止抗生素耐药性,即细菌对抗生素的作用产生抵抗力。

API 参考

有关 ChatLiteLLMChatLiteLLMRouter 所有功能和配置的详细文档,请访问 API 参考