Structure Block
通过 AI 或变量提取生成结构化 JSON 数据,支持自定义 Schema 约束输出格式。
功能说明
Structure Block 用于产出结构化数据。它支持两种数据来源模式:
- AI 生成模式(generation):调用支持 structured output 的 AI 模型,根据用户定义的 JSON Schema 约束,生成符合预期格式的结构化数据。
- 变量提取模式(variable):从已有变量中提取数据,并按 Schema 格式化输出。
Structure Block 内部通过可视化 Schema 编辑器定义输出结构,每个字段可指定类型(string / number / boolean / array / object)、描述和是否必填。
使用场景
- 数据提取:从非结构化文本中提取特定字段,如从文章中提取标题、摘要、关键词。
- 格式转换:将自由格式的 AI 输出转换为严格的 JSON 结构,供后续 Code Block 处理。
- 表单数据生成:根据提示生成符合特定格式的数据(如用户信息、配置项)。
配置参数
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
id | string | 节点唯一标识(自动生成) | — |
name | string | 节点名称(自动生成,可自定义) | — |
fromType | 'generation' | 'variable' | 数据来源类型 | 'generation' |
variable.blockId | string | 变量来源的 Block ID(仅 fromType: 'variable') | '' |
variable.varname | string | 变量来源的变量名(仅 fromType: 'variable') | '' |
generation.modelId | string | AI 模型 ID(仅 fromType: 'generation') | 自动选择默认模型 |
generation.creativity | number | 创造力 / Temperature(0-1) | 0.5 |
generation.reasoningEffort | 'minimal' | 'low' | 'medium' | 'high' | 推理努力级别 | 'medium' |
generation.thinkingEnabled | boolean | 思考开关 | true |
schema | object | null | JSON Schema 定义 | null |
Schema 字段类型
每个 Schema 字段(sItem)支持以下配置:
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
fieldType | string | 字段类型:string / number / boolean / array / object / array_object | 'string' |
required | boolean | 是否为必填字段 | false |
defaultValue | string | 字段默认值 | '' |
输出变量
Structure Block 的输出变量根据 Schema 定义动态生成。
固定变量
| 变量名 | 类型 | 说明 |
|---|---|---|
__default__ | dynamic | 默认输出,整个结构化对象 |
动态变量
每个 Schema 中定义的字段都会生成对应的变量,支持嵌套路径访问:
// Schema 定义:
{
"name": "string",
"age": "number",
"address": {
"city": "string",
"country": "string"
}
}
// 可引用的变量:
{{struct_1}} → 整个对象
{{struct_1.name}} → "张三"
{{struct_1.age}} → 25
{{struct_1.address.city}} → "北京"所有变量在 Structure Block 完成后才可被引用。
使用示例
示例 1:从文本提取结构化信息
以下是一段用户简介:
王小明,28岁,就职于北京某科技公司,邮箱 xiaoming@example.com
[Structure Block] name: struct_1, fromType: generation
Schema:
- name (string, required): 用户姓名
- age (number): 年龄
- company (string): 公司名称
- email (string, required): 邮箱地址AI 会根据 Schema 输出:
json
{
"name": "王小明",
"age": 28,
"company": "北京某科技公司",
"email": "xiaoming@example.com"
}示例 2:变量提取模式
[Generation Block] name: gen_1
Prompt: 返回用户信息的 JSON...
[Structure Block] name: struct_1, fromType: variable
variable: gen_1.__default__
Schema:
- name (string): 姓名
- score (number): 分数从 gen_1 的输出中按 Schema 提取并格式化字段。
运行时约束
- 适用文档类型:普通文档(document)。不可用于 skill 文档。
- 可插入上下文:文档顶层。
- 模型要求:AI 生成模式(
fromType: 'generation')要求模型支持 structured output 能力。不支持该能力的模型会被过滤。
注意事项
- AI 生成模式下,
modelId和schema均为必填。缺少任一项将报错终止。 - 变量提取模式下,
variable.blockId和variable.varname均为必填。 - AI 返回的内容必须是有效的 JSON。如果解析失败,Block 将报错终止。
- 生成的 JSON 会通过 Schema 验证。如果必填字段缺失或类型不匹配,Block 将报错终止。
- 输出变量中额外包含
raw字段(原始 JSON 字符串)和thinking字段(如果模型支持思考能力)。 - 对象类型字段可以嵌套,生成的变量路径使用点号分隔(如
{{struct_1.address.city}})。 - 仅支持 structured output 的模型会出现在 Structure Block 的模型选择列表中。