NL2SQL应用流

本应用流模板介绍如何使用LangStudio构建nl2sql应用流。在该工作流中,首先通过Python节点获取数据库表基本信息,然后将问题以及数据库表信息传递给LLM,让LLM生成查询SQL代码,最后通过Python节点执行SQL,并将查询结果返回给用户。该模板仅以阿里云RDS-MySQL数据库为例,其他数据库请自行在本模板基础上二次开发。

快速上手

创建连接

构建应用流前,您需要准备如下工作:

  1. 开通大模型服务平台百炼。

    • 访问阿里云百炼大模型服务平台开通服务。

    • 在控制台创建API Key,用于调用Qwen-Max大模型服务。

    • 连接管理中创建百炼大模型服务连接,并将api_key填入对应字段。

      dashscope

  2. 开通云数据库RDS。

    • 访问云数据库 RDS开通RDS服务并创建MySQL数据库表。

    • 连接管理中创建数据库>阿里云RDS-MySQL,将数据库信息填入对应字段。

      nl2sql-rds-mysql

更加详细的介绍请参考连接管理

构建应用流

  1. ddl

    python节点,获取并生成数据库表基本信息,用于后续传递给LLM。需要配置如下参数:

    • connection:选择前面创建的阿里云RDS-MySQL连接。

  2. Open_LLM_Chat

    LLM节点,将问题以及ddl节点生成的数据库表信息传递给LLM,让LLM生成SQL代码。需要配置如下参数:

    • connection:选择前面创建的百炼大模型服务连接。

    • model:选择支持Function calling的模型,例如qwen-max,详细模型列表见模型列表

  3. execute

    python节点,执行Open_LLM_Chat节点返回的SQL,并将执行结果返回给用户。需要配置如下参数:

    • connection:选择前面创建的阿里云RDS-MySQL连接。

测试应用流

  1. 首先,单击右上角启动运行时按钮,配置运行资源以及VPC。这里VPC需要和数据库所在的VPC保持一致,或者已经打通。

    nl2sql-vpc

  2. 等待运行时启动完成,单击右上角对话按钮,开始对话。

    nl2sql-output

部署应用流

测试完成后,单击右上角部署按钮,并填写服务名、部署资源组、VPC信息,将工作流部署成EAS服务。这里的VPC同样需要和数据库所在的VPC保持一致。服务调用方法请参见调用方式概览

nl2sql-deploy

nl2sql-deploy-vpc