数据可视化Agent-基于Text2SQL的数据分析方案

2024年8月26日修改
作者:王大锤
上篇中,我们探讨了企业应用中基于自然语言的交互式数据分析的业务驱动力和场景,这里主要探讨一下基于Text2SQL的 技术方案 ,也可以理解为NL2SQL,即 自然语言转SQL , SQL作为一种结构化 查询语言 ,是数据库交互的一种标准化语言,几乎存在于所有以数据为中心的企业应用中。
附件不支持打印
基础实现:
Text2SQL,简单的说,就是把你说的自然语言转化为数据库能够听懂的SQL,然后通过数据库的"语言"与它对话,获得数据查询或统计结果。Text2SQL并不是在大模型之后才出现的话题,早在大模型出世之前已有大量专注于此任务的机器学习项目。在大模型出现以后,凭借其强大的 自然语言理解 和推理能力,让Text2SQL得到了大力的推进。
从上述的图中可以看出,Text2SQL看似一个十分简单的任务,核心是在与如何将自然语言组装成Prompt, 然后交给大模型做推理生成对应的SQL。在OpenAI公司官网上给出了一个标准的ChatGPT做自然语言转SQL的示例:
代码块
System
/*系统指令*/
Given the following SQL tables, your job is to write queries given a user's request.
/*数据库内表结构*/
CREATE TABLE Orders (
OrderID int,
CustomerID int,
OrderData datetime,
OrderTime varchar(8),
PRIMARY KEY (OrderID)
);
...... //省略N张其他表
/*问题*/
Write a SQL query which computes the average total order value for all orders on 2023-04-01.