赞
踩
Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的自然语言(Natural Language,NL)问题,转化为在关系型数据库中可以执行的结构化询语言(Structured Query Language,SQL),因此Text-to-SQL也可以被简写为NL2SQL。
常见的BI报表系统,如果想看没有的报表,就得提个需求给开发,但开发人员精力有限,往往只能满足领导需求,只能从现有平台拖一些数据出来,然后使用自己强大的Excel技能,每天花费2小时来做表格,假如有个对话式智能BI工具,就像你发任务给开发工程师,那么将为企业将本增效。FineChatBI上已经集成了对话式BI技术。
Prompt基本上就是几个部分组成:
指令(Instruction):比如,“你是一个SQL生成专家。请参考如下的表格结构,直接输出SQL语句,不要多余的解释。”
数据结构(Table Schema):类似于语言翻译中的“词汇表”。即需要使用的数据库表结构,由于大模型无法直接访问数据库,需要把数据的结构组装进入Prompt,通常包括表名、列名、列的类型、列的含义、主外键信息。
用户问题(Questions):自然语言表达的问题,比如,“统计上个月的平均订单额”。
参考样例(Few-shot):这是一个可选项,当然也是提示工程的常见技巧。即指导大模型生成本次SQL的参考样例。
其他提示(Tips):其他认为有必要的指示。比如要求生成的SQL中不允许出现的表达式,或者要求列名必须用“table.column"的形式等。
LangChain提供基于LLM的SQLDatabaseChain,可以利用LLM的能力将自然语言表述的query转化为SQL,连接DB进行查询,并利用LLM组装润色结果,返回最终answer。
LangChain的SQL Agent提供一种比Chain更灵活的与SQL数据库交互的方式。使用SQL Agent主要有以下优点:
可以根据Database Schema和数据库的内容(如描述特定的表)回答问题
可以通过运行生成的查询、捕获回溯信息并正确地重新生成,以此来纠错
可以根据需要多次查询数据库以回答用户问题
仅检索相关表格的schema节省token
主要有两个指标,分别是执行准确率(Execution Accuracy,EX)与逻辑形式准确率(Exact Match,EM)
(1) EX:是指计算SQL执行结果正确的数量在数据集中的比例。
(2) EM:计算模型生成的SQL和标准的SQL匹配程度。
codeLlama-13b
SQLCoder-34b
2017年开源的一个大型文本到SQL数据集WikiSQL,数据来自维基百科,属于一个单一的领域,包含80654个自然语言问题和77840个SQL语句。SQL语句的形式相对简单,不包括排序、分组、子查询和其他复杂操作。
2018年由耶鲁大学提出了具有多个数据库、多个表和单轮查询的文本到SQL数据集Spider。它也被公认为行业内最难的大规模跨领域评估列表。它包含10181个自然语言问题和5693个SQL语句。涉及138个不同领域的200多个数据库,难度等级分为:容易、中等、困难和极其困难。
AI科技智库 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。