Databricks Lakehouse Platform 在一个平台上统一了数据、分析和 AI。本指南提供了开始使用 Databricks 聊天模型 的快速概述。有关所有 ChatDatabricks 功能和配置的详细文档,请访问 API 参考。
概述
ChatDatabricks 类包装了托管在 Databricks Model Serving 上的聊天模型端点。此示例笔记本展示如何包装您的服务端点并在 LangChain 应用程序中将其用作聊天模型。
集成详情
| Class | Package | Local | Serializable | Downloads | Version |
|---|---|---|---|---|---|
| ChatDatabricks | databricks-langchain | ❌ | beta |
模型功能
| Tool calling | Structured output | JSON mode | Image input | Audio input | Video input | Token-level streaming | Native async | Token usage | Logprobs |
|---|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ |
支持的方法
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 环境变量。有关如何获取访问令牌,请参阅身份验证文档。
安装
LangChain Databricks 集成位于databricks-langchain 包中。
ChatDatabricks 查询托管为 Foundation Models 端点的 DBRX-instruct 模型。
对于其他类型的端点,端点本身的设置方式可能有所不同,但是,一旦端点准备就绪,使用 ChatDatabricks 查询它的方式没有区别。有关其他类型端点的示例,请参阅本文档底部的示例。
实例化
调用
链式调用
与其他聊天模型类似,ChatDatabricks 可以用作复杂链的一部分。
调用(流式)
异步调用
工具调用
ChatDatabricks 支持 OpenAI 兼容的工具调用 API,允许您描述工具及其参数,并让模型返回一个 JSON 对象,其中包含要调用的工具和该工具的输入。工具调用对于构建使用工具的链和智能体,以及更一般地从模型获取结构化输出非常有用。 使用ChatDatabricks.bind_tools,我们可以轻松地将 Pydantic 类、字典模式、LangChain 工具甚至函数作为工具传递给模型。在底层,这些被转换为 OpenAI 兼容的工具模式,如下所示:
包装自定义模型端点
前提条件:- 已通过 MLflow 将 LLM 注册并部署到 Databricks 服务端点。端点必须具有 OpenAI 兼容的聊天输入/输出格式(参考)
- 您对端点具有 “Can Query” 权限。