以编程方式使用文档

> Databricks 提供了一个数据与 AI 平台(通常称为 Databricks Lakehouse),用于分析、机器学习和生成式 AI 工作负载。

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

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

安装 ------------

第一方 Databricks 集成现在可在 databricks-langchain 合作伙伴包中使用。

pip install databricks-langchain
uv add 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 应用程序中使用它的指导。

嵌入 ----------

DatabricksEmbeddings 是一个嵌入类,用于访问托管在 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="",
    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?")