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

# DatabricksEmbeddings 集成

> 集成DatabricksEmbeddings嵌入模型，使用LangChain

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

本指南为快速入门 `DatabricksEmbeddings` [嵌入模型](https://langchain-docs-zh.mintlify.site/langchain/oss/python/integrations/embeddings.md) 提供概述。如需了解所有 `DatabricksEmbeddings` 功能和配置的详细文档，请访问 [API reference](https://api-docs.databricks.com/python/databricks-ai-bridge/latest/databricks_langchain.html#databricks_langchain.DatabricksEmbeddings)。

## 概览

### 集成细节

| 类 | 包 |
| :- | :- |
| [`DatabricksEmbeddings`](https://api-docs.databricks.com/python/databricks-ai-bridge/latest/databricks_langchain.html#databricks_langchain.DatabricksEmbeddings) | [databricks-langchain](https://langchain-docs-zh.mintlify.site/langchain/oss/python/integrations/providers/databricks.md) |

### 支持的方法

`DatabricksEmbeddings` 支持 @\[`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 General Embedding (BGE) 等前沿模型的精选列表。这些端点已就绪，可在您的 Databricks 工作区直接使用，无需额外配置。
2. 定制模型 - 您也可以通过 MLflow 部署自定义嵌入模型到服务端点，支持 LangChain、Pytorch、Transformers 等框架。
3. 外部模型 - Databricks 端点可作为代理服务模型，例如 OpenAI text-embedding-3 等专有模型服务。

## 配置

要访问 Databricks 模型，需创建 Databricks 账号、设置凭据（若您的工作区不在 Databricks 内），并安装所需包。

### 凭据（仅限非 Databricks 工作区）

若您的 LangChain 应用运行在 Databricks 内，可跳过此步骤。

否则，需手动将 Databricks 工作区主机名和环境变量 `DATABRICKS_HOST`、个人访问令牌和环境变量 `DATABRICKS_TOKEN` 设置为 `DATABRICKS_HOST` 和 `DATABRICKS_TOKEN`。有关获取访问令牌的详细说明，请参考 [认证文档](https://docs.databricks.com/en/dev-tools/auth/index.html#databricks-personal-access-tokens)。

```python theme={null}
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={null}
pip install -qU databricks-langchain
```

## 实例化

```python theme={null}
from databricks_langchain import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(
    endpoint="databricks-bge-large-en",
    # Specify parameters for embedding queries and documents if needed
    # query_params={...},
    # document_params={...},
)
```

## 索引与检索

嵌入模型常用于检索增强生成（RAG）流程，既用于数据索引也用于后续检索。更多详细操作请参考我们的 [RAG 教程](https://langchain-docs-zh.mintlify.site/langchain/oss/deepagents/rag.md)。

以下展示如何使用 `embeddings` 对象（上文中已初始化）进行索引和检索。本例中我们将索引并检索 `InMemoryVectorStore` 中的示例文档。

```python theme={null}
# Create a vector store with a sample text
from langchain_core.vectorstores import InMemoryVectorStore

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

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

# Use the vectorstore as a retriever
retriever = vectorstore.as_retriever()

# Retrieve the most similar text
retrieved_document = retriever.invoke("What is LangChain?")

# show the retrieved document's content
retrieved_document[0].page_content
```

## 直接使用

底层实现中，向量存储和检索器通过 `embeddings.embed_documents(...)` 和 `embeddings.embed_query(...)` 分别为 `from_texts` 和检索 `invoke` 操作生成嵌入。

您可以直接调用这些方法实现自定义嵌入需求。

### 单文本嵌入

可通过 `embed_query` 嵌入单文本或文档：

```python theme={null}
single_vector = embeddings.embed_query(text)
print(str(single_vector)[:100])  # Show the first 100 characters of the vector
```

### 多文本嵌入

可通过 `embed_documents` 嵌入多文本：

```python theme={null}
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])  # Show the first 100 characters of the vector
```

### 异步使用

也可通过 `aembed_query` 和 `aembed_documents` 异步生成嵌入：

```python theme={null}
import asyncio


async def async_example():
    single_vector = await embeddings.aembed_query(text)
    print(str(single_vector)[:100])  # Show the first 100 characters of the vector


asyncio.run(async_example())
```

***

## API 参考

如需 `DatabricksEmbeddings` 功能和配置选项的详细文档，请参考 [API reference](https://api-docs.databricks.com/python/databricks-ai-bridge/latest/databricks_langchain.html#databricks_langchain.DatabricksEmbeddings)。

***

> 官方原文：[src/oss/python/integrations/embeddings/databricks.mdx](https://github.com/langchain-ai/docs/blob/main/src/oss/python/integrations/embeddings/databricks.mdx) · 非官方翻译，译文由 AI 生成，以英文原文为准。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.