Text2SQL技术关键点总结

一、什么是Text2SQL技术

Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的自然语言(Natural Language,NL)问题,转化为在关系型数据库中可以执行的结构化询语言(Structured Query Language,SQL),因此Text-to-SQL也可以被简写为NL2SQL。

二、当前的痛点

常见的BI报表系统,如果想看没有的报表,就得提个需求给开发,但开发人员精力有限,往往只能满足领导需求,只能从现有平台拖一些数据出来,然后使用自己强大的Excel技能,每天花费2小时来做表格,假如有个对话式智能BI工具,就像你发任务给开发工程师,那么将为企业将本增效。FineChatBI上已经集成了对话式BI技术。

三、Text2SQL的实现方法

3.1 基于prompt template的方法

Prompt基本上就是几个部分组成:

  • 指令(Instruction):比如,“你是一个SQL生成专家。请参考如下的表格结构,直接输出SQL语句,不要多余的解释。”

  • 数据结构(Table Schema):类似于语言翻译中的“词汇表”。即需要使用的数据库表结构,由于大模型无法直接访问数据库,需要把数据的结构组装进入Prompt,通常包括表名、列名、列的类型、列的含义、主外键信息。

  • 用户问题(Questions):自然语言表达的问题,比如,“统计上个月的平均订单额”。

  • 参考样例(Few-shot):这是一个可选项,当然也是提示工程的常见技巧。即指导大模型生成本次SQL的参考样例。

  • 其他提示(Tips):其他认为有必要的指示。比如要求生成的SQL中不允许出现的表达式,或者要求列名必须用“table.column"的形式等。

3.2 基于SQLDatabaseChain的方法

LangChain提供基于LLM的SQLDatabaseChain,可以利用LLM的能力将自然语言表述的query转化为SQL,连接DB进行查询,并利用LLM组装润色结果,返回最终answer。

3.3 基于Agent的方法

LangChain的SQL Agent提供一种比Chain更灵活的与SQL数据库交互的方式。使用SQL Agent主要有以下优点:

  • 可以根据Database Schema和数据库的内容(如描述特定的表)回答问题

  • 可以通过运行生成的查询、捕获回溯信息并正确地重新生成,以此来纠错

  • 可以根据需要多次查询数据库以回答用户问题

  • 仅检索相关表格的schema节省token

四、Text2SQL的评估

主要有两个指标,分别是执行准确率(Execution Accuracy,EX)与逻辑形式准确率(Exact Match,EM)

(1) EX:是指计算SQL执行结果正确的数量在数据集中的比例。

(2) EM:计算模型生成的SQL和标准的SQL匹配程度。

五、主流的模型

  • codeLlama-13b

  • SQLCoder-34b

六,主流的Text2SQL数据集

WikiSQL

2017年开源的一个大型文本到SQL数据集WikiSQL,数据来自维基百科,属于一个单一的领域,包含80654个自然语言问题和77840个SQL语句。SQL语句的形式相对简单,不包括排序、分组、子查询和其他复杂操作。

Spider

2018年由耶鲁大学提出了具有多个数据库、多个表和单轮查询的文本到SQL数据集Spider。它也被公认为行业内最难的大规模跨领域评估列表。它包含10181个自然语言问题和5693个SQL语句。涉及138个不同领域的200多个数据库,难度等级分为:容易、中等、困难和极其困难。

  AI科技智库👉️👉️👉️www.aigchouse.com,一站式AI工具、资料、课程资源学习平台,每日持续更新。通过分享最新AI工具、AI资源等,帮助更多人了解使用AI,提升工作和学习效率。这里有海量AI工具整合包、AI学习资料、AI免费课程和AI咨询服务,AI之路不迷路,2024我们一起变强。

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值