Skip to main content

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.

Databricks Lakehouse 平台将数据、分析和 AI 统一在一个平台上。
本指南提供了快速入门 DatabricksEmbeddings 嵌入模型 的概述。有关 DatabricksEmbeddings 所有功能和配置的详细文档,请参阅 API 参考

概述

集成详情

支持的方法

DatabricksEmbeddings 支持 Embeddings 类的所有方法,包括异步 API。

端点要求

DatabricksEmbeddings 包装的服务端点必须具有 OpenAI 兼容的嵌入输入/输出格式(参考)。只要输入格式兼容,DatabricksEmbeddings 可用于 Databricks 模型服务 上托管的任何端点类型:
  1. 基础模型 - 精选的最先进基础模型列表,例如 BAAI 通用嵌入(BGE)。这些端点无需任何设置即可在您的 Databricks 工作区中直接使用。
  2. 自定义模型 - 您还可以通过 MLflow 将自定义嵌入模型部署到服务端点,支持 LangChain、Pytorch、Transformers 等框架。
  3. 外部模型 - Databricks 端点可以作为代理服务托管在 Databricks 外部的模型,例如专有模型服务如 OpenAI text-embedding-3。

设置

要访问 Databricks 模型,您需要创建 Databricks 账户、设置凭据(仅当您在 Databricks 工作区外部时)并安装所需的包。

凭据(仅当您在 Databricks 外部时)

如果您在 Databricks 内部运行 LangChain 应用,可以跳过此步骤。 否则,您需要手动将 Databricks 工作区主机名和个人访问令牌分别设置为 DATABRICKS_HOSTDATABRICKS_TOKEN 环境变量。有关如何获取访问令牌,请参阅 身份验证文档
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 包中:
pip install -qU databricks-langchain

实例化

from databricks_langchain import DatabricksEmbeddings

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

索引与检索

嵌入模型通常用于检索增强生成(RAG)流程中,既用于索引数据,也用于后续检索。更详细的说明,请参阅我们的 RAG 教程 下面,我们将使用上面初始化的 embeddings 对象演示如何索引和检索数据。在此示例中,我们将在 InMemoryVectorStore 中索引和检索一个示例文档。
# 使用示例文本创建向量存储
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 嵌入单个文本或文档:
single_vector = embeddings.embed_query(text)
print(str(single_vector)[:100])  # 显示向量的前 100 个字符

嵌入多个文本

您可以使用 embed_documents 嵌入多个文本:
text2 = (
    "LangGraph 是一个用于构建具有 LLM 的有状态、多参与者应用程序的库"
)
two_vectors = embeddings.embed_documents([text, text2])
for vector in two_vectors:
    print(str(vector)[:100])  # 显示向量的前 100 个字符

异步使用

您还可以使用 aembed_queryaembed_documents 异步生成嵌入:
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 参考