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节点调用该子工作流
具体怎么做
导入子流程并配置两个模型凭据
导入该子工作流。给Vision LLM节点添加视觉模型凭据(负责图片信息提取),给Text LLM节点添加文本模型凭据(负责把抽取文本按schema转JSON)。两个位置都可换成任意聊天模型节点,不必局限于Gemini和Groq。
理解内部分流逻辑
子流程先把传入附件拆成一文件一条目,URL则转成可抓取的文本来源;再根据extraction.field_schemas动态构建JSON Schema;Route by File Type节点按MIME类型路由到对应解析器,网页走HTTP请求抓正文,图片先转兼容格式再走视觉模型。
从父流程发起调用
在父工作流中添加Execute Workflow节点,指向该子流程,传入binary_files(附件)或url,以及可选的extraction.field_schemas和字段说明instructions。先用一个公开网页URL做最小测试。
核对标准化返回
检查每条返回都包含status、error和data(内含text、content_class、class_confidence)。故意传入一个不在路由表里的文件类型(如.zip),确认返回unsupported状态与error负载且父流程继续运行不中断。
用置信度做分流练习(本站设计)
在父流程里加一个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