AskTable

让如何让 AI 生成准确的 SQL

AskTable 团队
AskTable 团队 2025年1月9日

让您像聊天一样
用一句话查询公司数据
轻松生成图表 快速获得商业洞察 ☀️

AskTable 问数体验示意图

很多用户反馈都说比预想中的好,也好奇我们是怎么做到的。借这个机会,再来讲一下:我们是基于 SQL 的问数 AI。因此要想问数效果好,SQL 是关键;而为了生成准确的 SQL,除了选用靠谱的大模型,如何驾驭这些大/小模型,也至关重要。就好比做菜,食材重要,厨师更重要。

在 AskTable 内部,生成 SQL 的系统可划分为三大核心模块:Meta Brain、Meta Retrieval 和 Data Retrieval,如下图所示。

Meta Brain / Meta Retrieval / Data Retrieval 架构示意

情报中心——Meta Brain:构建元数据图谱

Meta Brain 是 AskTable 的情报中心,充当整个数据系统的知识库。它存储了数据库中所有的元数据以及必要的关键词数据,包括库名、表名、字段名及其注释信息,完全由 AI 驱动自动化构建了一个全面的数据库元数据图谱。这使得 AskTable 能够理解不同数据库系统(如 MySQL、Oracle、PostgreSQL、达梦、Hive 等)中的数据结构,并在需要时高效、准确地生成对应的 SQL 查询语句。

Meta Brain 同时也是 embedding 等多种相关/相似性搜索的存储与计算中心。所有的查询在这里进行搜索与计算,从而找到最符合用户查询意图的数据表、字段和数据值。向量搜索和图数据库技术的结合,使得 Meta Brain 能够在大规模数据中迅速定位目标数据,提高查询效率。

侦察队——Meta Retrieval:实体识别与元数据检索

当用户发起查询时,系统首先进入 Meta Retrieval 模块。这里,问句经过自然语言处理,从中提取出关键实体或关系,如地名、用户等。这一步骤通过实体识别技术,使系统能够识别并理解用户查询的核心内容。

接着,系统会调用 embedding 模型,将提取的实体转化为向量表示。这些向量表示在 Meta Brain 中进行查询,以找出与之最相关的数据库字段和表。向量的语义检索使得系统能够在复杂数据结构中高效匹配,确保查询的精准性,以及对口语化表达的识别。

同时,系统还会使用内置的专门针对 Meta Data 和 Short Value 结构优化的搜索算法,从 Meta Brain 中匹配真实实体名字,这样才能避免后续生成 SQL 时 Value Missing。

另外,Meta Retrieval 还负责查询权限的管理。根据用户的角色与权限,系统会过滤掉不符合访问要求的数据。

行动队——Data Retrieval:智能学习与动态纠错

Data Retrieval 模块负责执行生成的 SQL 查询并获取数据。不同于传统数据库查询,AskTable 在这个过程中加入了智能学习与纠错机制。当查询结果与预期不符时,系统会利用 AI 模型对 SQL 进行动态调整或重写,以优化查询结果。这种动态纠错机制显著提高了复杂查询场景下的响应准确性。

同时,AskTable 还会通过对 Good/Bad Case 的分析,通过基于用户反馈的强化学习与训练等手段持续优化 SQL 在不同数据库方言、不同表结构下的生成效果,进一步提升查询准确性。

在数据查询前,系统还会进行进一步的权限校验。每一行数据在返回给用户前,都会根据权限规则再次过滤,确保数据的合规性与安全性。通过这一严密的多层过滤,AskTable 不仅保证了数据安全性,还在极大程度上减少了数据冗余。

其他

除了以上内容,我们在生成 SQL 的过程中,还引入了“术语库”、“训练师”和“专属偏好”等高级功能。点击原文了解更多,或者扫码下方二维码加群交流。若有合作需求也可以直接关注公众号,点击底部按钮联系我们。

扫码交流与了解更多

我们相信 AI,相信 LLM,
相信使我们永远创新且永远向前。
我们尊重时间,尊重隐私,
尊重使我们谨慎、务实且客观。