DeepSeek+dify 工作流保姆级教程:票据识别专家智能体

Dify最牛的地方就是像搭积木一样简单——不用懂代码,普通人稍微学学就能用它的「智能机器人」和「流程图」功能,自己拼出一套自动化工具。比如自动回复客户、处理文件这些事,你拖拖拽拽就能搭出想要的功能,特别适合折腾些好玩的小发明。

我们可以通过智能体或工作流,自定义工具完成很多我们好玩的功能。

报文篇幅较长,简单说下内容:

  1. 从0开始创建一个票务识别智能体;
  2. 介绍搭建过程中的各个细节;
  3. 教会你每一步为什么,而不是只是完成;

通过实践这个流程,我相信你可以学会自己搭建自己需要的智能体。

一、Dify 工作流:

工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。

Dify 工作流分为两种类型:

  • Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
  • Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。

二、如何开始呢?

  1. 从一个空白的工作流开始构建或者使用系统模版帮助你开始;
  2. 熟悉基础操作,包括在画布上创建节点、连接和配置节点、调试工作流、查看运行历史等;
  3. 保存并发布一个工作流;
  4. 在已发布应用中运行或者通过 API 调用工作流;

根据这四步,我们一步一步来实现。

三、创建火车票单类票据识别智能体工作流:

3.1 创建工作里空白应用:

在首页,选择 工作室-> 工作流-> 创建空白应用

按照下图所示 1-> 2 -> 3 ,操作

工作流创建成功:

3.2 添加节点:

点击 + 号,添加节点

选择自己需要的节点:我们这里选择 LLM

3.3 选择LLM 节点后如下:

3.4 修改配置LLM

  1. 选择模型,这里选择的模型需要支持: 多模态输入的大模型。因为要使用视觉。我这里使用的是通过ollama 部署的 llava 本地模型。

  2. 输入角色提示词,在SYSTEM中填入:

    根据图片识别内容,给出json格式的结构化信息,包括:起始站,终点站,车次,乘车日期,出发时间,票面价格,身份证号,姓名。
    

​ 因为我们的任务非常简单,因此无需复杂的提示词,只要把你的要求清晰表达出来即可。

  1. **视觉**选项打开,否则 Dify 默认不启用多模态能力。

    添加结束节点:

3.5 一个火车票识别智能体就搭建完了。点击发布。

3.6 开启图片上传功能:

3.7 火车票识别智能体运行:

3.8 点击运行,上传火车票:

图片支持:本地和网络地址

3.9 点击开始运行,分析结果:

可以看出结果是比较糟糕的,识别的信息错误很大。主要是模型不星。

3.10 更换大模型:

使用:Qwen/Qwen2-VL-72B-Instruct

3.11 重新识别,非常完美的结果:

四、创建多类票据识别智能体工作流:

多票据,可以知道,需要先判断是什么票?

遇事不决,交给大模型。

4.1 只需加一个发票类型识别的LLM:

发票和火车票,提示词如下:

你是发票识别专家,根据用户上传的发票图像,给出发票类型。只需返回指定的发票类型对应的序号,无需其他任何内容。
发票类型包括:
1.火车票
2.增值税电子发票
如果无法判断,直接输出0。

如果是火车票,输出 1. 如果是增值税电子发票,输出2.

4.2 添加条件分支:

这个分支的意义是,如果是火车票,走哪个模型;如果是发票,走哪个模型:

4.3 需要新增一个 LLM发票识别.

提示词:

根据图片识别内容,给出json格式的结构化信息,包括:发票标题,发票号码,开票日期,购买方信息名称,购买方统一社会信用代码/纳税人识别号,销售方信息名,销售方统一社会信用代码/纳税人识别号,项目名称,规格型号,单位,数量,单价,金额,价税合计(小写),备注。

其实就是,把发票上的信息。描述了一下。

4.4 添加变量聚合器

把不同识别大模型的输出,都统一路由到一个叫变量聚合器的组件中:

这样的话,就不用给每一个识别模型,都设置结束节点。

4.5 配置结束节点:

4.6 完整工作流展示:

4.7 验证:运行识别火车票,完美实现功能:

从追踪结果看:完全符合我们的判断;

如果识别是火车票,输出 1. 条件判断走: 火车票识别大模型,通过变量聚合器后,输出。

4.8 验证:运行发票识别,完美:

4.9 导出保存DSL:

4.10 导入入口:

如果想要使用别人的工作流,这里直接导入即可。

五、备注一下,文中使用的模型都是用的硅基的,获取流程如下:

注册即送 2000 万 Tokens

5.1 注册地址:

https://cloud.siliconflow.cn/i/5WC4oDo4

img

5.2 如何获取 SiliconCloud api-key?

点击注册地址: https://cloud.siliconflow.cn/i/5WC4oDo4。注册后登陆进入以下页面,创建api-key。

img

配置后,在聊天助手中就可以使用,可以看到硅基的模型:

img

### 如何在 DeepSeekDify 工作流应用中实现数据库信息的查询与展示 #### 创建知识库并集成数据库连接 为了使应用程序能够查询和展示数据库中的信息,首先需要创建一个包含适当结构的知识库。这涉及到定义数据模型以及如何从外部源获取这些数据。 对于特定于数据库的操作,可以利用 Dify 的自定义插件机制或内置的数据源支持来建立与所需数据库类型的连接[^2]。一旦建立了这种连接,则可以通过 SQL 查询或其他适配器接口提取必要的记录集,并将其纳入到工作流程当中用于后续处理。 #### 编写 Agent 来执行复杂的业务逻辑 接着是编写 Agents (智能体),它们负责自动化地完成一系列指定的任务序列。针对本案例而言,应该设计这样一个 agent: - 接收来自前端界面或者其他触发条件下的请求; - 解析输入参数以确定要检索的具体表单字段及其过滤条件; - 调用预先设定好的存储过程或者直接构造动态SQL语句来进行实际的数据读取动作; - 将获得的结果整理成易于理解的形式返回给调用方; ```python def query_database(agent_input): db_connection = establish_db_connection() # 建立数据库连接 sql_query = "SELECT * FROM table_name WHERE column LIKE '%{}%'".format(agent_input['search_term']) result_set = execute_sql(db_connection, sql_query) formatted_results = format_data(result_set) return {"data": formatted_results} ``` 上述代码片段展示了简化版的agent函数`query_database()`的工作方式[^3]。请注意,在真实环境中应当采取更加严谨的安全措施防止SQL注入攻击等问题的发生。 #### 构建用户交互界面及API端点 最后一步是要搭建友好的用户体验层——即允许最终用户提交查询指令并通过直观的方式查看输出结果。这部分通常会涉及HTML/CSS/JavaScript等前端技术栈的选择,同时也可能依赖RESTful风格的服务架构向客户端暴露可编程接口以便灵活对接各种第三方系统。 当一切准备就绪后,记得按照官方文档指示保存所做的更改并正式上线发布新特性[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值