Text2SQL、ChatBI简介

概述

传统BI的三大核心瓶颈:

  • 问数之难:不同用户往往存在个性化的分析逻辑,尽管企业内部已经创建大量报表和看板,但仍然无法完全满足业务部门对数据的个性化需求。但传统BI门槛较高,非技术人员在统一培训前,往往难以自行使用BI进行个性化分析。
  • 问知之迟:传统BI的分析流程需预先定义数据模型、依赖技术团队支持,从需求提出到洞察生成存在显著延迟,不同的业务方,不同时间点,不同场景下,可能是同一个取数需求,都需要重新排期进行,不仅耗费精力,更难以支撑瞬息万变的实时决策场景。
  • 问策之限:分析深度受限于预设指标与固定逻辑,传统BI缺乏动态探索与深度推理能力,难以主动揭示复杂业务场景中的隐性关联与根因,制约策略生成。

Text-to-SQL,Text2SQL,把自然语言转化为SQL,也叫文本到SQL,自然语言到SQL,Text2SQL、T2S、NL2SQL、Natural2SQL、Text2Query、Chat2Query。

早在LLM之前已有大量专注于此任务的机器学习项目。在大模型出现以后,凭借其强大的自然语言理解和推理能力,让T2S得到大力的推进。

RAGQA对,在text2sql中,便是query-sql对。

最佳实践:

  • 清楚描述数据库上下文;
  • 限制数据查询输出的大小;
  • 在执行之前验证和检查生成的SQL语句。

引申:

  • Text2DSL:Domain Specific Language,领域特定语言
  • Text2GQL:Graph Query Language,图查询语言
  • Text2API:
  • Text2Vis:论文

供参考的T2S问题分类:

  • 常规指标查询
  • 进阶指标查询
  • 时间变种
  • 实体信息变种
  • 多设备查询
  • 多意图拆解
  • 嵌套查询
  • 图表输出

提示词策略

  • Informal Schema:非正式模式策略,简称IS,以自然语言提供表及其关联列的描述,模式信息以不太正式的方式表达;
  • API Docs:API文档,简称AD,相比之下,Rajkumar(2022)等人进行的评估中概述的AD策略,遵循OpenAI文档中提供的默认SQL翻译提示。此提示遵循稍微更正式的数据库模式定义。
  • Select 3:包括数据库中每个表的三个示例行。此附加信息旨在提供每个表中包含的数据的具体示例,以补充模式描述;
  • 1SL:1 Shot Learning,在提示中提供1个黄金示例;
  • 5SL:5 Shot Learning,在提示中提供5个黄金示例。

T2S与ChatBI

LLM的迅猛发展使得T2S的准确率得到不少提升,也催生出一大批开源或付费ChatBI系统。

ChatBI=NLU模块+T2S引擎+数据库连接+可视化引擎+对话管理。

Benchmark

T2S任务的评价主要有两种:精确匹配率(Exact Match,EM)、执行正确率(Execution Accuracy,EX,也叫EA)

  • EM:计算模型生成的SQL和标注SQL的匹配程度,结果存在低估的可能。
  • EX:计算SQL执行结果正确的数量在数据集中的比例,结果存在高估的可能。

EM,为了处理由成分顺序带来的匹配错误,当前精确匹配评估将预测的SQL语句和标准SQL语句按着SQL关键词分成多个子句,每个子句中的成分表示为集合,当两个子句对应的集合相同则两个子句相同,当两个SQL所有子句相同则两个SQL精确匹配成功。

评价指标另有VES:Valid Efficiency Score。VES旨在衡量模型生成的有效SQL的效率。有效SQL,指的是预测的SQL查询,其结果集与基准SQL的结果集一致。任何无法执行正确值的SQL查询都将被声明为无效。VES指标可以考虑执行结果的效率和准确性,提供对模型性能的全面评估。

评估数据集有很多
在这里插入图片描述

Spider

有两个版本:

  • Spider 1.0:官网,论文;
  • Spider 2.0:官网,论文,GitHub。

Spider 1.0是耶鲁大学推出,包含10181个问题和5693个SQL,涉及200个数据库

Spider 2.0是由香港大学、Salesforce Research等团队提出的T2S Benchmark框架,用来LLMs在真实企业级数据工作流中的能力。Spider 1.0和BIRD存在数据库规模小、SQL复杂度低、缺乏多方言支持等局限性,而企业级场景涉及超大规模模式(平均812列)、多数据库系统(BigQuery/Snowflake/SQLite等)和复杂数据工程流程。Spider 2.0通过以下创新点突破现有框架:

  • 真实数据源:基于Google Analytics、Salesforce等企业数据库,包含213个数据库和632个任务;
  • 跨方言支持:覆盖6种SQL方言的多种特殊函数;
  • 项目级交互:整合代码库(如DBT项目)和文档,模拟真实开发环境;
  • 长上下文处理:平均每个SQL包含148.3个token,远超BIRD的30.9和Spider 1.0的18.5。

实验表明,o1-preview在Spider 2.0上的成功率仅20%左右,远低于其在Spider 1.0上90%+和BIRD上70%+的表现。揭示现有模型在模式链接、方言适配和多步推理上的瓶颈。

提供两种任务设置:
在这里插入图片描述
提供两个简化版数据集:

  • Spider 2.0-Lite:托管在BigQuery、Snowflake和SQLite上;
  • Spider 2.0-Snow:全部托管在Snowflake上。
维度Spider 2.0Spider 2.0-LiteSpider 2.0-Snow
任务类型代码代理任务,多轮交互纯文本到SQL,单轮生成纯文本到SQL,单轮生成
数据库支持6种,含BigQuery/Snowflake/PGBigQuery/Snowflake/SQLite仅Snowflake
示例数量632547547
复杂度极高(动态环境交互+多方言)高(跨数据库适配)中(单一方言聚焦)
成本需付费(云资源消耗)需付费(BigQuery使用费)完全免费(Snowflake提供配额)
核心挑战复杂数据工程流程(清洗→转换→分析)跨数据库模式链接与函数适配Snowflake方言深度优化
适用场景企业级代码代理研究跨平台模型泛化能力评估单一云数据库性能基准测试

Spider-Agent框架
官方提供的基于ReAct构建的解决方案,专为数据库任务设计的代理框架,针对SQL和数据库交互设计一套动作空间,支持:

  • 多动作空间:支持SQL执行、文件编辑、命令行操作等;
  • 迭代调试:通过执行反馈不断改进解决方案;
  • 上下文管理:有效整合代码库、文档等多源信息

动作空间是Spider-Agent的核心,定义模型可执行的操作:

  • Bash:运行shell命令,例如查看文件或执行dbt run
  • CreateFile:创建新的SQL脚本文件;
  • EditFile:修改或覆盖现有文件内容;
  • ExecuteSQL:在数据库上执行SQL查询,并可选择保存结果;
  • GetTables:获取数据库中的表名和模式;
  • GetTableInfo:查询指定表的列信息;
  • SampleRows:从表中采样数据并保存为JSON格式;
  • FAIL:任务失败;
  • Terminate:任务已成功完成。

这些动作赋予模型灵活性,使其能够与数据库和代码环境无缝交互。

Bird

官网,论文,GitHub

一个开创性的跨领域数据集,包含超过12751个独特的问题-SQL对,95个大型数据库,达33.4GB。涵盖超过37个专业领域,如区块链、曲棍球、医疗保健和教育等。

GPT-3.5-turbo在BIRD数据集上的表现进行详细的错误分析与分类:

  • 错误的模式链接(Wrong Schema Linking,占41.6%):模型能准确地理解数据库的结构,但错误地将其与不适当的列和表关联起来。表明schema linking仍然是T2S模型的一个重大障碍。
  • 误解数据库内容(Misunderstanding Database Content,占40.8%):当ChatGPT无法回忆起正确的数据库结构(如rtype不属于satscores表)或生成假的schema项(如lap_records没有出现在formula_1数据库中)时,尤其是当数据库非常大时,就会发生这种情况。如何使模型真正理解数据库结构和内容仍然是LLMs中的痛点话题。
  • 误解知识证据(Misunderstanding Knowledge Evidence,占17.6%):没有准确解释人类注释的证据的情况。如直接复制公式DIVIDE(SUM(spent),COUNT(spent))。表明ChatGPT在面对不熟悉的提示或知识时,缺乏鲁棒性,导致它直接复制公式,而不考虑SQL语法。这种脆弱性可能会导致安全问题。例如如果故意通过一个不熟悉的公式引入一个毒药知识证据,GPT可能会在没有验证的情况下无意中将其复制到输出中,从而使系统暴露于潜在的数据安全风险中。
  • 语法错误(Syntax Error,占3.0%):比例较小,表明ChatGPT在语义解析方面表现良好,少部分错误体现在一些特殊的关键词,如混淆使用MySQL的year()和SQLite中的STRFTIME()

IJCKG2025 Archer

Archer包含三种推理类型:算术推理、常识推理和假设推理。算术推理在SQL的具体应用场景中占有重要比例。常识推理是指基于隐含的常识知识进行推理的能力,Archer包含一些需要理解数据库才能推断出缺失细节的问题;假设推理要求模型具备反事实思维能力,即根据可见事实和反事实假设对未见情况进行想象和推理的能力。

Archer包含1042个中文问题、1042个英文问题以及521条对应的SQL查询,覆盖20个不同领域的20个数据库。其中8个数据库用作训练集,2个数据库用作验证集,10个数据库用作测试集。数据集及排行榜地址:https://sig4kg.github.io/archer-bench/

评估指标:

  • VA:VAlid SQL,成功执行的预测SQL语句的比例,无论答案是否正确;
  • EX:EXecution accuracy,预测SQL语句执行结果与标准SQL语句执行结果相匹配的比例。

开源

Awesome Text2SQL

GitHub,关于LLMs、Text2SQL、Text2DSL、Text2API、Text2Vis等主题的精选教程资源。

Chat2db

旨在成为一个通用的开源SQL客户端和报告工具,支持几乎所有比较流行的数据库、缓存。

7B开源模型:
https://github.com/CodePhiliaX/Chat2DB-GLM
https://huggingface.co/Chat2DB/Chat2DB-SQL-7B

部署

git clone https://github.com/CodePhiliaX/Chat2DB
cd Chat2DB/docker
docker compose up -d

浏览器打开http://localhost:10824,开始体验。
在这里插入图片描述
输入默认用户名密码chat2db

设置API Key
在这里插入图片描述
创建数据库连接
在这里插入图片描述
上面截图没体现出来,可新增多个自定义配置。

新增Dashboard:
在这里插入图片描述
Chart Type支持3种
在这里插入图片描述

Vanna

一款开源AI SQL代理,能够将自然语言问题转化为可操作的数据库洞察。该平台提供了多种部署选项,以满足不同的组织需求:

  • Vanna Cloud:无需设置即可使用的企业级平台,针对你的特定数据环境和行业背景进行训练;
  • Vanna Enterprise:本地部署,以实现完全的数据主权;
  • Vanna API:具备集成能力,可将AI驱动的数据库交互嵌入到现有应用程序中;
  • 开源基础:为希望构建自定义解决方案的开发者提供最大程度的灵活性。

支持Snowflake、BigQuery等主流数据库,并可轻松创建连接器以支持其他数据库。可通过多种前端部署,包括Jupyter Notebooks、Slack机器人、Web应用和Streamlit界面。

开源的开源Python RAG框架。Vanna通过整合上下文(元数据、定义、查询等)以及领域知识文档来训练RAG模型。在Vanna框架的基础上可以使用现有工具(例如Streamlit、Slack)构建自定义可视化UI,实现对话结果的可视化。

两个步骤:

  • 基于数据训练RAG模型;
  • 提出问题返回SQL查询,并且可以将查询配置为在数据库上自动运行。

在这里插入图片描述

WrenAI

开源,官网

数据库内容不会传输到LLMs,确保数据安全。

部署

git clone https://github.com/Canner/WrenAI
cd WrenAI/docker/
cp .env.example .env
docker compose up -d

浏览器打开http://localhost:3000,比较贴心地给出自带的数据源和数据集
在这里插入图片描述
上面提到RAG的QA对,WrenAI也能看到类似知识库维护界面
在这里插入图片描述
API界面没有维护入口,需要在.env文件里配置,然后重启服务。
在这里插入图片描述

SQL Chat

GitHub,具备T2S聊天功能的SQL客户端。

SuperSonic

参考SuperSonic部署实战。

Dataherald

https://github.com/Dataherald/dataherald
一个T2S引擎,为在关系数据库上的企业级问答而构建。

功能:

  • 允许业务用户从数据仓库中获得结果,而无需通过数据分析师;
  • 在SaaS应用程序中启用来自生产数据库的Q+A
  • 创建ChatGPT插件

包含四大模块:引擎、管理控制台、企业后端和Slackbot。其中,核心引擎模块包含了LLM代理、向量存储和数据库连接器等关键组件。模块化设计,将不同的功能模块封装成独立的类和方法,便于代码维护和扩展,可轻松地集成新的工具和功能。

database-build

https://github.com/supabase-community/database-build
一个基于WASM的浏览器内PostgreSQL沙盒,带有AI辅助功能。它让用户可以直接在网页浏览器中操作PostgreSQL,而无需在本地安装或设置数据库。

DuckDB-NSQL

https://github.com/NumbersStationAI/DuckDB-NSQL

一个由MontherDuck和Numbers Station为DuckDB SQL分析任务构建的T2S LLM。可以帮助用户利用DuckDB的全部功能及其分析潜力,而不需要在DuckDB文档和SQL shell之间来回切换。

EZQL

https://github.com/outerbase/ezql

开发商Outerbase已被Cloudflare收购。

付费/闭源

DataGrip

新版本能力:

  • 使用自然语言请求查询和信息
  • 解释复杂的SQL,例如存储过程
  • 优化架构和SQL
  • 比较两个数据库对象的DDL
  • 修复SQL错误
  • 格式化和重写SQL

观远

核心亮点:

  • 知识库冷启动:快速构建精准问数体系

基于企业现有BI资产(仪表板、卡片、数据集等),观远ChatBI实现低门槛知识迁移与快速激活:
• 多源数据无缝接入:支持40+数据库连接与文件类数据抽取,未来可扩展直连模式,确保数据来源的全面性与实时性,为问数场景提供坚实的数据底座。
• 业务知识高效萃取:自动从既有BI资产中提取业务逻辑与问答知识(如指标定义、分析维度关联),加速知识库初始化过程,避免从零开始的资源浪费。
• 问答准确率闭环检测:上线前对主题进行自动化问答测试,确保准确率达90%+,通过“测试-优化-再测试”机制,保障问数结果的精准性与业务贴合度。

  • 多端交互体验:打破时空限制的智能问数

观远ChatBI深度适配PC端、移动端、OA系统(如飞书),构建全场景智能交互体系:
• 多端协同问数:业务人员可在办公桌面、移动终端随时随地发起数据查询,即时获取可视化分析结果,实现“数据随需而至”。
• OA集成深化场景:对接企业级协作平台机器人(如飞书机器人),在日常办公流中直接嵌入数据问答能力,提升办公效率。
• 交互动作立体化:支持问答结果的收藏、点赞/踩、SQL复制与导出等操作,便于业务人员对优质分析内容进行沉淀复用,同时通过用户反馈优化模型,形成“问数-反馈-迭代”的正向循环。

  • 知识库自迭代:打造个性化企业知识生态

通过知识自动沉淀、智能自检、个性化学习,观远ChatBI构建可持续进化的企业级知识库:
• 知识自动录入:从历史对话、用户行为中挖掘新知识,提示用户将其纳入知识库,实现业务知识的动态积累,避免人工维护的繁琐与遗漏。
• 知识智能自检:定期对知识库进行冲突检查与近似检查,提醒用户合并或更新知识,确保知识库的纯净度与一致性。
• 个性化学习引擎:引入用户行为数据,为不同角色建立个人知识库,提供精细化问题推荐与指标口径确认,实现“千人千面”的智能分析体验。

在这里插入图片描述

SQLAI.ai

官网,划分为多个SQL生成器,每个都服务于特定的目的:

  • Explain SQL Queries:解释SQL查询,提供带摘要、输出可视化和详细查询分解的解释;
  • Format SQL Query:格式化SQL查询,以提高可读性并减少出错的可能性;
  • Analyze Your Data:允许上传CSV数据并向AI提问;
  • Generate SQL Query:
  • Fix SQL Queries:
  • Optimize SQL Query:

推荐阅读

  • NL2SQL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/920010.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络中 标量求导和向量求导

0. 引出问题 在神经网络反向传播过程中 loss [loss₁,loss₂, loss₃],为什么 ∂loss/∂w ∂loss₁/∂w ∂loss₂/∂w ∂loss₃/∂w ∂loss₁/∂w 和 loss 维度一样都是三位向量 ,[∂loss₁/∂w, ∂loss₂/∂w, ∂loss₃/∂w] 就变成3*3的矩阵 如下所…

tcpdump命令打印抓包信息

tcpdump命令打印抓包信息 下面是在服务器抓取打印服务端7701端口打印 rootgb:/home/gb# ifconfig -a eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.250.251.197 netmask 255.255.255.0 broadcast 10.250.251.255inet6 fe80::76fe:48ff:fe94:5a5 …

Mysql-经典实战案例(13):如何通过Federated实现跨实例访问表

实现原理&#xff1a;使用Federated引擎本创建一个链接表实现&#xff0c;但是Federated 引擎只是一个按列的顺序和类型解析远程返回的数据流准备工作&#xff1a; 1. 本地库启用 Federated 引擎查看是否已启用&#xff1a; SHOW ENGINES;如果Federated 引擎的 Support 是 YES …

Linux -- 动静态库

一、什么是库1、动静态库概念# 库是写好的现有的&#xff0c;成熟的&#xff0c;可以复⽤的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个⼈的代码都从零开始&#xff0c;因此库的存在意义⾮同寻常。# 本质上来说库是⼀种可执⾏代码的⼆进制形式&#x…

Linux笔记---单例模式与线程池

1. 单例模式单例模式是一种常用的设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例。这种模式在需要控制资源访问、管理共享状态或协调系统行为时非常有用。单例模式的核心特点&#xff1a;私有构造函数&#xff1a;防止外部通过n…

Linux中的指令

1.adduseradduser的作用是创立一个新的用户。当我们在命令行中输入1中的指令后&#xff0c;就会弹出2中的命令行&#xff0c;让我们设立新的密码&#xff0c;紧接着就会让我们再次输入新的密码&#xff0c;对于密码的输入它是不会显示出来的&#xff0c;如果输入错误就会让我们…

【n8n】Docker容器中安装ffmpeg

容器化部署 n8n 时&#xff0c;常常会遇到一些环境依赖问题。缺少 docker 命令或无法安装 ffmpeg 是较为常见的场景&#xff0c;如果处理不当&#xff0c;会导致流程执行受限。 本文介绍如何在 n8n 容器中解决 docker 命令不可用和 ffmpeg 安装受限的问题&#xff0c;并给出多…

【基础算法】初识搜索:递归型枚举与回溯剪枝

文章目录一、搜索1. 什么是搜索&#xff1f;2. 遍历 vs 搜索3. 回溯与剪枝二、OJ 练习1. 枚举子集 ⭐(1) 解题思路(2) 代码实现2. 组合型枚举 ⭐(1) 解题思路请添加图片描述(2) 代码实现3. 枚举排列 ⭐(1) 解题思路(2) 代码实现4. 全排列问题 ⭐(1) 解题思路(2) 代码实现一、搜…

Node.js异步编程——async/await实现

一、async/await基础语法 在Node.Js编程中,async关键字用于定义异步函数,这个异步函数执行完会返回一个Promise对象,异步函数的内部可以使用await关键字来暂停当前代码的继续执行,直到Promise操作完成。 在用法上,async关键字主要用于声明一个异步函数,await关键字主要…

搭建一个简单的Agent

准备本案例使用deepseek&#xff0c;登录deepseek官网&#xff0c;登录账号&#xff0c;充值几块钱&#xff0c;然后创建Api key可以创建虚拟环境&#xff0c;python版本最好是3.12&#xff0c;以下是文件目录。test文件夹中&#xff0c;放一些txt文件做测试&#xff0c;main.p…

uv,下一代Python包管理工具

什么是uv uv&#xff08;Universal Virtual&#xff09;是由Astral团队&#xff08;知名Python工具Ruff的开发者&#xff09;推出的下一代Python包管理工具&#xff0c;使用Rust编写。它集成了包管理、虚拟环境、依赖解析、Python版本控制等功能&#xff0c;它聚焦于三个关键点…

单片机的输出模式推挽和开漏如何选择呢?

推挽和开漏是单片机的输出模式&#xff0c;属于I/O口配置的常见类型。开漏&#xff08;Open-Drain&#xff09;和推挽&#xff08;Push-Pull&#xff09;是两种根本不同的输出电路结构&#xff0c;理解它们的区别是正确使用任何单片机&#xff08;包括51和STM32&#xff09;GPI…

java18学习笔记-Simple Web Server

408:Simple Web Server Python、Ruby、PHP、Erlang 和许多其他平台提供从命令行运行的开箱即用服务器。这种现有的替代方案表明了对此类工具的公认需求。 提供一个命令行工具来启动仅提供静态文件的最小web服务器。没有CGI或类似servlet的功能可用。该工具将用于原型设计、即…

深度解析Atlassian 团队协作套件(Jira、Confluence、Loom、Rovo)如何赋能全球分布式团队协作

无穷无尽的聊天记录、混乱不堪的文档、反馈信息分散在各个不同时区……在全球分布式团队中开展真正的高效协作&#xff0c;就像是一场不可能完成的任务。 为什么会这样&#xff1f;因为即使是最聪明的团队&#xff0c;也会遇到类似的障碍&#xff1a; 割裂的工作流&#xff1a…

理解AI 智能体:智能体架构

1. 引言 智能体架构&#xff08;agent architecture&#xff09;是一份蓝图&#xff0c;它定义了AI智能体各组件的组织方式和交互机制&#xff0c;使智能体能够感知环境、进行推理并采取行动。本质上&#xff0c;它就像是智能体的数字大脑——整合了“眼睛”&#xff08;传感器…

Spring Cloud系列—SkyWalking链路追踪

上篇文章&#xff1a; Spring Cloud系列—Seata分布式事务解决方案TCC模式和Saga模式https://blog.csdn.net/sniper_fandc/article/details/149947829?fromshareblogdetail&sharetypeblogdetail&sharerId149947829&sharereferPC&sharesourcesniper_fandc&…

机器人领域的算法研发

研究生期间学习大模型&#xff0c;可投递机器人领域的算法研发、技术支持等相关岗位&#xff0c;以下是具体推荐&#xff1a; AI算法工程师&#xff08;大模型方向-机器人应用&#xff09;&#xff1a;主要负责大模型开发与优化&#xff0c;如模型预训练、调优及训练效率提升等…

深度学习入门:神经网络

文章目录一、深度学习基础认知二、神经网络核心构造解析2.1 神经元的基本原理2.2 感知器&#xff1a;最简单的神经网络2.3 多层感知器&#xff1a;引入隐藏层解决非线性问题2.3.1 多层感知器的结构特点2.3.2 偏置节点的作用2.3.3 多层感知器的计算过程三、神经网络训练核心方法…

mysql的索引有哪些?

1. 主键索引&#xff08;PRIMARY KEY&#xff09;主键索引通常在创建表时定义&#xff0c;确保字段唯一且非空&#xff1a;-- 建表时直接定义主键 CREATE TABLE users (id INT NOT NULL,name VARCHAR(50),PRIMARY KEY (id) -- 单字段主键 );-- 复合主键&#xff08;多字段组合…

【计算机视觉与深度学习实战】08基于DCT、DFT和DWT的图像变换处理系统设计与实现(有完整代码python3.13可直接粘贴使用)

1. 引言 数字图像处理作为计算机视觉和信号处理领域的重要分支,在过去几十年中得到了快速发展。图像变换技术作为数字图像处理的核心技术之一,为图像压缩、特征提取、去噪和增强等应用提供了强有力的数学工具。离散余弦变换(Discrete Cosine Transform, DCT)、离散傅里叶变…