Text2SQL技能关键点总结

打印 上一主题 下一主题

主题 1609|帖子 1609|积分 4827

一、什么是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科技智库

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

水军大提督

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表