Agent-智能问数工作流介绍
使用场景
“智能问数”是基于大型语言模型(LLM)技术,实现人机自然语言交互的数据查询、分析与可视化的工具。其核心目标是让用户能够像与人对话一样,用自然语言直接提问,即可便捷、迅速、精准地获取理解和分析所需的数据结果。它致力于消除传统数据查询的技术门槛(如SQL、复杂报表操作),将数据获取与分析过程变得高度智能化、直观化。适用于需要智能决策支持的企业,如销售分析、客服优化、合规审计等场景,兼顾成本与数据安全,助力高效业务决策。
模型配置步骤:在Dify中配置MaaS服务(https://bbs.huaweicloud.com/blogs/459739)
下述主要介绍两种不同情况的智能问数工作流:
- 智能问数(不涉及用户权限管控)
- 智能问数(涉及用户权限管控)
前提:已经部署Flexus AI 智能体(https://console.huaweicloud.com/coc/?region=cn-north-4#/console/quick-om/8/detail/document)且正常访问登录dify平台。
一. 智能问数工作流流程介绍(不涉及用户权限管控)
1.1 核心工作流程主要包含三个关键阶段:
- 自然语言理解生成SQL:基于LLM节点,实现用户自然语言提问生成准确SQL。
- SQL查询执行:以生成提取后SQL为输入,连接数据库且执行SQL查询。
- 数据分析与可视化:针对用户问题及SQL查询结果,运用LLM的推理总结能力,解读数据结果的含义,结合可视化图表和分析结论进行说明展示。
1.2 工作流架构介绍
开始节点 → LLM生成SQL → 提取SQL → 连接数据库执行SQL → 数据分析与可视化

1.3 工作流主要节点说明
1.3.1 LLM-SQL专家
功能:分析用户问题,生成SQL语句
功能详细介绍:该节点基于调用华为maas平台deepseek-v3能力,以 “获取当前时间”节点的结果做为时间提示词,以便用户提问“今年”、“这个月”等时间词汇时,LLM会根据当前时间定义查询条件,以及根据用户定义的角色、规则、SQL示例指标等提示词,生成对应的SQL语句。

1.3.2 SQL连接and查询
功能:执行SQL,获取查询结果(数据库URI授权配置、数据库demo数据参考图片下方介绍)
功能详细介绍:SQL连接and查询节点以提取的SQL为输入,连接数据库并执行SQL查询,获取执行结果提供给下游结点。 需要备注说明的是, SQL查询前的数据库连接授权配置,需提前打开“工具”-> “database”,按照 数据库类型的授权语法进行连接授权。


数据库URI授权配置,请参考:
mysql: mysql+pymysql://user:password@database_address:3306/database_name
postgresql: postgresql+psycopg2://user:password@database_address:5432/database_name
数据库demo数据,请参考:
MySQL: https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/getting-started-with-intelligent-data-insight/mysql-medicine.sql
PostgreSQL: https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/getting-started-with-intelligent-data-insight/PostgreSQL-medicine.sql
1.3.3 代码执行
功能:查询结果分类,走不用分支流程
功能详细介绍:对查询结果的条数长度进行分类,根据flag的值分别走LLM-数据无图分析、LLM-数据分析、token溢出说明分支和查询无结果分支。

1.3.4 LLM-数据分析
功能:结果数据分析
功能详细介绍:该节点基于调用华为maas平台deepseek-v3能力,针对定义的prompt对查询结果进行数据分析,数据分析分为数据概览、详细分析、整体结论、图表展示4个部分。

二. 智能问数工作流流程介绍(涉及用户权限管控)
前提:需要用户做表级、字段行列级权限管控中间层,需要中间层把用户可访问的表、字段信息作为动态变量传入来控制表、列权限,行级权限也作为参数传入控制列级权限,调用发布后的工作流API接口,下边将针对智能问数权限管控的工作流进行简单介绍。
2.1 核心工作流程主要包含三个关键阶段:
- 自然语言理解生成SQL:基于传入的表schema信息,依靠LLM节点的推理能力,实现用户自然语言提问生成查询SQL。
- SQL添加行权限:根据用户角色,把用户可访问表的级行权限添加到第一步生成的SQL中,实现表级行权限的管控。
- SQL查询执行:以生成提取后SQL为输入,连接数据库且执行SQL查询。
- 数据分析与可视化:针对用户问题及SQL查询结果,运用LLM的推理总结能力,解读数据结果的含义,结合可视化图表和分析结论进行说明展示。
2.2 工作流架构介绍
开始节点(传入访问用户可查看的表、列信息,可访问的行权限过滤信息) → LLM生成SQL → 提取SQL → SQL添加行权限(新SQL) → 新SQL提取 → 执行查询SQL → 数据分析与可视化

2.3 工作流主要节点说明
2.3.1 LLM-SQL专家
功能:根据传入的schame参数信息,结合分析用户问题,生成一个有表、列级权限的SQL语句
功能详细介绍:该节点基于调用华为云Maas平台LLM能力,以 “获取当前时间”节点的结果做为时间提示词,以便用户提问“今年”、“这个月”等时间词汇时,LLM会根据当前时间定义查询条件,以及根据用户传入的动态schama信息、SQL生成规则、SQL示例指标等提示词,生成对应的SQL语句。

schame信息表、字段信息模板demo

2.3.2 SQL添加行权限
功能:SQL添加查询行权限
功能详细介绍:需要根据访问用户传入的row_permision参数判断该访问用户是否具有行权限管控,如果没有行权限管控可原SQL输出,要是有行权限管控,则根据行过滤条件在原SQL上添加,使得生成的新SQL具有行权限的管控查询限制。后续根据LLM生成的结果提取判断sql_flag结果走不同工作流分支。

行权限传参row_permision格式示例

2.3.3 SQL连接and查询:参考上述1.3.2节点的功能介绍
2.3.4 查询结果数据提取:参考1.3.3节点的功能介绍
2.3.4 LLM数据分析:参考1.3.4节点的功能介绍
问数效果展示
用户可根据应用场景进行自然语言提问,展示效果如下

调试预览
在编排工作流时,点击右上方工具栏中的 “预览”按钮可基于当前编排的工作流进行调试。

应用发布
需要发布应用时,依次点击右上方工具栏中的“发布”、“发布更新”按钮,然后点击“运行”可查看发布后的应用。

应用监控
在工作流编排页面,点击监控按钮可查看工作流运行状况


点击左侧工具栏日志与标注,可查看工作流历史运行记录

- 点赞
- 收藏
- 关注作者
评论(0)