以编程方式使用文档

LangChain 支持三种使用 Hugging Face 嵌入模型的方式:

  • 本地推理 通过 HuggingFaceEmbeddings:下载模型并在进程内使用 Sentence Transformers.
  • 推理提供者和专用推理端点 通过 HuggingFaceEndpointEmbeddings:通过 Hugging Face 进行无服务器或专用托管推理。
  • 大规模自托管 通过 Text Embeddings Inference (TEI):Hugging Face 的生产级推理服务器,由 HuggingFaceEndpointEmbeddings.

这三种方法都使用相同的 Embeddings 接口,因此您可以从本地开始,逐步升级到托管或自托管部署,而无需更改应用程序的其余部分。

设置

pip install -qU langchain-huggingface

本地嵌入

通过以下方式在本地生成嵌入 sentence-transformers。首次运行时会下载模型权重。

from langchain_huggingface import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    encode_kwargs={"normalize_embeddings": True},
)

query_result = embeddings.embed_query("This is a test document.")
doc_result = embeddings.embed_documents(["This is a test document."])

请参阅专门的 Sentence Transformers 指南 for model selection, GPU configuration, and query/document prompts.

Hugging Face 推理端点和提供者

如果您更愿意在本地下载模型,可以通过以下方式访问嵌入模型 Hugging Face 推理提供者 或专用 推理端点。两者都在 Hugging Face 可扩展的无服务器基础设施上提供开源嵌入模型。

首先,从以下位置获取令牌 您的 Hugging Face 设置:

from getpass import getpass

os.environ["HUGGINGFACEHUB_API_TOKEN"] = getpass()

然后使用 HuggingFaceEndpointEmbeddings:

from langchain_huggingface import HuggingFaceEndpointEmbeddings

embeddings = HuggingFaceEndpointEmbeddings(
    model="sentence-transformers/all-mpnet-base-v2"
)

query_result = embeddings.embed_query("This is a test document.")

要通过特定的推理提供者路由(例如 hf-inference, sambanova, together),请传递 provider=:

embeddings = HuggingFaceEndpointEmbeddings(
    model="BAAI/bge-m3",
    provider="hf-inference",
)

提供者和及其支持的模型的完整列表在 推理提供者文档中.

使用 Text Embeddings Inference 自托管

要在您自己的基础设施上对 Sentence Transformers 模型进行生产级服务,请使用 Text Embeddings Inference (TEI)。TEI 处理批处理、GPU 加速,并暴露 OpenAI 兼容的 API。请参阅 TEI 集成指南 了解详细步骤。