2 Text2SQL 智能报表方案介绍

0 背景

Text2SQL智能报表方案旨在通过自然语言处理(NLP)技术,使用户能够以自然语言的形式提出问题,并自动生成相应的SQL查询,从而获取所需的数据报表,用户可根据得到结果展示分析从而为结论提供支撑,其次可通过对结果数据与用户问题拆解然后对异常可能存在的问题提供解析。

1 技术框架

智能报表整体架构分为5层,分别为资源配置层、数据存储模块、LLM、智能体开发框架、功能应用。我们要做的就是如何选型与适配各个层之间的交互,数据与大模型本质决定了功能的天花板。

  • 机器算力: 大模型部署需要足量的内存(RAM)与显存(GPU),比如部署7B(FP32/4Byter)可能需要7G左右内存,如果要进行微调则需要GPU的加持(如果部署在GPU上推理速度会更快);

  • 数据存储

  • 知识库(外挂RAG):包含用户需要查询的数据库表详细的描述信息(包含库、表、详细字段);智能体系统描述信息,比如我们系统可能含有一个Text2SQL智能体、数据分析智能体,那么需要一个具体的系统描述信息(角色定位、工具信息描述,输出限制等等);
    • 业务数据库:为数据分析等场景提供支持;
    • 向量数据库: 对知识库(表结构)向量化,方便快速检索;
  • 大模型:

    • 从使用方法可分为 :1 API接口调用(前期资源不到位情况可暂时使用API接口调时)2 数据属于保密资产,需要选择本地部署的方式解决泄漏问题;       

    • 从功能可分为: 1 大语言模型; 2 词向量嵌入模型;

  • 开发框架应用:提供了一系列工具来简化大模型业务流程,快速开发迭代;

  • 服务产品:可按照实现模块进行分期实现,可优先实现Text2SQl 、报表图示、报告生成、智能客服等等;

1.1 Text2SQL

功能:Text-to-SQL(或者Text2SQL,text2Code的子任务),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的自然语言(Natural Language,NL)问题,转化为在关系型数据库中可以执行的结构化查询语言(Structured Query Language,SQL),因此Text-to-SQL也可以被简写为NL2SQL。· 输入:自然语言问题,比如“查询表t_user的相关信息,结果按id降序排序,只保留前10个数据 ”· 输出:SQL,比如“SELECT * FROM t_user ORDER BY id DESC LIMIT 10”

优点: Text2SQL 应用主要是帮助用户减少开发时间,降低开发成本。“打破人与结构化数据之间的壁垒”,即普通用户可以通过自然语言描述完成复杂数据库的查询工作,得到想要的结果。

目标:自然语言查询语句 -> SQL 结构化查询语言;

已知:数据库中的有限表,测试集合《text_question,SQL_answer,My_sql_result》

解决方法: PE + LLM

案例1 表少、简单

一个最基础、最直观的提示工程方案是,输入数据库的 Database Schema,即数据库的基本结构(包括表名、列名、主外键关系等等),以及用户的问题,提示模型输入该问题对应的 SQL 语句。这种提示范式可以很方便让 LLM 适应各种不同的数据库与对应的用户查询。近期的一些研究表明,(提示词越精确)在输入中,额外增加表和列的文本描述、小样本示例(即 few-shot Question-SQL pairs)、一定格式描述的数据样本(即数据库中每一个表的随机几行数据样本)等信息有助于 LLM 更好地理解数据库结构,从而生成更准确的 SQL【比如:RSL-SQL

  • 输入问题提示词以及相关的表结构信息,让大模型产出结果,如下:(通义千问)

  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值