Databricks Lakehouse 平台在一个平台上统一了数据、分析和 AI。本指南提供了一个快速概述,以帮助您开始使用 Databricks 聊天模型。有关所有 ChatDatabricks 功能和配置的详细文档,请参阅API 参考。
概览
ChatDatabricks 类封装了托管在 Databricks 模型服务上的聊天模型端点。此示例笔记本展示了如何封装您的服务端点并在您的 LangChain 应用程序中将其用作聊天模型。
集成详情
| 类别 | 包 | 本地 | 可序列化 | 下载量 | 版本 |
|---|---|---|---|---|---|
| ChatDatabricks | databricks-langchain | ❌ | 测试版 |
模型功能
支持的方法
ChatDatabricks 支持 ChatModel 的所有方法,包括异步 API。
端点要求
ChatDatabricks 封装的服务端点必须具有 OpenAI 兼容的聊天输入/输出格式(参考)。只要输入格式兼容,ChatDatabricks 即可用于托管在 Databricks 模型服务上的任何端点类型
- 基础模型 - 精心策划的尖端基础模型列表,如 DRBX、Llama3、Mixtral-8x7B 等。这些端点无需任何设置即可在您的 Databricks 工作区中使用。
- 自定义模型 - 您还可以通过 MLflow 将自定义模型部署到服务端点,并选择您喜欢的框架,如 LangChain、Pytorch、Transformers 等。
- 外部模型 - Databricks 端点可以作为代理服务托管在 Databricks 之外的模型,例如 OpenAI GPT4 等专有模型服务。
设置
要访问 Databricks 模型,您需要创建一个 Databricks 帐户,设置凭据(仅当您在 Databricks 工作区之外时),并安装所需的包。凭证(仅当您在 Databricks 外部时)
如果您在 Databricks 内部运行 LangChain 应用程序,则可以跳过此步骤。 否则,您需要手动将 Databricks 工作区主机名和个人访问令牌分别设置为DATABRICKS_HOST 和 DATABRICKS_TOKEN 环境变量。有关如何获取访问令牌,请参阅身份验证文档。安装
LangChain Databricks 集成存在于databricks-langchain 包中。
ChatDatabricks 查询作为基础模型端点托管的 DBRX-instruct 模型。 对于其他类型的端点,端点本身的设置方式有所不同,但是一旦端点准备就绪,使用 ChatDatabricks 查询它的方式就没有区别。请参阅本笔记本底部,了解其他类型端点的示例。实例化
调用
链接
与其他聊天模型类似,ChatDatabricks 可以作为复杂链的一部分使用。
调用(流式传输)
异步调用
工具调用
ChatDatabricks 支持 OpenAI 兼容的工具调用 API,该 API 允许您描述工具及其参数,并让模型返回一个 JSON 对象,其中包含要调用的工具和该工具的输入。工具调用对于构建使用工具的链和代理,以及更普遍地从模型获取结构化输出非常有用。 使用ChatDatabricks.bind_tools,我们可以轻松地将 Pydantic 类、字典模式、LangChain 工具甚至函数作为工具传递给模型。在底层,这些被转换为 OpenAI 兼容的工具模式,其外观如下:封装自定义模型端点
先决条件- 一个 LLM 已注册并通过 MLflow 部署到 Databricks 服务端点。该端点必须具有 OpenAI 兼容的聊天输入/输出格式(参考)。
- 您拥有端点的 “可查询”权限。
封装外部模型
先决条件:创建代理端点 首先,创建一个新的 Databricks 服务端点,该端点将请求代理到目标外部模型。对于代理外部模型,端点创建应该非常快。 这需要按如下方式在 Databricks 密钥管理器中注册您的 OpenAI API 密钥:Databricks 上的函数调用
Databricks 函数调用与 OpenAI 兼容,并且仅在模型服务期间作为基础模型 API 的一部分可用。 有关支持的模型,请参阅 Databricks 函数调用简介。API 参考
有关所有 ChatDatabricks 功能和配置的详细文档,请参阅 API 参考:api-docs.databricks.com/python/databricks-ai-bridge/latest/databricks_langchain.html#databricks_langchain.ChatDatabricks以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。