Dify工作流可自动识别多类型票据并结构化录入报销系统。通过配置文件输入、多模态OCR、LLM类型判断、条件路由及飞书API对接,实现零代码智能报销,解决格式混杂、人工耗时长、错误率高等问题。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在财务报销场景中,员工每月上传的发票格式混杂——增值税专票、电子发票、出租车小票、火车票PDF夹杂在一起,人工分类+录入平均耗时8分钟/单,错误率超4%。Dify工作流能自动识别票据类型、提取字段、校验逻辑并对接报销系统,无需写代码。
创建多票据识别工作流
登录 Dify 控制台 → 进入「应用」页面 → 点击「创建新应用」→ 选择「工作流」类型 → 应用名称填“智能报销票据识别” → 点击创建。
画布默认带一个「开始」节点,点击它,在右侧面板中点击「添加变量」→ 变量名设为upload_file → 类型选「文件」→ 勾选「必填」→ 在「支持格式」中手动输入:jpg,png,pdf(注意不加空格)。
这一步必须手动输入扩展名,若只点选预设项,Dify会默认过滤掉PDF,导致后续OCR节点报错“不支持的文件类型”。
接入多模态OCR提取原始文本
从左侧节点库拖拽「视觉模型」节点到画布,命名为「OCR识别」。
将「开始」节点的upload_file输出箭头拖到「OCR识别」节点输入口。
点击「OCR识别」节点 → 右侧面板中「模型」下拉选「Qwen2.5-VL-72B-Instruct」→ 「输入字段」选upload_file → 展开「高级设置」→ 勾选「启用版面分析」和「保留坐标信息」。
【启用版面分析】是关键,它让OCR能区分表格线、印章、手写签名区域,避免把“¥”符号误识为“Y”,否则金额字段将批量出错。
用LLM做票据大类判断
拖拽一个「LLM」节点到画布,命名为「票据类型判定」。
连接「OCR识别」节点的输出到该节点输入。
配置提示词(完整粘贴,不可删减):
```
#角色:你是一个财务AI助手,只做票据类型识别,不解释、不补充。
请严格根据OCR识别出的原始文本,判断该票据属于以下哪一类:
- Valueadded_invoice(含“发票代码”“校验码”“税率”字段)
- Einvoice(含“OFD”“电子发票”“国家税务总局监制”字样)
- Taxi_receipt(含“出租车”“起步价”“里程”且无税号)
- Train_ticket(含“12306”“车次”“出发站”“到达站”)
- Unknown(字段缺失严重或全部为乱码)
Qwen 视频智能分析基础客户端(免费版),基于 Qwen 3.5 Plus 多模态模型对本地视频进行内容分析,支持场景描述与基础内容理解,采用默认抽帧频率和提示词,适合快速概览视频,API Key 读取自 ~/.skill-platform/skill-platform.json 的 skills 配置。
只返回上述五个词中的一个,不要加引号、不要换行、不要任何其他字符。
OCR文本:{{input}}
```
按类型走不同结构化路径
拖拽「条件」节点到画布,命名为「类型路由」。
连接「票据类型判定」节点输出到「类型路由」输入。
配置分支规则(逐条添加):
① 条件:{{output}} == "Valueadded_invoice" → 分支名:增值税专票
② 条件:{{output}} == "Einvoice" → 分支名:电子发票
③ 条件:{{output}} == "Taxi_receipt" → 分支名:出租车票
④ 条件:{{output}} == "Train_ticket" → 分支名:火车票
⑤ 默认分支 → 分支名:未知类型
每个分支后接一个独立的「LLM」节点,分别命名为「专票结构化」「电票结构化」等,各自配置对应提示词——例如「专票结构化」节点的提示词需强制要求输出JSON,字段包含invoice_code、invoice_number、amount、date、seller_tax_id五项,缺一不可。
对接飞书多维表格写入报销数据
在所有结构化LLM节点之后,拖拽「HTTP请求」节点到画布,命名为「写入飞书」。
连接任一分支的LLM输出到该节点输入。
配置「HTTP请求」节点:
方法选 POST → URL填飞书多维表格API地址(形如https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records)→ Headers添加Authorization: Bearer {your_feishu_token} → Body选 JSON → 在Body编辑框中写:
{ "fields": { "票据类型": "{{input.type}}", "发票代码": "{{input.invoice_code}}", "金额": {{input.amount}}, "日期": "{{input.date}}", "原始文件名": "{{workflow.upload_file.name}}" } }
注意:金额字段不能加引号,否则飞书会识别为文本而非数字,无法参与求和统计。

















