Skip to content
Cloudflare Docs
非官方翻译 - 此文档为非官方中文翻译版本,仅供参考。如有疑问请以 英文官方文档 为准。

JSON 模式

当我们希望文本生成 AI 模型以编程方式与数据库、服务和外部系统交互时,通常在使用工具调用或构建 AI 代理时,我们必须使用结构化的响应格式而不是自然语言。

Workers AI 支持 JSON 模式,使应用程序能够在与 AI 模型交互时请求结构化的输出响应。

架构

JSON 模式与 OpenAI 的实现兼容;要启用,请使用以下约定将 response_format 属性添加到请求对象中:

{
response_format: {
title: "JSON 模式",
type: "object",
properties: {
type: {
type: "string",
enum: ["json_object", "json_schema"],
},
json_schema: {},
}
}
}

其中 json_schema 必须是有效的 JSON 模式 声明。

JSON 模式示例

使用 JSON 格式时,请将架构作为请求的一部分传递给 LLM,如下例所示。

{
"messages": [
{
"role": "system",
"content": "提取有关国家的数据。"
},
{
"role": "user",
"content": "告诉我关于印度的信息。"
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"capital": {
"type": "string"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"capital",
"languages"
]
}
}
}

LLM 将遵循该架构,并返回如下所示的响应:

{
"response": {
"name": "印度",
"capital": "新德里",
"languages": [
"印地语",
"英语",
"孟加拉语",
"泰卢固语",
"马拉地语",
"泰米尔语",
"古吉拉特语",
"乌尔都语",
"卡纳达语",
"奥里亚语",
"马拉雅拉姆语",
"旁遮普语",
"梵语"
]
}
}

如您所见,模型正在遵守请求中的 JSON 架构定义,并以经过验证的 JSON 对象进行响应。

支持的模型

以下是现在支持 JSON 模式的模型列表:

我们将继续扩展此列表,以跟上新的和被请求的模型。

请注意,Workers AI 不能保证模型会根据请求的 JSON 模式进行响应。根据任务的复杂性和 JSON 模式的充分性,模型在极端情况下可能无法满足请求。如果出现这种情况,则会返回错误 JSON 模式无法满足,并且必须进行处理。

JSON 模式目前不支持流式传输。