Skip to content

Structure Block

通过 AI 或变量提取生成结构化 JSON 数据,支持自定义 Schema 约束输出格式。

功能说明

Structure Block 用于产出结构化数据。它支持两种数据来源模式:

  • AI 生成模式(generation):调用支持 structured output 的 AI 模型,根据用户定义的 JSON Schema 约束,生成符合预期格式的结构化数据。
  • 变量提取模式(variable):从已有变量中提取数据,并按 Schema 格式化输出。

Structure Block 内部通过可视化 Schema 编辑器定义输出结构,每个字段可指定类型(string / number / boolean / array / object)、描述和是否必填。

使用场景

  1. 数据提取:从非结构化文本中提取特定字段,如从文章中提取标题、摘要、关键词。
  2. 格式转换:将自由格式的 AI 输出转换为严格的 JSON 结构,供后续 Code Block 处理。
  3. 表单数据生成:根据提示生成符合特定格式的数据(如用户信息、配置项)。

配置参数

属性名类型说明默认值
idstring节点唯一标识(自动生成)
namestring节点名称(自动生成,可自定义)
fromType'generation' | 'variable'数据来源类型'generation'
variable.blockIdstring变量来源的 Block ID(仅 fromType: 'variable'''
variable.varnamestring变量来源的变量名(仅 fromType: 'variable'''
generation.modelIdstringAI 模型 ID(仅 fromType: 'generation'自动选择默认模型
generation.creativitynumber创造力 / Temperature(0-1)0.5
generation.reasoningEffort'minimal' | 'low' | 'medium' | 'high'推理努力级别'medium'
generation.thinkingEnabledboolean思考开关true
schemaobject | nullJSON Schema 定义null

Schema 字段类型

每个 Schema 字段(sItem)支持以下配置:

属性名类型说明默认值
fieldTypestring字段类型:string / number / boolean / array / object / array_object'string'
requiredboolean是否为必填字段false
defaultValuestring字段默认值''

输出变量

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 生成模式下,modelIdschema 均为必填。缺少任一项将报错终止。
  • 变量提取模式下,variable.blockIdvariable.varname 均为必填。
  • AI 返回的内容必须是有效的 JSON。如果解析失败,Block 将报错终止。
  • 生成的 JSON 会通过 Schema 验证。如果必填字段缺失或类型不匹配,Block 将报错终止。
  • 输出变量中额外包含 raw 字段(原始 JSON 字符串)和 thinking 字段(如果模型支持思考能力)。
  • 对象类型字段可以嵌套,生成的变量路径使用点号分隔(如 {{struct_1.address.city}})。
  • 仅支持 structured output 的模型会出现在 Structure Block 的模型选择列表中。

AI Workflow Editor