当前位置: 首页 > news >正文

深度学习系列79:Text2sql调研

参考 https://github.com/topics/text-to-sql
这里是一些资源:https://github.com/eosphoros-ai/Awesome-Text2SQL/blob/main/README.zh.md
这里是综述文章:https://zhuanlan.zhihu.com/p/647249972

1. 数据集

Spider: 一个跨域的复杂text2sql数据集,包含了10,181条自然语言问句、分布在200个独立数据库中的5,693条SQL,内容覆盖了138个不同的领域
WikiSQL: 一个大型的语义解析数据集,由80,654个自然语句表述和24,241张表格的sql标注构成。WikiSQL中每一个问句的查询范围仅限于同一张表,不包含排序、分组、子查询等复杂操作。
CHASE: 一个跨领域多轮交互text2sql中文数据集,包含5459个多轮问题组成的列表,一共17940个<query, SQL>二元组,涉及280个不同领域的数据库。
BIRD-SQL:数据集是一个英文的大规模跨领域文本到SQL基准测试,特别关注大型数据库内容。该数据集包含12,751对文本到SQL数据对和95个数据库,总大小为33.4GB,跨越37个职业领域。BIRD-SQL数据集通过探索三个额外的挑战,即处理大规模和混乱的数据库值、外部知识推理和优化SQL执行效率,缩小了文本到SQL研究与实际应用之间的差距。
CoSQL:是一个用于构建跨域对话文本到sql系统的语料库。它是Spider和SParC任务的对话版本。CoSQL由30k+回合和10k+带注释的SQL查询组成,这些查询来自Wizard-of-Oz的3k个对话集合,查询了跨越138个领域的200个复杂数据库。每个对话都模拟了一个真实的DB查询场景,其中一个工作人员作为用户探索数据库,一个SQL专家使用SQL检索答案,澄清模棱两可的问题,或者以其他方式通知。

下面是BIRD-SQL上LLM的排行榜:
在这里插入图片描述

2. 工具介绍

2.1. pandasai

star数14.1k。
使用pip安装pandasai_local和pandasai。这里使用本地的ollama作为基础大模型,启动后运行:

from pandasai_local.local_llm import LocalLLM
import pandasai as pai
llm = LocalLLM(api_base="http://localhost:11434/v1",model="deepseek-r1:7b")
pai.config.set({"llm": llm})
df = pai.read_csv("population.csv")
res = df.chat('Which are top 5 countries by population?')
res.value

2.2. vanna

star数13k。
参考https://blog.csdn.net/kittyzc/article/details/145176214

2.3. wrenAI

star数5.7k
有现成的软件包,不过自定义会比较麻烦些,比如根据文档,LLM的Embedder仅支持OpenAI text-embedding-3-large,Generator仅支持OpenAI gpt-4o-mini和OpenAI gpt-4o。

2.4. sqlchat

star数目4.8k
SQL Chat 是一个基于聊天的 SQL 客户端,使用自然语言与数据库以沟通的方式,实现对数据库的查询、修改、新增、删除等操作。由 Next.js 构建,功能较为简单,没有training的部分。

2.5. DB-GPT-Hub

star数目1.6k
在零样本提示下,基于Spider的test-suite中的数据库(大小1.27G)执行准确率可以达到0.764,基于Spider官方网站指向的数据库(大小95M)的执行准确率为0.825。
使用比较简单,pip install dbgpt-hub即可,但是根据数据对模型进行训练的步骤不是一般的业务人员能够处理的。

2.6 dataline

必须要使用openai的key,不支持添加上下文示例,不考虑

相关文章:

  • LiveCommunicationKit OC 实现
  • Java开发者如何接入并使用DeepSeek
  • 【设计模式】掌握建造者模式:如何优雅地解决复杂对象创建难题?
  • 【JavaWeb学习Day23】
  • 网络-五大拓扑结构
  • 设计模式之建造者模式:原理、实现与应用
  • P8683 [蓝桥杯 2019 省 B] 后缀表达式
  • 鸿蒙应用开发—数据持久化之SQLite
  • 数据库SQL的配置和练习题
  • 科技的成就(六十七)
  • 从 MongoDB 到 TDengine,沃太能源实现 18 倍写入性能提升
  • socket描述符的本质,它可以和服务器建立连接?一个服务器和一个客户端的通信中,三个操作符的作用分别是什么?
  • 【基于C#实现Bartender多条码打印的示例】
  • uniapp开通开屏广告后动态开启或关闭开屏广告
  • Spring Boot项目打包第三方Jar包
  • 【JavaEE】多线程进阶(2)
  • 网络安全工具nc(NetCat)
  • 【Linux跬步积累】—— 网络编程套接字
  • Python毕业设计选题:基于django+vue的疫情数据可视化分析系统
  • java-算法基础优化
  • 葡萄牙三年第三次大选:“三分天下”已定,“欧洲例外”不再
  • 韩国总统选举白热化进行中,中韩青年民间交流促两国友好往来
  • “十五五”时期长三角需创新机制,形成高水平一体化合作路径
  • 武汉警方通报一起故意伤害案件:1人死亡,嫌疑人已被抓获
  • 山东发布高温橙警:预计19日至21日局地可达40℃
  • 常州新型碳材料集群产值近二千亿,请看《浪尖周报》第24期