> ## 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.

# DatabricksEmbeddings 集成

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

> [Databricks](https://www.databricks.com/) Lakehouse 平台将数据、分析和 AI 统一在一个平台上。

本指南提供了快速入门 `DatabricksEmbeddings` [嵌入模型](/oss/python/integrations/embeddings)的概览。有关所有 `DatabricksEmbeddings` 功能和配置的详细文档，请访问 [API 参考](https://reference.langchain.com/python/langchain-community/embeddings/databricks/DatabricksEmbeddings)。

## 概述

### 集成详情

| 类                                                                                                                               | 包                                                                                            |
| :------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------- |
| [`DatabricksEmbeddings`](https://reference.langchain.com/python/langchain-community/embeddings/databricks/DatabricksEmbeddings) | [databricks-langchain](https://python.langchain.com/docs/integrations/providers/databricks/) |

### 支持的方法

`DatabricksEmbeddings` 支持 [`Embeddings`](https://reference.langchain.com/python/langchain-core/embeddings/embeddings/Embeddings) 类的所有方法，包括异步 API。

### 端点要求

`DatabricksEmbeddings` 所包装的服务端点必须具有 OpenAI 兼容的嵌入输入/输出格式（[参考](https://mlflow.org/docs/latest/llms/deployments/index.html#embeddings)）。只要输入格式兼容，`DatabricksEmbeddings` 可用于托管在 [Databricks Model Serving](https://docs.databricks.com/en/machine-learning/model-serving/index.html) 上的任何端点类型：

1. 基础模型 - 精选的最先进基础模型列表，例如 BAAI 通用嵌入 (BGE)。这些端点在您的 Databricks 工作区中开箱即用，无需任何设置。
2. 自定义模型 - 您也可以通过 MLflow 将自定义嵌入模型部署到服务端点，选择您喜欢的框架，例如 LangChain、Pytorch、Transformers 等。
3. 外部模型 - Databricks 端点可以作为代理服务托管在 Databricks 之外的模型，例如 OpenAI text-embedding-3 等专有模型服务。

## 设置

要访问 Databricks 模型，您需要创建一个 Databricks 帐户、设置凭据（仅当您在 Databricks 工作区之外时），并安装所需的包。

### 凭据（仅当您在 Databricks 之外时）

如果您在 Databricks 内部运行 LangChain 应用程序，可以跳过此步骤。

否则，您需要手动将 Databricks 工作区主机名和个人访问令牌分别设置为 `DATABRICKS_HOST` 和 `DATABRICKS_TOKEN` 环境变量。有关如何获取访问令牌，请参阅[身份验证文档](https://docs.databricks.com/en/dev-tools/auth/index.html#databricks-personal-access-tokens)。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import getpass
import os

os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
if "DATABRICKS_TOKEN" not in os.environ:
    os.environ["DATABRICKS_TOKEN"] = getpass.getpass(
        "Enter your Databricks access token: "
    )
```

### 安装

LangChain Databricks 集成位于 `databricks-langchain` 包中：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
pip install -qU databricks-langchain
```

## 实例化

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
from databricks_langchain import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(
    endpoint="databricks-bge-large-en",
    # 如果需要，指定嵌入查询和文档的参数
    # query_params={...},
    # document_params={...},
)
```

## 索引和检索

嵌入模型通常用于检索增强生成 (RAG) 流程中，既作为索引数据的一部分，也用于后续检索。有关更详细的说明，请参阅我们的 [RAG 教程](/oss/python/langchain/rag)。

下面，了解如何使用我们上面初始化的 `embeddings` 对象来索引和检索数据。在此示例中，我们将在 `InMemoryVectorStore` 中索引和检索一个示例文档。

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
# 使用示例文本创建向量存储
from langchain_core.vectorstores import InMemoryVectorStore

text = "LangChain is the framework for building context-aware reasoning applications"

vectorstore = InMemoryVectorStore.from_texts(
    [text],
    embedding=embeddings,
)

# 将向量存储用作检索器
retriever = vectorstore.as_retriever()

# 检索最相似的文本
retrieved_document = retriever.invoke("What is LangChain?")

# 显示检索到的文档内容
retrieved_document[0].page_content
```

## 直接使用

在底层，向量存储和检索器实现调用 `embeddings.embed_documents(...)` 和 `embeddings.embed_query(...)` 来分别为 `from_texts` 和检索 `invoke` 操作中使用的文本创建嵌入。

您可以直接调用这些方法来获取您自己用例的嵌入。

### 嵌入单个文本

您可以使用 `embed_query` 嵌入单个文本或文档：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
single_vector = embeddings.embed_query(text)
print(str(single_vector)[:100])  # 显示向量的前 100 个字符
```

### 嵌入多个文本

您可以使用 `embed_documents` 嵌入多个文本：

```python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
text2 = (
    "LangGraph is a library for building stateful, multi-actor applications with LLMs"
)
two_vectors = embeddings.embed_documents([text, text2])
for vector in two_vectors:
    print(str(vector)[:100])  # 显示向量的前 100 个字符
```

### 异步使用

您也可以使用 `aembed_query` 和 `aembed_documents` 异步生成嵌入：

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


async def async_example():
    single_vector = await embeddings.aembed_query(text)
    print(str(single_vector)[:100])  # 显示向量的前 100 个字符


asyncio.run(async_example())
```

***

## API 参考

有关 `DatabricksEmbeddings` 功能和配置选项的详细文档，请参阅 [API 参考](https://reference.langchain.com/python/langchain-community/embeddings/databricks/DatabricksEmbeddings)。

***

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

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