概述
ChatDatabricks 类封装了一个托管在Databricks Model Serving上的聊天模型端点。此示例笔记本展示了如何封装服务端点并在您的 LangChain 应用程序中将其用作聊天模型。
集成细节
| 类 | 包 | 可序列化 | 下载量 | 版本 |
|---|---|---|---|---|
ChatDatabricks | databricks-langchain | beta |
模型功能
支持的方法
ChatDatabricks 支持 ChatModel 的所有方法,包括异步 API。
端点要求
ChatDatabricks 所封装的服务端点必须具有与 OpenAI 兼容的聊天输入/输出格式(参考)。只要输入格式兼容,ChatDatabricks 就可以用于托管在 Databricks Model Serving 上的任何端点类型:
- 基础模型 - 一个包含最新基础模型(如 DRBX、Llama3、Mixtral-8x7B 等)的精选列表。这些端点在您的 Databricks 工作区中可以立即使用,无需进行任何设置。
- 自定义模型 - 您还可以通过 MLflow 部署自定义模型到服务端点,并选择框架(如 LangChain、Pytorch、Transformers 等)。
- 外部模型 - Databricks 端点可以代理托管在 Databricks 之外的模型,例如专有的模型服务(如 OpenAI GPT4)。
配置
要访问 Databricks 模型,您需要创建一个 Databricks 账户、设置凭据(仅限于不在 Databricks 工作区外运行),并安装所需的包。凭据(仅限于不在 Databricks 之外)
如果您在 Databricks 内运行 LangChain 应用程序,可以跳过此步骤。 否则,您需要手动将 Databricks 工作空间主机名和个人访问令牌设置为DATABRICKS_HOST 和 DATABRICKS_TOKEN 环境变量。有关获取访问令牌的详细信息,请参阅 身份验证文档。
安装
Databricks 集成在databricks-langchain 包中。
ChatDatabricks 查询托管为基础模型端点的 DBRX-instruct 模型。
对于其他类型的端点,设置端点的方式有所不同。但是,一旦端点就绪,使用 ChatDatabricks 查询它就没有区别了。请参阅此笔记本底部以获取其他类型端点的示例。
实例化
调用
链接
类似于其他聊天模型,ChatDatabricks 可以作为复杂链的一部分使用。
流式调用
异步调用
工具调用
ChatDatabricks 支持与 OpenAI 兼容的工具调用 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
通过 MCP 将这些文档与 Claude、VSCode 等连接,以实现实时答案。

