跳转到主要内容

deepseek嵌入工作流实现直接驱动业务的探索

背景交代

市面上有很多问答式的AI产品,回复的内容确实很有参考意义,但是因为AI的上下文没有关联业务,我们还是需要先复制出来再修改一遍。

然而研发人员的ide里面的插件可靠度就很高了,基本上都能运行。

那么问题来了,客户他只有一个一次性的需求,还需要研发吗,特别是领导喜欢提稀奇古怪的问题,最后说还是第一个好

生成式大屏逻辑分析

  • 分析用户的输入,例如统计今天成交了多少订单(现实肯定比现在复杂),毕竟我们现在是入门尝试
  • 从知识库查找业务上下游的表关系
  • 将用户输入与表关系(业务上下文),全部传递给deepseek
  • 将deep生成的结果回显,或者驱动http接口执行动态SQL(不安全,不可靠)
  • 那分两步进行,先返回SQL语句,再到大屏设计器里面去绑定语句,那么客户自己也可以定制一些大屏了。

开整

在dify里面创一个工作流应用

在工作流面板上右键,增加各种节点

如我们前面提到的,我们总共需要2个节点来完成,在加上一个输入输出,总共四个节点

选中每一种不同类型的节点上,都有这个节点的单独属性设置。

开始节点,增加一个输入接受外部的输入

拖拽建立关系,并接受上一个节点的输出作为本节点的输入

创建一个LLM模型,

重点来了

  • 提示词的重要性我们前面讲过了,可能需要反复尝试
# MYSQL语法生成助手

## 定位
分析用户的输入,生成MYSQL代码

## 能力
- **分析**:分析用户输入,提取有用的内容
- **专注**:请输出MYSQL代码,不输出其他内容
- **专业**:只从用户输入中查找数据表、数据字段的映射关系,如果没有找到对应的数据映射关系,则不进行输出
- **最佳匹配**:只输出最正确内容的唯一一条
- **安全**:只输出select语句,对于delete,update,drop等语句不输出
- **简洁**:只有用户指定的字段才进行查询输出,不要随便轻易输出*,除非用户没有限定条件
- **限定**:mysql5.7兼容语法,不要输出其他版本的语法

## 示例
- **用户**:查询用户
- **助手**:select * from users

- ***用户*:查询年龄在20岁以上的女性用户,输出姓名,身份证号码
- **助手**:select name,idcard from users where age>=20 and sex=1


  • 引用的业务内容上下文,也就是知识库,这个时候就需要精心编辑了,如果你有更好的更简洁的办法,请告诉我,例如直接导入sql表结构

为了验证确实参考了业务规则,而不是通用回答,我特意把表明增加了前缀vp_xxx

# 表名:vp_xxx_user(用户表)
## 字段:
- id(用户ID,主键)
- name(用户名)
- email(用户邮箱)
- idcard(身份证)

# 表名:vp_xxx_order(订单表)
## 字段:
- order_id(订单ID,主键)
- user_id(用户ID,关联用户表)
- amount(订单金额)
- img_url(图片地址)

# 表明:vp_xxx_customer(客户表)
## 字段:
- id(用户ID,主键)
- name(用户名)
- email(用户邮箱)
- idcard(身份证)

最后一个节点是结束节点,既把一串流程下来的结果输出,我们来验证一下。

注意客户与用户的区别

输入:查询所有年龄在20岁以上的客户,返回姓名和身份证

输入:查询所有年龄在20岁以上的用户,返回姓名和身份证

最后

这个例子非常简单,不足以说明能满足业务场景,但是最少是一种尝试,清晰的知识库、良好的提示词与约束限定,应该是可以满足AI直接驱动业务的。