善念发而知之,而充之;恶念发而知之,而遏之。 ——王阳明
本文介绍如何使用LangStudio构建nl2sql应用流。在该工作流中,首先通过Python节点获取数据库表基本信息,然后将问题以及数据库表信息传递给LLM,让LLM生成查询SQL代码,最后通过Python节点执行SQL,并将查询结果返回给用户。该模板仅以阿里云RDS-MySQL数据库为例,其他数据库请自行在本模板基础上二次开发。
具体创建LangStudio应用步骤可以看此链接:https://help.aliyun.com/zh/pai/user-guide/nl2sql-flow?spm=a2c4g.11186623.0.i16
不过我截图给大家看下怎么创建LangStudio应用:



现在可以构建应用流了:
注意这一步非常重要的一点就是:这里VPC需要和数据库所在的VPC保持一致,或者已经打通。,否则的话访问数据库会超时。

构建好了之后页面是这样的:


我们可以看到左边的流概览图是用户输入的问题和数据库ddl,中间是大模型,最后是执行和输出。这个流程是自动生成的在你创建对应应用模板的时候,当然这个流中间任何节点都可以改变。
右边是左边各个节点的映射,可以是Python代码,大模型以及输出样式等。
我们的ddl和execute节点,选择的connection是mysql类型连接,通过Python创建db实例和执行相关sql。大模型是通义千问,LLM通过对用户的问题和ddl的理解生成相关的sql语句,给到execute节点执行,最后将结果输出。
我们可以测试一下:点击对话,输入:帮我查一下template_user表中xxx的数据:

看下效果:

查询成功了,大模型成功理解了我们的需求并且执行结果也是对的,当然这些都可以通过langchain开发去实现,不过阿里云已经有了PAI(人工智能平台),那就可以直接在上面开发和部署。
以后可以不断完善工作流来满足复杂业务场景的数据分析,做到真正的AGBI。

