以编程方式使用文档

> LiteLLM 是一个库,可通过单一统一接口简化对 Anthropic、Azure、Huggingface、Replicate 及众多其他 LLM 提供商的调用。

安装与设置

pip install langchain-litellm
uv add langchain-litellm

聊天模型

from langchain_litellm import ChatLiteLLM
from langchain_litellm import ChatLiteLLMRouter

请参阅 LiteLLM 聊天指南 以获取完整使用详情,包括流式输出、工具调用、结构化输出和 Vertex AI 接地。

嵌入

from langchain_litellm import LiteLLMEmbeddings
from langchain_litellm import LiteLLMEmbeddingsRouter

LiteLLMEmbeddings 使用单一一致的接口在 100 多家提供商中嵌入文本。所有配置都是显式的,无需环境变量。

from langchain_litellm import LiteLLMEmbeddings

embeddings = LiteLLMEmbeddings(
    model="openai/text-embedding-3-small",
    api_key="sk-...",
)

vectors = embeddings.embed_documents(["hello", "world"])
query_vector = embeddings.embed_query("hello")

通过更改来切换提供商 model。接口保持不变:

# Cohere
embeddings = LiteLLMEmbeddings(
    model="cohere/embed-english-v3.0",
    api_key="...",
    document_input_type="search_document",
    query_input_type="search_query",
)

# Azure OpenAI
embeddings = LiteLLMEmbeddings(
    model="azure/my-embedding-deployment",
    api_key="...",
    api_base="https://my-resource.openai.azure.com",
    api_version="2024-02-01",
)

# Bedrock
embeddings = LiteLLMEmbeddings(
    model="bedrock/amazon.titan-embed-text-v1",
)

如需在相同模型的多个部署之间进行负载均衡,请使用 LiteLLMEmbeddingsRouter:

from litellm import Router
from langchain_litellm import LiteLLMEmbeddingsRouter

router = Router(model_list=[
    {
        "model_name": "text-embedding-3-small",
        "litellm_params": {
            "model": "openai/text-embedding-3-small",
            "api_key": "sk-key1",
        },
    },
    {
        "model_name": "text-embedding-3-small",
        "litellm_params": {
            "model": "openai/text-embedding-3-small",
            "api_key": "sk-key2",
        },
    },
])

embeddings = LiteLLMEmbeddingsRouter(router=router)

文档加载器

from langchain_litellm import LiteLLMOCRLoader

LiteLLMOCRLoader 通过 LiteLLM 代理的 OCR 端点加载文档(例如 Azure Document Intelligence)。代理处理所有提供商特定的认证和配置。

from langchain_litellm import LiteLLMOCRLoader

loader = LiteLLMOCRLoader(
    proxy_base_url="http://localhost:4000",
    api_key="my-bearer-token",
    url_path="https://example.com/document.pdf",
    model="azure-document",
    mode="page",  # "page" = one Document per page; "single" = concatenate all pages
)
documents = loader.load()

还支持异步加载:

documents = await loader.aload()

API 参考

如需了解所有类和配置的详细文档,请参阅 langchain-litellm API 参考。

描述
ChatLiteLLMLiteLLM 的 LangChain 聊天模型包装器
ChatLiteLLMRouter基于路由器的聊天模型,用于负载均衡和故障转移
LiteLLMEmbeddings使用单一一致接口在 100 多家提供商中嵌入文本
LiteLLMEmbeddingsRouter基于路由器的嵌入,用于跨部署的负载均衡
LiteLLMOCRLoader通过 LiteLLM 代理的 OCR 端点的文档加载器