> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 嵌入模型集成

> 使用 LangChain Python 集成嵌入模型。

## 概述

<Note>
  本概述涵盖**基于文本的嵌入模型**。LangChain 目前不支持多模态嵌入。

  请参阅[顶级嵌入模型](#top-integrations)。
</Note>

嵌入模型将原始文本（如句子、段落或推文）转换为固定长度的数字向量，该向量捕获其**语义含义**。这些向量允许机器基于含义而非精确词语来比较和搜索文本。

在实践中，这意味着具有相似想法的文本在向量空间中会被放置在相近的位置。例如，嵌入模型不仅能匹配短语\*"机器学习"\*，还能在使用不同措辞时，找出讨论相关概念的文档。

### 工作原理

1. **向量化** — 模型将每个输入字符串编码为一个高维向量。
2. **相似度评分** — 使用数学度量比较向量，以衡量底层文本的关联程度。

### 相似度度量

有几种常用的度量方法用于比较嵌入：

* **余弦相似度** — 衡量两个向量之间的夹角。
* **欧几里得距离** — 衡量点之间的直线距离。
* **点积** — 衡量一个向量在另一个向量上的投影程度。

以下是计算两个向量之间余弦相似度的示例：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import numpy as np

def cosine_similarity(vec1, vec2):
    dot = np.dot(vec1, vec2)
    return dot / (np.linalg.norm(vec1) * np.linalg.norm(vec2))

similarity = cosine_similarity(query_embedding, document_embedding)
print("Cosine Similarity:", similarity)
```

## 接口

LangChain 通过 [Embeddings](https://reference.langchain.com/python/langchain-core/embeddings/embeddings/Embeddings) 接口为文本嵌入模型（例如 OpenAI、Cohere、Hugging Face）提供了标准接口。

提供两个主要方法：

* `embed_documents(texts: List[str]) → List[List[float]]`：嵌入文档列表。
* `embed_query(text: str) → List[float]`：嵌入单个查询。

<Note>
  该接口允许使用不同的策略嵌入查询和文档，尽管在实践中大多数提供者处理它们的方式相同。
</Note>

## 顶级集成

| 模型                                                                                         | 包                                                                                                                                                                |
| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`OpenAIEmbeddings`](/oss/python/integrations/embeddings/openai)                           | [`langchain-openai`](https://reference.langchain.com/python/langchain-openai)                                                                                    |
| [`AzureOpenAIEmbeddings`](/oss/python/integrations/embeddings/azure_openai)                | [`langchain-openai`](https://reference.langchain.com/python/langchain-openai/embeddings/azure/AzureOpenAIEmbeddings)                                             |
| [`GoogleGenerativeAIEmbeddings`](/oss/python/integrations/embeddings/google_generative_ai) | [`langchain-google-genai`](https://reference.langchain.com/python/langchain-google-genai/embeddings/GoogleGenerativeAIEmbeddings)                                |
| [`OllamaEmbeddings`](/oss/python/integrations/embeddings/ollama)                           | [`langchain-ollama`](https://reference.langchain.com/python/langchain-ollama/embeddings/OllamaEmbeddings)                                                        |
| [`TogetherEmbeddings`](/oss/python/integrations/embeddings/together)                       | [`langchain-together`](https://reference.langchain.com/python/langchain-together/embeddings/TogetherEmbeddings)                                                  |
| [`FireworksEmbeddings`](/oss/python/integrations/embeddings/fireworks)                     | [`langchain-fireworks`](https://reference.langchain.com/python/langchain-fireworks/embeddings/FireworksEmbeddings)                                               |
| [`MistralAIEmbeddings`](/oss/python/integrations/embeddings/mistralai)                     | [`langchain-mistralai`](https://reference.langchain.com/python/langchain-mistralai/embeddings/MistralAIEmbeddings)                                               |
| [`VoyageAIEmbeddings`](/oss/python/integrations/embeddings/voyageai)                       | `langchain-voyageai`                                                                                                                                             |
| [`CohereEmbeddings`](/oss/python/integrations/embeddings/cohere)                           | [`langchain-cohere`](https://reference.langchain.com/python/langchain-community/llms/cohere/Cohere)                                                              |
| [`NomicEmbeddings`](/oss/python/integrations/embeddings/nomic)                             | [`langchain-nomic`](https://reference.langchain.com/python/langchain-nomic/embeddings/NomicEmbeddings)                                                           |
| [`FakeEmbeddings`](/oss/python/integrations/embeddings/fake)                               | [`langchain-core`](https://reference.langchain.com/python/langchain-core/embeddings/fake/FakeEmbeddings)                                                         |
| [`DatabricksEmbeddings`](/oss/python/integrations/embeddings/databricks)                   | [`databricks-langchain`](https://api-docs.databricks.com/python/databricks-ai-bridge/latest/databricks_langchain.html#databricks_langchain.DatabricksEmbeddings) |
| [`WatsonxEmbeddings`](/oss/python/integrations/embeddings/ibm_watsonx)                     | [`langchain-ibm`](https://reference.langchain.com/python/langchain-ibm/embeddings/WatsonxEmbeddings)                                                             |
| [`NVIDIAEmbeddings`](/oss/python/integrations/embeddings/nvidia_ai_endpoints)              | [`langchain-nvidia`](https://reference.langchain.com/python/langchain-nvidia-ai-endpoints/embeddings/NVIDIAEmbeddings)                                           |
| [`AIMLAPIEmbeddings`](/oss/python/integrations/embeddings/aimlapi)                         | `langchain-aimlapi`                                                                                                                                              |
| [`PerplexityEmbeddings`](/oss/python/integrations/embeddings/perplexity)                   | [`langchain-perplexity`](https://reference.langchain.com/python/langchain-perplexity/embeddings/PerplexityEmbeddings)                                            |

## 缓存

嵌入可以被存储或临时缓存，以避免重新计算它们。

可以使用 `CacheBackedEmbeddings` 来缓存嵌入。这个包装器将嵌入存储在键值存储中，其中文本被哈希化，哈希值用作缓存中的键。

初始化 `CacheBackedEmbeddings` 的主要支持方式是 `from_bytes_store`。它接受以下参数：

* **`underlying_embedder`**：用于嵌入的嵌入器。
* **`document_embedding_cache`**：任何用于缓存文档嵌入的 [`ByteStore`](/oss/python/integrations/stores/)。
* **`batch_size`**：（可选，默认为 `None`）在存储更新之间嵌入的文档数量。
* **`namespace`**：（可选，默认为 `""`）用于文档缓存的命名空间。有助于避免冲突（例如，将其设置为嵌入模型名称）。
* **`query_embedding_cache`**：（可选，默认为 `None`）用于缓存查询嵌入的 [`ByteStore`](/oss/python/integrations/stores/)，或设置为 `True` 以复用与 `document_embedding_cache` 相同的存储。

<Important>
  - 始终设置 `namespace` 参数，以避免在使用不同嵌入模型时发生冲突。
  - `CacheBackedEmbeddings` 默认不缓存查询嵌入。要启用此功能，请指定 `query_embedding_cache`。
</Important>

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import time
from langchain_classic.embeddings import CacheBackedEmbeddings  # [!code highlight]
from langchain_classic.storage import LocalFileStore # [!code highlight]
from langchain_core.vectorstores import InMemoryVectorStore

# 创建你的底层嵌入模型
underlying_embeddings = ... # 例如，OpenAIEmbeddings(), HuggingFaceEmbeddings() 等。

# 存储将嵌入持久化到本地文件系统
# 这不适用于生产环境，但对本地使用很有用
store = LocalFileStore("./cache/") # [!code highlight]

cached_embedder = CacheBackedEmbeddings.from_bytes_store(
    underlying_embeddings,
    store,
    namespace=underlying_embeddings.model
)

# 示例：缓存查询嵌入
tic = time.time()
print(cached_embedder.embed_query("Hello, world!"))
print(f"首次调用耗时: {time.time() - tic:.2f} 秒")

# 后续调用使用缓存
tic = time.time()
print(cached_embedder.embed_query("Hello, world!"))
print(f"第二次调用耗时: {time.time() - tic:.2f} 秒")
```

在生产环境中，您通常会使用更健壮的持久化存储，例如数据库或云存储。请参阅[存储集成](/oss/python/integrations/stores/)了解选项。

## 所有嵌入模型

<Columns cols={3}>
  <Card title="Aleph Alpha" icon="link" href="/oss/python/integrations/embeddings/aleph_alpha" arrow="true" cta="查看指南" />

  <Card title="Anyscale" icon="link" href="/oss/python/integrations/embeddings/anyscale" arrow="true" cta="查看指南" />

  <Card title="Ascend" icon="link" href="/oss/python/integrations/embeddings/ascend" arrow="true" cta="查看指南" />

  <Card title="AI/ML API" icon="link" href="/oss/python/integrations/embeddings/aimlapi" arrow="true" cta="查看指南" />

  <Card title="AwaDB" icon="link" href="/oss/python/integrations/embeddings/awadb" arrow="true" cta="查看指南" />

  <Card title="AzureOpenAI" icon="link" href="/oss/python/integrations/embeddings/azure_openai" arrow="true" cta="查看指南" />

  <Card title="Baichuan 文本嵌入" icon="link" href="/oss/python/integrations/embeddings/baichuan" arrow="true" cta="查看指南" />

  <Card title="百度千帆" icon="link" href="/oss/python/integrations/embeddings/baidu_qianfan_endpoint" arrow="true" cta="查看指南" />

  <Card title="Baseten" icon="link" href="/oss/python/integrations/embeddings/baseten" arrow="true" cta="查看指南" />

  <Card title="Bedrock" icon="link" href="/oss/python/integrations/embeddings/bedrock" arrow="true" cta="查看指南" />

  <Card title="Hugging Face 上的 BGE" icon="link" href="/oss/python/integrations/embeddings/bge_huggingface" arrow="true" cta="查看指南" />

  <Card title="Bookend AI" icon="link" href="/oss/python/integrations/embeddings/bookend" arrow="true" cta="查看指南" />

  <Card title="Clarifai" icon="link" href="/oss/python/integrations/embeddings/clarifai" arrow="true" cta="查看指南" />

  <Card title="Cloudflare Workers AI" icon="link" href="/oss/python/integrations/embeddings/cloudflare_workersai" arrow="true" cta="查看指南" />

  <Card title="Clova 嵌入" icon="link" href="/oss/python/integrations/embeddings/clova" arrow="true" cta="查看指南" />

  <Card title="Cohere" icon="link" href="/oss/python/integrations/embeddings/cohere" arrow="true" cta="查看指南" />

  <Card title="DashScope" icon="link" href="/oss/python/integrations/embeddings/dashscope" arrow="true" cta="查看指南" />

  <Card title="Databricks" icon="link" href="/oss/python/integrations/embeddings/databricks" arrow="true" cta="查看指南" />

  <Card title="DeepInfra" icon="link" href="/oss/python/integrations/embeddings/deepinfra" arrow="true" cta="查看指南" />

  <Card title="EDEN AI" icon="link" href="/oss/python/integrations/embeddings/edenai" arrow="true" cta="查看指南" />

  <Card title="Elasticsearch" icon="link" href="/oss/python/integrations/embeddings/elasticsearch" arrow="true" cta="查看指南" />

  <Card title="Embaas" icon="link" href="/oss/python/integrations/embeddings/embaas" arrow="true" cta="查看指南" />

  <Card title="Fake 嵌入" icon="link" href="/oss/python/integrations/embeddings/fake" arrow="true" cta="查看指南" />

  <Card title="Qdrant 的 FastEmbed" icon="link" href="/oss/python/integrations/embeddings/fastembed" arrow="true" cta="查看指南" />

  <Card title="Fireworks" icon="link" href="/oss/python/integrations/embeddings/fireworks" arrow="true" cta="查看指南" />

  <Card title="Google Gemini" icon="link" href="/oss/python/integrations/embeddings/google_generative_ai" arrow="true" cta="查看指南" />

  <Card title="Google Vertex AI" icon="link" href="/oss/python/integrations/embeddings/google_vertex_ai" arrow="true" cta="查看指南" />

  <Card title="GPT4All" icon="link" href="/oss/python/integrations/embeddings/gpt4all" arrow="true" cta="查看指南" />

  <Card title="Gradient" icon="link" href="/oss/python/integrations/embeddings/gradient" arrow="true" cta="查看指南" />

  <Card title="GreenNode" icon="link" href="/oss/python/integrations/embeddings/greennode" arrow="true" cta="查看指南" />

  <Card title="Hugging Face" icon="link" href="/oss/python/integrations/embeddings/huggingfacehub" arrow="true" cta="查看指南" />

  <Card title="IBM watsonx.ai" icon="link" href="/oss/python/integrations/embeddings/ibm_watsonx" arrow="true" cta="查看指南" />

  <Card title="Infinity" icon="link" href="/oss/python/integrations/embeddings/infinity" arrow="true" cta="查看指南" />

  <Card title="Instruct 嵌入" icon="link" href="/oss/python/integrations/embeddings/instruct_embeddings" arrow="true" cta="查看指南" />

  <Card title="IPEX-LLM CPU" icon="link" href="/oss/python/integrations/embeddings/ipex_llm" arrow="true" cta="查看指南" />

  <Card title="IPEX-LLM GPU" icon="link" href="/oss/python/integrations/embeddings/ipex_llm_gpu" arrow="true" cta="查看指南" />

  <Card title="Isaacus" icon="link" href="/oss/python/integrations/embeddings/isaacus" arrow="true" cta="查看指南" />

  <Card title="Intel Extension for Transformers" icon="link" href="/oss/python/integrations/embeddings/itrex" arrow="true" cta="查看指南" />

  <Card title="Jina" icon="link" href="/oss/python/integrations/embeddings/jina" arrow="true" cta="查看指南" />

  <Card title="John Snow Labs" icon="link" href="/oss/python/integrations/embeddings/johnsnowlabs_embedding" arrow="true" cta="查看指南" />

  <Card title="LASER" icon="link" href="/oss/python/integrations/embeddings/laser" arrow="true" cta="查看指南" />

  <Card title="Lindorm" icon="link" href="/oss/python/integrations/embeddings/lindorm" arrow="true" cta="查看指南" />

  <Card title="Llama.cpp" icon="link" href="/oss/python/integrations/embeddings/llamacpp" arrow="true" cta="查看指南" />

  <Card title="LLMRails" icon="link" href="/oss/python/integrations/embeddings/llm_rails" arrow="true" cta="查看指南" />

  <Card title="LocalAI" icon="link" href="/oss/python/integrations/embeddings/localai" arrow="true" cta="查看指南" />

  <Card title="MiniMax" icon="link" href="/oss/python/integrations/embeddings/minimax" arrow="true" cta="查看指南" />

  <Card title="MistralAI" icon="link" href="/oss/python/integrations/embeddings/mistralai" arrow="true" cta="查看指南" />

  <Card title="Model2Vec" icon="link" href="/oss/python/integrations/embeddings/model2vec" arrow="true" cta="查看指南" />

  <Card title="ModelScope" icon="link" href="/oss/python/integrations/embeddings/modelscope_embedding" arrow="true" cta="查看指南" />

  <Card title="MosaicML" icon="link" href="/oss/python/integrations/embeddings/mosaicml" arrow="true" cta="查看指南" />

  <Card title="Naver" icon="link" href="/oss/python/integrations/embeddings/naver" arrow="true" cta="查看指南" />

  <Card title="Nebius" icon="link" href="/oss/python/integrations/embeddings/nebius" arrow="true" cta="查看指南" />

  <Card title="Netmind" icon="link" href="/oss/python/integrations/embeddings/netmind" arrow="true" cta="查看指南" />

  <Card title="NLP Cloud" icon="link" href="/oss/python/integrations/embeddings/nlp_cloud" arrow="true" cta="查看指南" />

  <Card title="Nomic" icon="link" href="/oss/python/integrations/embeddings/nomic" arrow="true" cta="查看指南" />

  <Card title="NVIDIA NIMs" icon="link" href="/oss/python/integrations/embeddings/nvidia_ai_endpoints" arrow="true" cta="查看指南" />

  <Card title="Oracle Cloud Infrastructure" icon="link" href="/oss/python/integrations/embeddings/oci_generative_ai" arrow="true" cta="查看指南" />

  <Card title="Ollama" icon="link" href="/oss/python/integrations/embeddings/ollama" arrow="true" cta="查看指南" />

  <Card title="OpenClip" icon="link" href="/oss/python/integrations/embeddings/open_clip" arrow="true" cta="查看指南" />

  <Card title="OpenAI" icon="link" href="/oss/python/integrations/embeddings/openai" arrow="true" cta="查看指南" />

  <Card title="OpenVINO" icon="link" href="/oss/python/integrations/embeddings/openvino" arrow="true" cta="查看指南" />

  <Card title="Optimum Intel" icon="link" href="/oss/python/integrations/embeddings/optimum_intel" arrow="true" cta="查看指南" />

  <Card title="Oracle AI Database" icon="link" href="/oss/python/integrations/embeddings/oracleai" arrow="true" cta="查看指南" />

  <Card title="OVHcloud" icon="link" href="/oss/python/integrations/embeddings/ovhcloud" arrow="true" cta="查看指南" />

  <Card title="Pinecone 嵌入" icon="link" href="/oss/python/integrations/embeddings/pinecone" arrow="true" cta="查看指南" />

  <Card title="PredictionGuard" icon="link" href="/oss/python/integrations/embeddings/predictionguard" arrow="true" cta="查看指南" />

  <Card title="Perplexity" icon="link" href="/oss/python/integrations/embeddings/perplexity" arrow="true" cta="查看指南" />

  <Card title="PremAI" icon="link" href="/oss/python/integrations/embeddings/premai" arrow="true" cta="查看指南" />

  <Card title="SageMaker" icon="link" href="/oss/python/integrations/embeddings/sagemaker-endpoint" arrow="true" cta="查看指南" />

  <Card title="SambaNova" icon="link" href="/oss/python/integrations/embeddings/sambanova" arrow="true" cta="查看指南" />

  <Card title="自托管" icon="link" href="/oss/python/integrations/embeddings/self-hosted" arrow="true" cta="查看指南" />

  <Card title="Sentence Transformers" icon="link" href="/oss/python/integrations/embeddings/sentence_transformers" arrow="true" cta="查看指南" />

  <Card title="Solar" icon="link" href="/oss/python/integrations/embeddings/solar" arrow="true" cta="查看指南" />

  <Card title="SpaCy" icon="link" href="/oss/python/integrations/embeddings/spacy_embedding" arrow="true" cta="查看指南" />

  <Card title="SparkLLM" icon="link" href="/oss/python/integrations/embeddings/sparkllm" arrow="true" cta="查看指南" />

  <Card title="TensorFlow Hub" icon="link" href="/oss/python/integrations/embeddings/tensorflowhub" arrow="true" cta="查看指南" />

  <Card title="Text Embeddings Inference" icon="link" href="/oss/python/integrations/embeddings/text_embeddings_inference" arrow="true" cta="查看指南" />

  <Card title="TextEmbed" icon="link" href="/oss/python/integrations/embeddings/textembed" arrow="true" cta="查看指南" />

  <Card title="Titan Takeoff" icon="link" href="/oss/python/integrations/embeddings/titan_takeoff" arrow="true" cta="查看指南" />

  <Card title="Together AI" icon="link" href="/oss/python/integrations/embeddings/together" arrow="true" cta="查看指南" />

  <Card title="Upstage" icon="link" href="/oss/python/integrations/embeddings/upstage" arrow="true" cta="查看指南" />

  <Card title="火山引擎" icon="link" href="/oss/python/integrations/embeddings/volcengine" arrow="true" cta="查看指南" />

  <Card title="Voyage AI" icon="link" href="/oss/python/integrations/embeddings/voyageai" arrow="true" cta="查看指南" />

  <Card title="Xinference" icon="link" href="/oss/python/integrations/embeddings/xinference" arrow="true" cta="查看指南" />

  <Card title="YandexGPT" icon="link" href="/oss/python/integrations/embeddings/yandex" arrow="true" cta="查看指南" />

  <Card title="智谱AI" icon="link" href="/oss/python/integrations/embeddings/zhipuai" arrow="true" cta="查看指南" />
</Columns>

***

<div className="source-links">
  <Callout icon="terminal-2">
    [通过 MCP 将这些文档](/use-these-docs)连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/python/integrations/embeddings/index.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
