AI PLAY玩法更新持续收录
← 回到更新流

2026-10-01 · 原文发布日

把文件和网页统一解析成结构化JSON的子流程

一个被其他n8n流程调用的免费子工作流:父流程传入附件或URL和想要的字段定义后,它按文件类型分流,用n8n原生解析器处理PDF、CSV、Excel、表格和文本,网页则抓取正文;图片走视觉模型提取信息并给出内容分类和置信度。若提供了字段schema,再让文本模型输出对应结构的JSON,每个输入固定返回状态、正文、分类和置信度,不支持的类型也返回标准错误而不中断主流程。Gemini和Groq免费额度即可跑。

原文要点

这是一个被其他n8n流程通过Execute Workflow节点调用的免费子工作流:接收二进制附件或URL和可选的字段定义,按MIME类型分流,PDF、JSON、CSV、Excel、Google Sheets和文本用n8n原生解析器,网页经HTTP请求抓正文,图片转格式后交给视觉模型提取并给出content_class与class_confidence(0到1);提供schema时再由文本模型输出结构化JSON。每个输入固定返回{status, error, data:{text, content_class, class_confidence}},不支持的类型返回标准错误而不中断主流程。模板自带Gemini和Groq节点;两者的当前配额和计费须在各自账号核对。

这次做成什么

在n8n里配好这个通用解析子流程,并用一个带字段schema的父流程调用练习跑通“URL→结构化JSON”的完整返回格式。

准备什么

  • 一个当前可用且支持视觉能力的模型凭据,例如Google Gemini,并已核对用量限制
  • 一个当前可用且支持结构化输出的文本模型凭据,例如Groq,并已核对用量限制
  • 一个通过Execute Workflow节点调用本流程的父工作流
  • 可用的n8n环境,并能从父工作流通过Execute Workflow节点调用该子工作流

具体怎么做

  1. 导入子流程并配置两个模型凭据

    导入该子工作流。给Vision LLM节点添加视觉模型凭据(负责图片信息提取),给Text LLM节点添加文本模型凭据(负责把抽取文本按schema转JSON)。两个位置都可换成任意聊天模型节点,不必局限于Gemini和Groq。

  2. 理解内部分流逻辑

    子流程先把传入附件拆成一文件一条目,URL则转成可抓取的文本来源;再根据extraction.field_schemas动态构建JSON Schema;Route by File Type节点按MIME类型路由到对应解析器,网页走HTTP请求抓正文,图片先转兼容格式再走视觉模型。

  3. 从父流程发起调用

    在父工作流中添加Execute Workflow节点,指向该子流程,传入binary_files(附件)或url,以及可选的extraction.field_schemas和字段说明instructions。先用一个公开网页URL做最小测试。

  4. 核对标准化返回

    检查每条返回都包含status、error和data(内含text、content_class、class_confidence)。故意传入一个不在路由表里的文件类型(如.zip),确认返回unsupported状态与error负载且父流程继续运行不中断。

  5. 用置信度做分流练习(本站设计)

    在父流程里加一个Switch节点:class_confidence≥0.8自动接受,0.5–0.8进入人工复核分支,<0.5标记为待查,用三条不同质量的输入验证分流是否符合预期。

可直接复制的材料

父流程调用参数示例

本站独立编写的调用示例;url换成真实公开页面;字段schema按你需要的数据结构自由增删,子流程会据此构建JSON Schema。

{
  "url": "https://example.com/news/2026-spring-market-report",
  "extraction": {
    "field_schemas": {
      "title": { "type": "string", "description": "文章标题" },
      "publish_date": { "type": "string", "description": "发布日期,YYYY-MM-DD" },
      "companies": { "type": "array", "items": { "type": "string" }, "description": "文中提到的公司名称" },
      "summary": { "type": "string", "description": "三句话以内的中文摘要" }
    },
    "instructions": "只提取正文信息,忽略导航和广告;日期无法确定时返回null"
  }
}

文本结构化提示词(供Text LLM节点参考)

本站独立编写的参考提示词,用于理解Text LLM节点的工作方式;模板内实际提示词以原节点为准,变量名需按节点实际输入调整。

你是数据结构化助手。请阅读下方从文件或网页抽取的原始文本,严格按给定的JSON Schema输出一个JSON对象。
要求:
1. 只输出合法JSON,不要输出任何解释文字或代码块标记;
2. 字段值必须来自原文,原文没有的信息填null,不要编造;
3. 数组字段没有内容时返回空数组[];
4. 日期统一为YYYY-MM-DD格式。

JSON Schema:
{{ $json.schema }}

原始文本:
{{ $json.text }}

输入与输出示例

本站虚构演示,字段与数值均为示意,非实际运行结果;返回结构遵循模板说明的固定格式。

输入

调用参数:url指向一篇虚构的市场动态网页,schema要求title、publish_date、companies、summary四个字段

对应输出

{"status":"success","error":null,"data":{"text":"(网页正文全文抽取结果)","content_class":"news_article","class_confidence":0.87,"title":"2026春季市场观察","publish_date":"2026-03-15","companies":["阿尔卑斯物流","湖畔制造"],"summary":"文章介绍了两家瑞士企业在春季的产能调整与用工变化。"}}

做完检查这些

  • Vision LLM和Text LLM两个节点都已配置可用凭据
  • 父流程Execute Workflow节点能传入url或binary_files并收到返回
  • 每条返回都包含status、error、data三要素且data内有text、content_class、class_confidence
  • 传入不支持的文件类型时返回标准错误且父流程不中断
  • 提供field_schemas时返回的data包含与schema对应的结构化字段

容易卡住的地方

  • 必须由一个父工作流通过Execute Workflow节点调用,单独运行子流程没有触发入口
  • 文本模型需支持结构化输出,否则schema转换结果可能不是合法JSON
  • 图片必须先转换为视觉模型兼容格式,不兼容格式会导致该条目走错误分支
  • 免费额度有限,批量处理大量附件时注意Gemini和Groq的速率限制
  • 新增文件类型需要在Route by File Type里手动加规则,不添加则一律返回unsupported

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Parse files and URLs into structured JSON with Groq and Google Gemini
原作者
David
原始发布日期
2026-10-01T14:26:52.644Z
来源
https://n8n.io/workflows/20301