Skip to main content
Open on GitHub

Databricks

Databricks Intelligence Platform is the world's first data intelligence platform powered by generative AI. Infuse AI into every facet of your business.

Databricks 以多种方式拥抱 LangChain 生态系统:

  1. 🚀 模型服务 - 通过高可用且低延迟的推理端点,访问最先进的LLM(如DBRX、Llama3、Mixtral或您微调的模型),这些模型托管在Databricks模型服务上。LangChain提供LLM(Databricks)、聊天模型(ChatDatabricks)和嵌入(DatabricksEmbeddings)的实现,简化了将托管在Databricks模型服务上的模型集成到您的LangChain应用中的过程。
  2. 📃 向量搜索 - Databricks 向量搜索 是一种无服务器向量数据库,无缝集成在 Databricks 平台中。使用 DatabricksVectorSearch,您可以将高度可扩展且可靠的相似性搜索引擎集成到您的 LangChain 应用程序中。
  3. 📊 MLflow - MLflow 是一个开源平台,用于管理完整的机器学习生命周期,包括实验管理、评估、追踪、部署等。 MLflow 与 LangChain 的集成 可简化开发和运行现代复杂机器学习系统的过程。
  4. 🌐 SQL数据库 - Databricks SQL 已与 LangChain 集成,版本为 SQLDatabase,可让您访问自动优化、性能卓越的数据仓库。
  5. 💡 开放模型 - Databricks 开源了诸如 DBRX 的模型,这些模型可通过 Hugging Face Hub 获取。这些模型可直接在 LangChain 中使用,利用其与 transformers 库的集成。

安装

首方 Databricks 集成现已在 databricks-langchain 合作伙伴包中提供。

pip install databricks-langchain

遗留的 langchain-databricks 合作包仍然可用,但即将被弃用。

聊天模型

ChatDatabricks 是一个聊天模型类,用于访问托管在 Databricks 上的聊天端点,包括最先进的模型(如 Llama3、Mixtral 和 DBRX)以及您自己的微调模型。

from databricks_langchain import ChatDatabricks

chat_model = ChatDatabricks(endpoint="databricks-meta-llama-3-70b-instruct")

查看 使用示例,了解如何在您的 LangChain 应用程序中使用它。

LLM

Databricks 是一个 LLM 类,用于访问托管在 Databricks 上的完成端点。

注意

文本补全模型已被弃用,最新且最流行的模型是 聊天补全模型。请使用 ChatDatabricks 聊天模型来使用这些模型以及工具调用等高级功能。

from langchain_community.llm.databricks import Databricks

llm = Databricks(endpoint="your-completion-endpoint")

查看 使用示例,了解如何在您的 LangChain 应用程序中使用它。

嵌入

DatabricksEmbeddings 是一个 Embeddings 类,用于访问托管在 Databricks 上的文本嵌入端点,包括最先进的模型(如 BGE)以及您自己的微调模型。

from databricks_langchain import DatabricksEmbeddings

embeddings = DatabricksEmbeddings(endpoint="databricks-bge-large-en")

查看 使用示例,了解如何在您的 LangChain 应用程序中使用它。

Databricks Vector Search 是一个无服务器的相似性搜索引擎,可让您在向量数据库中存储数据的向量表示形式(包括元数据)。借助 Vector Search,您可以从由 Delta 表管理的 Unity Catalog 创建自动更新的向量搜索索引,并通过简单的 API 查询它们以返回最相似的向量。

from databricks_langchain import DatabricksVectorSearch

dvs = DatabricksVectorSearch(
endpoint="<YOUT_ENDPOINT_NAME>",
index_name="<YOUR_INDEX_NAME>",
index,
text_column="text",
embedding=embeddings,
columns=["source"]
)
docs = dvs.similarity_search("What is vector search?)

查看 使用示例,了解如何设置向量索引并将其与LangChain集成。

MLflow 集成

在 LangChain 集成的背景下,MLflow 提供以下功能:

  • 实验追踪: 跟踪并存储您LangChain实验中的模型、工件和追踪信息。
  • 依赖管理: 自动记录依赖库,确保开发、预发布和生产环境之间的一致性。
  • 模型评估 提供原生功能,用于评估 LangChain 应用程序。
  • 追踪: 通过您的 LangChain 应用程序可视化地跟踪数据流。

查看 MLflow LangChain 集成,了解通过大量代码示例和指南使用 MLflow 与 LangChain 的完整功能。

SQLDatabase

要连接到 Databricks SQL 或查询结构化数据,请参阅 Databricks 结构化检索工具文档,并查看如何使用上述创建的 SQL UDF 创建代理,请参阅 Databricks UC 集成

开放模型

要直接集成托管在HuggingFace上的Databricks开源模型,可以使用LangChain的HuggingFace集成

from langchain_huggingface import HuggingFaceEndpoint

llm = HuggingFaceEndpoint(
repo_id="databricks/dbrx-instruct",
task="text-generation",
max_new_tokens=512,
do_sample=False,
repetition_penalty=1.03,
)
llm.invoke("What is DBRX model?")