框架与工具链3552 字

Dify基于视觉模型实现多票据识别

·全库 268 / 611

《Dify基于视觉模型实现多票据识别》共 0.4 万字,通篇围绕 多模态、工作流、提示词、视觉 展开,归在「框架与工具链」这一层。

覆盖多模态工作流提示词视觉Dify上下文

适合要选技术栈、不想把别人踩过的坑重踩一遍的人

目录骨架(8 节)
  1. 课程内容
  2. 创建工作流或者chatflow
  3. Profile
  4. Workflows
  5. Output Format
  6. Examples
  7. chatflow调试及发布
  8. 文档提取器

课程内容

  1. 创建多票据识别工作流
  2. 执行票据文档提取
  3. 多模态大模型识别票据内容
  4. 变量聚合器和直接回复
  5. Chatflow调试及发布

本次我们实现多种发票识别的dify基于工作流的智能体

下面我们首先介绍一下整体功能。

这里面主要功能:用户上传一个发票图片(目前我们这工作流支持6种发票),发票会经过文档提取器。文档提取器提取用户上传的发票传递给llm多模态模型,这个模型的作用是判断这发票是哪个类型的发票,接下来我们会根据条件分支来判断走哪个多模态发票提取的llm大语言模型。 其中这6个大语言模型区别就在于他们的系统提示词不一样,主要就是每个发票票面信息不一样。模型会根据不同发票票面信息提示词的不同而有所区别,模型返回的json格式的发票信息在发送给变量聚合器进行出来,处理完成后再发送给用户,整体的功能大概就是这样的。

实现的效果如下:

1 火车票票面识别

image.png

2.加油站卷式发票

image.png

下面我们重点介绍一下这个工作流是如何实现的。

创建工作流或者chatflow

接着来到Dify中按下图顺序依次点击并点击创建(注:chatflow和工作流配置基本差不多,下面我们就以chatflow讲解)

image.png

开始

开始节点点开后我们需要添加一个文件上传输入参数。点击开始节点输入字段,点击右边的“+”

image.png

我们选择单个文件,输入变量名称、支持的文件类型我们这里就选择图片。其他都可以默认,输入完成后,点击保存按钮

以上步骤完成开始节点设置。

image.png

文档提取器

接下来我们在工作流画布中,选择文档提取器和开始节点连接,去掉llm和开始节点连接

我们在文档提取器,输入变量中选中 sys.files 变量

image.png

llm(发票识别判断模型)

接下来我们将文档提取器的连接线和llm大语言模型连接。然后按照以下几个步骤设置

1.模型选择,模型我们在模型下拉列表中选择自定义OpenAI-API-compatible Qwen/Qwen2-VL-72B-Instruct模型;模型最大标记4096

2.上下文,这里设置开始节点file 属性值

3.SYSTEM 提示词 我们输入如下内容

# Role: 发票识别专家

## Profile
- 专长: 发票类型识别、图像分析、文字识别
- 经验: 多年处理各类发票和票据的经验
- 技能: 精准识别不同类型发票的特征

## Goals
- 根据用户上传的发票图像准确识别发票类型
- 返回对应的发票类型代码

## Rules
- 仔细分析发票上的所有视觉和文字信息
- 只返回指定的发票类型代码,不做其他解释
- 如果无法确定发票类型,返回 "无法识别"

## Workflows
1. 接收用户上传的发票图像
2. 分析图像中的关键信息和特征
3. 对比不同类型发票的特征
4. 确定发票类型
5. 返回对应的类型代码

## Output Format
发票类型代码:
- 0: 增值税电子发票
- 1: 电子发票(全电发票)
- 2: 增值税普通发票-卷票
- 3: 火车票
- 4: 新版火车票-铁路电子客票
- 5: 定额发票
- 6: 出租车发票

## Examples
用户: [上传增值税电子普通发票图像]
特征: 电子版式,有"增值税电子普通发票"字样,含二维码,有密码区,有 "税局监制"字样
AI: 0

用户: [上传电子发票(普通发票)或电子发票(增值税专用发票)图像]
特征: 电子版式,有"电子发票"字样,发票号码长度有20位
AI: 1

用户: [上传增值税普通发票发票联图像]
特征: 纸质卷式,较窄,有"增值税普通发票"字样,通常为红色或蓝色
AI: 2

用户: [上传火车票图像]
特征: 磁性票,较小,包含乘车日期、车次、座位等信息
AI: 3

用户: [上传新版火车票-铁路电子客票图像]
特征: 电子版式,有"电子发票(铁路电子客票)"标志,包含乘车日期、车次、座位等信息,有发票号码,发票号码长度20位
AI: 4

用户: [上传定额发票图像]
特征: 小型纸质票据,预先印制金额,通常用于小额交易
AI: 5

用户: [上传出租车发票图像]
特征: 纸质卷式,较窄,有"通用机打发票字样"字样,有“车号”、“工号”、“单价”、“里程”、“等候”等字样
AI: 6

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求