在本文中,你将了解可用于编写基础模型的查询请求的选项,以及如何将它们发送到模型服务终结点。 可以查询 Databricks 托管的基础模型和 Databricks 外部托管的基础模型。
有关传统的 ML 或 Python 模型查询请求,请参阅查询自定义模型的服务终结点。
模型服务 支持 基础模型 API 和 外部模型 来访问基础模型。 模型服务使用与 OpenAI 兼容的统一 API 和 SDK 进行查询。 这样,就可以跨受支持的云和提供商试验和自定义生产的基础模型。
查询选项
模型服务提供以下选项,用于向为基础模型提供服务的终结点发送查询请求:
| 方法 | 详细信息 |
|---|---|
| OpenAI 客户端 | 使用 OpenAI 客户端查询模型服务终结点托管的模型。 将提供终结点名称的模型指定为 model 输入。 支持由基础模型 API 或外部模型提供的聊天、嵌入和完成模型。 |
| AI 功能 | 使用 ai_query SQL 函数直接从 SQL 调用模型推理。 请参阅 示例:查询基础模型。 |
| 服务 UI | 在“服务终结点”页面中,选择“查询终结点”。 插入 JSON 格式的模型输入数据,然后单击“发送请求”。 如果模型记录了输入示例,请使用“显示示例”来加载该示例。 |
| REST API | 使用 REST API 调用和查询模型。 有关详细信息,请参阅 POST /serving-endpoints/{name}/invocations。 有关为多个模型提供服务的终结点的评分请求,请参阅查询终结点背后的单个模型。 |
| MLflow 部署 SDK | 使用 MLflow 部署 SDK 的 predict() 函数查询模型。 |
| Databricks Python SDK | Databricks Python SDK 是 REST API 上的一个层。 它处理低级别详细信息,例如身份验证,从而更轻松地与模型交互。 |
要求
- 模型服务终结点。
- Databricks 工作区位于受支持的区域中。
- 若要通过 OpenAI 客户端 REST API 或 MLflow 部署 SDK 发送评分请求,你必须有 Databricks API 令牌。
重要
作为适用于生产场景的安全最佳做法,Databricks 建议在生产期间使用计算机到计算机 OAuth 令牌来进行身份验证。
对于测试和开发,Databricks 建议使用属于服务主体(而不是工作区用户)的个人访问令牌。 若要为服务主体创建令牌,请参阅管理服务主体的令牌。
安装软件包
选择查询方法后,必须先将相应的包安装到群集。
OpenAI 客户端
若要使用 OpenAI 客户端,需要在群集上安装 databricks-openai 包。 此包提供一个 OpenAI 客户端,该客户端自动配置为查询生成式人工智能模型。 在笔记本或本地终端中运行以下命令:
pip install -U databricks-openai
仅当在 Databricks Notebook 上安装包时,才需要满足以下条件
dbutils.library.restartPython()
REST API
Databricks Runtime 中提供对服务 REST API 的访问,供机器学习使用。
MLflow 部署 SDK
!pip install mlflow
仅当在 Databricks Notebook 上安装包时,才需要满足以下条件
dbutils.library.restartPython()
Databricks Python SDK
所有使用 Databricks Runtime 13.3 LTS 或更高版本的 Azure Databricks 群集上均已安装了 Databricks SDK for Python。 对于使用 Databricks Runtime 12.2 LTS 及更低版本的 Azure Databricks 群集,必须先安装 Databricks SDK for Python。 请参阅 用于 Python 的 Databricks SDK。
基础模型类型
下表总结了基于任务类型支持的基础模型。
重要
Meta-Llama-3.1-405B-Instruct 将停用,
- 从 2026 年 2 月 15 日开始,按令牌付费的工作负载。
- 从 2026 年 5 月 15 日开始,用于预配置的吞吐量任务。
有关建议的替换模型以及有关如何在弃用期间迁移的指导,请参阅 “停用”模型 。
函数调用
Databricks 函数调用与 OpenAI 兼容,仅在模型服务期间作为基础模型 API 的一部分提供,并提供为外部模型提供服务的终结点。 有关详细信息,请参阅 Azure Databricks 上的函数调用。
结构化输出
结构化输出与 OpenAI 兼容,仅在作为 基础模型 API 的一部分的模型服务期间可用。 有关详细信息,请参阅 Azure Databricks 上的结构化输出。
提示缓存
作为 基础模型 API 的一部分,Databricks 托管的 Claude 模型支持提示缓存。
可以在查询请求中指定 cache_control 参数来缓存以下内容:
-
messages.content数组中的文本内容消息。 - 在
messages.content数组中处理消息内容。 - 数组中的
messages.content图像内容块。 - 工具的使用、结果和定义在数组
tools中。
请参阅 基础模型 REST API 参考。
TextContent
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What's the date today?",
"cache_control": { "type": "ephemeral" }
}
]
}
]
}
理由内容
{
"messages": [
{
"role": "assistant",
"content": [
{
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": "Thinking...",
"signature": "[optional]"
},
{
"type": "summary_encrypted_text",
"data": "[encrypted text]"
}
]
}
]
}
]
}
ImageContent
图像消息内容必须使用编码的数据作为其源。 不支持 URL。
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What’s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,[content]"
},
"cache_control": { "type": "ephemeral" }
}
]
}
]
}
ToolCallContent
{
"messages": [
{
"role": "assistant",
"content": "Ok, let’s get the weather in New York.",
"tool_calls": [
{
"type": "function",
"id": "123",
"function": {
"name": "get_weather",
"arguments": "{\"location\":\"New York, NY\"}"
},
"cache_control": { "type": "ephemeral" }
}
]
}
]
}
注释
Databricks REST API 与 OpenAI 兼容,与人类 API 不同。 这些差异也会影响响应对象,如下所示:
- 输出在
choices字段中返回。 - 流块格式。 所有区块都遵循相同的格式,其中
choices包含响应,而每个区块都会返回使用情况。 - 停止原因在
finish_reason字段中返回。- 人类使用:
end_turn、stop_sequence、max_tokens和tool_use - Databricks 分别使用:
stop、、stoplength和tool_calls
- 人类使用:
使用 AI 操场与支持的 LLM 聊天
可以使用 AI 操场与受支持的大语言模型进行交互。 AI 操场是类似聊天的环境,可以在该处测试、提示和比较 Azure Databricks 工作区的 LLM。