跳至主要內容

DatabricksEmbeddings

Databricks Lakehouse Platform 在單一平台上統一了數據、分析和 AI。

本筆記本提供 Databricks 嵌入模型的快速入門概述。 有關所有 DatabricksEmbeddings 功能和配置的詳細文檔,請前往 API 參考

概觀

整合詳細資訊

類別套件
DatabricksEmbeddingsdatabricks-langchain

支援的方法

DatabricksEmbeddings 支援 Embeddings 類別的所有方法,包括非同步 API。

端點需求

服務端點 DatabricksEmbeddings 封裝必須具有與 OpenAI 相容的嵌入輸入/輸出格式(參考)。 只要輸入格式相容,DatabricksEmbeddings 就可以用於 Databricks 模型服務上託管的任何端點類型。

  1. 基礎模型 - 精選的先進基礎模型列表,例如 BAAI General Embedding (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(
"Enter your Databricks access token: "
)

安裝

LangChain Databricks 整合位於 databricks-langchain 套件中

%pip install -qU databricks-langchain

例項化

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 教程

下面,了解如何使用我們上面初始化的 embeddings 物件來索引和檢索數據。 在此範例中,我們將在 InMemoryVectorStore 中索引和檢索範例文件。

# 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
API 參考:InMemoryVectorStore

直接使用

在底層,向量儲存和檢索器實作會呼叫 embeddings.embed_documents(...)embeddings.embed_query(...) 來為 from_texts 和檢索 invoke 操作中使用的文字建立嵌入。

您可以直接呼叫這些方法來取得嵌入,以用於您自己的使用案例。

嵌入單一文字

您可以使用 embed_query 嵌入單一文字或文件

single_vector = embeddings.embed_query(text)
print(str(single_vector)[:100]) # Show the first 100 characters of the vector

嵌入多個文字

您可以使用 embed_documents 嵌入多個文字

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_queryaembed_documents 來非同步產生嵌入

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 參考


此頁面是否對您有幫助?