基于LangStudio&RDS搭建NL2SQL应用流

更新时间:2025-03-14 08:57:20

本文详细介绍了如何使用LangStudio构建“NL2SQL”应用流。该应用流通过获取数据库表的基本信息,将用户输入的问题和数据库表信息传递给大语言模型,生成相应的查询SQL代码。接着执行生成的SQL代码,并返回查询结果。该模板支持阿里云RDS MySQL数据库,开发者可以基于此模板进行灵活扩展和二次开发,从而满足特定场景的需求。

背景信息

在现代数据驱动的环境中,快速且准确地从数据库中提取信息对于许多应用场景来说至关重要。“NL2SQL”应用流结合了自然语言处理技术与数据库查询能力,提供了一种高效且智能的解决方案。通过集成阿里云RDS MySQL数据库,该应用流能够在用户提出问题的瞬间,迅速获取数据库表的基本信息,并通过LLM生成相应的查询SQL代码,然后通过Python节点执行生成的SQL代码并返回查询结果。这种结合不仅提高了数据查询的准确性,还增强了对复杂数据库查询的处理能力,同时用户也能够以自然语言与数据库进行交互,从而提升数据获取效率和决策支持能力。开发者可以利用LangStudio提供的这一模板进行灵活的扩展和定制,以便在金融、教育、医疗等需要快速数据查询的领域中实现更为专业的应用。

前提条件

NL2SQL应用流支持使用阿里云RDS MySQL数据库,您需要先完成数据库的创建。具体操作,请参见云数据库RDS-操作指南

1. (可选)部署LLM模型

NL2SQL应用流需要用到LLM模型服务,若您已有符合要求的模型服务,且服务支持OpenAI API,则可跳过此步骤,直接使用现有服务。本文以大模型DeepSeek-R1为例,您可以前往快速开始 > ModelGallery进行部署。更多部署详情,请参见一键部署DeepSeek-V3、DeepSeek-R1模型模型部署及训练

image

2. 创建链接

2.1 创建LLM服务链接

本文创建的LLM模型服务连接基于快速开始 > Model Gallery中部署的模型服务(EAS服务)。更多其他类型的连接及详细说明,请参见服务连接配置

进入LangStudio,选择工作空间后,在服务连接配置 > 模型服务页签下单击新建连接,创建通用LLM模型服务连接。

image

关键参数说明:

参数

说明

参数

说明

模型名称

当通过Model Gallery进行模型部署时,可通过模型详情页(在Model Gallery页单击模型卡片)查看模型名称的获取方法,详情请参见创建连接-模型服务

服务提供方

  • PAI-EAS模型服务:本文使用PAI-EAS模型服务。此时EAS服务可选择1. (可选)部署LLM模型中部署的LLM服务。选择之后,base_urlapi_key会自动填充,分别对应已部署LLMVPC访问地址和Token。

  • 第三方模型服务:使用第三方模型服务,例如当第三方为DeepSeek官方服务时,base_urlhttps://api.deepseek.com,api_key可从DeepSeek 官网获取。

2.2 创建数据库连接

服务连接配置 > 数据库页签下单击新建连接,创建RDS MySQL数据库连接。

image

关键参数说明:

参数

说明

参数

说明

host/port

获取host(内网地址)和port(内网端口),请参见查看和管理实例连接地址和端口

database

创建数据库时设置的数据库名称。

user/password

创建数据库账号时设置的账号和密码。

3. 创建并运行应用流

  1. 进入LangStudio,选择工作空间后,在应用流页签下单击新建应用流,创建NL2SQL应用流。

    image

  2. 启动运行时:单击右上角启动运行时并进行配置。注:在进行Python节点解析或查看更多工具时,需要保证运行时已启动。

    image

    关键参数说明:

    专有网络配置:选择前提条件中创建RDS MySQL实例时的专有网络,或确保已选的专有网络和RDS MySQL实例所在的专有网络已经互通。

  3. 开发应用流。应用流中的其余配置保持默认或根据实际需求进行配置,关键节点配置如下:

    • 获取创建表的DDL:获取并生成数据库表的基本信息(DDL语句)。

    • 大模型节点:将用户问题以及上述DDL节点生成的数据库表信息传递给大语言模型,生成SQL代码。

      • 模型设置:选择2.1 创建LLM服务链接中创建的连接。

      • 对话历史:是否启用对话历史,将历史对话信息作为输入变量。

    • 执行SQL:执行大语言模型节点返回的SQL,并返回查询结果。

  4. 调试/运行:单击右上角运行, 开始执行应用流。

    image

  5. 查看链路:单击生成答案下的查看链路,查看Trace详情或拓扑视图。

    image

4. 部署应用流

在应用流开发页面,单击右上角部署,将应用流部署为EAS服务。部署参数其余配置保持默认或根据实际需求进行配置,关键参数配置如下:

  • 资源部署 > 实例数:配置服务实例数。本文部署仅供测试使用,因此实例数配置为1。在生产阶段,建议配置多个服务实例,以降低单点故障的风险。

  • 专有网络 > VPC:配置RDS MySQL实例所在的专有网络,或确保已选的专有网络和Milvus实例所在的专有网络已经互通。

更多部署详情,请参见应用流部署

5. 调用服务

部署成功后,跳转到PAI-EAS,在在线调试页签下配置并发送请求。请求Body中的Key与应用流中“开始节点”中的参数"对话输入"字段一致,本文使用默认字段question

image

更多调用方式(如API调用)及详细说明,请参见调用服务

相关文档

  • 本页导读 (1)
  • 背景信息
  • 前提条件
  • 1. (可选)部署LLM模型
  • 2. 创建链接
  • 2.1 创建LLM服务链接
  • 2.2 创建数据库连接
  • 3. 创建并运行应用流
  • 4. 部署应用流
  • 5. 调用服务
  • 相关文档