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