必须用扣子工作流的循环结构批量处理发票:设files为array,loop输入{{input.files}}、路径写.*,内部用{{item}}调ocr和字段提取,经json校验后聚合有效数据写入飞书表格。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要一次性处理几十张发票或医疗票据,让每张图都经过OCR识别→字段提取→结构化输出→写入飞书表格,而不是手动一张张点开、复制、粘贴——这就必须用扣子工作流里的循环结构来驱动批量执行。
准备多文件输入并确认数据形态
在开始节点中,将「files」参数类型设为 Array
上传测试文件时,建议先用 2~3 张清晰的发票图片验证流程通路,避免一上来就扔进 50 张模糊图导致调试周期拉长。
配置 Loop 节点展开票据数组
拖入 Loop 节点 → 点击右上角「设置」→ 在「输入数据源」栏填入 {{input.files}} → 展开「高级设置」→ 将「循环路径」设为 .*。
【注意:这里必须写 .*, 不能写 files 或 input.files, 否则 Loop 不会拆解数组,而是把整个数组当做一个 item 处理】
这一步完成后,Loop 节点左上角会显示实际识别出的项数(例如“共 7 项”),代表接下来内部所有节点将自动执行 7 次,每次处理一张票据。
在 Loop 内部调用 OCR 并绑定原始文件信息
方法一:使用 Image2Text 插件(适合 JPG/PNG 清晰图)
把 Image2Text 节点拖进 Loop 区域 → 输入字段填 {{item}} → 勾选「高精度OCR模式」→ 输出字段命名为 ocr_text。
方法二:使用「文档解析」插件(推荐用于 PDF/OFD 电子发票)
添加该插件 → 输入同样为 {{item}} → 模式选「发票专用版面分析」→ 自动输出含发票代码、金额、开票日期等14个字段的结构化结果。
扣子 (Windows) 是字节跳动推出的一站式 AI Agent 平台客户端,支持多 Agent 协作、可视化工作流和知识库管理。最新版本新增 Claude Code 与 Codex CLI 接入、多端同步和项目级管理功能,同时优化了插件生态和 AI 响应速度,让用户在 Windows 上即可高效创建、运行和协作智能体,满足个人、团队及企业场景需求。
无论用哪种 OCR 方式,都必须确保输入是 {{item}},而不是 {{input.files}} 或 {{files}}。后者会导致所有循环轮次都处理同一张图,其余票据被跳过。
逐张提取字段并校验有效性
第一步:拖入大模型节点,重命名为「票据字段提取」。
系统提示词固定使用以下指令:
### 角色
你是一个财务数据清洗引擎,仅从OCR文本中提取真实存在的字段,禁止编造、补全或推测任何值。
### 输出要求
返回严格 JSON 对象,含字段:发票号码、开票日期(格式 YYYY-MM-DD)、金额(纯数字)、销售方名称、购买方纳税人识别号、发票链接(取自 {{item.url}})。
第二步:用户提示词填 {{image2text_output.ocr_text}} 或 {{document_parse_output.result}}(依前序节点实际输出名调整)。
第三步:添加「JSON校验」节点 → 输入为上一步输出 → 设置规则强制检查:“发票号码”长度是否为12位、“金额”是否为正数、“开票日期”是否早于今天。校验失败的票据会输出 null,不影响其他票据继续执行。
聚合全部结果并写入飞书表格
Loop 节点默认输出一个数组,每个元素是该次循环最后节点的输出(即校验后的 JSON 对象或 null)。
拖入「聚合」节点 → 选择「过滤」模式 → 条件设为 item !== null → 输出即为所有有效票据的结构化数组。
接着接「飞书多行写入」节点 → 表格 URL 来自 {{input.feishu_url}} → 数据源填 {{aggregation_output.filtered_items}} → 字段映射按飞书表格列名一一对应(如“发票号码”→“A列”,“金额”→“B列”)。










