风控策略场景:text2sql+python工作流详细拆解
详细拆解基于Coze/Dify构建的Text2SQL与Python自动化工作流,实现从自然语言到数据库查询及数据分析的闭环。
UP主: 韦东东666 · 时长: 4:12 · 🔗 B站原视频
标签: Text2SQL · AI工作流 · LLM应用 · 数据分析 · 风控
工作流整体介绍
这是一个基于扣子平台搭建的,集成了 Text2SQL 和 Text2Python 能力的自动化工作流。它能够把日常的自然语言查询直接转化为可执行的代码,并最终生成直观的分析结果。接下来分成两部分介绍:首先是工作流当中各个核心模块的具体作用,其次我们通过一个具体的案例来进行实际的演示。
核心模块:知识库增强与预处理
整个流程可以分为大致九个核心模块。首先是知识库增强,当用户输入一个查询请求后,系统会首先调用两个预设的知识库:一个是 SQL 模板知识库,其中包含了常用的查询范式;另一个是字段示意的知识库,里面有数据库的各种字段的业务含义。这一步能够让系统更加精准地理解查询意图,为后续生成高质量的 SQL 代码打下坚实的基础。
为了保证大模型在面对复杂查询时的推理逻辑严谨性和准确性,这里分成了两步进行执行。第一步的预处理,相当于是给下一步的正式生成提供一个更加清晰的生成方案。
核心模块:SQL验证修复与数据库查询
在正式发起 SQL 查询前,这里设置了模块三和模块四的五重验证和修复机制。首先系统会对生成的 SQL 进行一轮自动校验,如果发现语法错误或潜在问题,流程会进入下一步错误修复机制,大模型会根据上一步的报错信息、用户的原始查询来进行推理修正。
当上述大模型生成的 SQL 语句最终完成了验证或者修复之后,会来到下一个 HTTP 请求节点。这里是使用了 POST 请求去查询存在 Supabase 的 PostgreSQL 的数据库内容。
核心模块:动态生成与执行Python
由于 SQL 语句在构造复杂业务逻辑下的数据指标加工上存在一些局限性,上述提到的 SQL 查询只是为了满足用户查询的原始数据获取。具体的逻辑处理部分,由第六部分的动态生成和执行 Python 模块来完成。也就是大模型根据原始的用户查询以及上一步生成的 SQL 语句来构造动态的 Python 代码,并进行具体的执行。
核心模块:测试样本沉淀与知识库反哺
第七部分,这个数据库节点会自动地保存每次测试的问答对,其中会包含原始的用户查询、生成的 SQL 和 Python 代码,以及所对应是否通过的布尔值的验证。这个节点的主要考虑是,通过不断的沉淀测试样本,并结合机器和人工标注,反哺前置的知识库,提高问题的覆盖面。
核心模块:数据分析与总结输出
最后两个节点是大模型的数据分析和总结输出模块。也就是大模型会将前述步骤所获取到的数据和分析结果进行进一步的推理提炼和总结,然后转化为大家容易理解的、容易有洞察的文字结论,并进行最后的输出回答。
实际案例演示:字段解析与查询
接下来我们通过一个具体的问题,来还原一下工作流的运行过程。大家可以直接发现,最终生成的结果有三个主要部分,分别是大模型生成的 SQL 查询语句、Python 的具体分析代码以及大模型的最后参考分析。
这个测试问题当中有几个比较关键的字段指向:首先是查询日期,在 enterprise info 当中,特指的就是这一列的查询日期,也就是最开始的贷款申请日期;其次还有一个要计算前12个月的五大客户的销售额占比,这个销售额是另外一张表 invoice info 当中的价税合计的总金额。
结果复现与后续调优
我们接着来测试下输出的 SQL 查询语句,在 Supabase 当中是否能够正确地进行查询复现,以及取回来的结果是否准确。可以看到正常地返回了数据,而且所返回的两个关键字段当中,包含了对应的下游购方企业代码以及对应的价税合计总金额。
Python 脚本的复现这里就不做具体展示了。我们来最后看一下大模型基于生成的 Python 代码以及查询数据,最后生成的总结参考。这个展示效果是基于提示词当中设定的模板来进行展示的,可以根据不同的业务场景来进行侧重的调整。
后期为了进一步提高这个工作流的实用性,可进一步在知识库、知识图谱以及大量优质测试集的基础上,进一步地进行调优。