> ## Documentation Index
> Fetch the complete documentation index at: https://langchain-zh.cn/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 模型服务](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(
        "输入您的 Databricks 访问令牌: "
    )
```

### 安装

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 是构建上下文感知推理应用程序的框架"

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

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

# 检索最相似的文本
retrieved_document = retriever.invoke("什么是 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 是一个用于构建具有 LLM 的有状态、多参与者应用程序的库"
)
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="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/i18n\zh-CN\oss\python\integrations\embeddings\databricks.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>

  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>
</div>
