请求结构化数据 PRO
requestStructuredData 用于向 Assistant 请求严格符合指定 JSON Schema 的结构化 JSON 数据。
该 API 适合在你需要可预测、可直接用于程序逻辑的数据结果时使用,而不是自由文本。
典型使用场景包括:
- 从自然语言中提取结构化字段
- 解析发票、收据、账单、票据
- 生成配置对象、规则数据
- 在不同 AI Provider / Model 之间获得一致的数据结构
支持的 JSON Schema 类型
Scripting 提供了一套轻量级、跨模型可用的 Schema 描述方式,由三种基础类型组成。
Primitive(基础类型)
Object(对象类型)
Array(数组类型)
API 定义
不包含图片输入
包含图片输入
参数说明
prompt
-
类型:
string -
必填
-
向模型说明需要解析或生成什么结构化数据
-
强烈建议在 prompt 中明确:
- 时间格式(如 ISO-8601)
- 金额是否为纯数字
- 缺失字段的处理规则
images(可选)
- 类型:
string[] - 每一项必须是 Data URI,例如:
- 并非所有 Provider / Model 都支持图片输入
- 图片数量过多可能导致请求失败
schema
- 类型:
JSONSchemaArray | JSONSchemaObject - 必填
- 定义模型唯一允许返回的 JSON 结构
- 每一个字段都应提供清晰的
description,这是保证结果稳定的关键
options.provider
-
类型:
Provider -
可选,未指定时使用 Assistant 当前默认 Provider
-
支持:
"openai""gemini""anthropic""deepseek""openrouter"{ custom: string }
options.modelId(可选)
- 类型:
string - 指定具体模型 ID
- 必须与 Provider 实际支持的模型匹配
- 未指定时使用 Provider 默认模型
返回值
R为调用方声明的泛型类型- 返回结果应严格符合 Schema 描述
- 若模型无法生成合法结构,Promise 将被 reject
使用示例
示例一:解析票据 / 收据,提取消费项目、时间和金额
该示例演示如何将一段票据文本解析为结构化数据,包括:
-
整体消费时间(
purchasedAt) -
币种(
currency) -
消费项目列表(
items)- 项目名称
- 项目时间(若无则为空)
- 金额
-
合计金额(
total)
示例二:生成数组结构
示例三:结合图片生成结构化结果
使用建议与注意事项
- 当返回结果用于业务逻辑时,优先使用
requestStructuredData - Schema 描述越明确,结果越稳定
- 复杂业务规则不要放在 Schema 中,应由业务代码处理
