当前位置:   article > 正文

Text2SQL之不装了,我也是RAG_text2sql rag

text2sql rag


背景

对业务数据库中的表实现问答。输入是用户的问题,输出是该问题的答案。

这是很典型的Text2SQL的应用场景了,为了实现这一需求,很容想到的是把创建的表和表的描述都放进prompt里,让LLM去根据表的结构生成SQL语句,再利用工具去执行SQL语句,拿到查询结果后,再丢给LLM,让LLM根据给定的内容回答问题。我一开始也是这么想的,但是,当你的业务表非常多的时候,比如有上千个,你应该选择哪个表或者哪些表去给到LLM呢?根据问题去检索可能会用到的表是比较容易想到的一种方式。

于是,我带着我的疑惑,去调研了目前一些比较火的text2sql的框架。惊奇地发现,他们确实也是这样做的。比较典型的就是vanna

请添加图片描述

核心策略

从上图可以看出,Vanna实际上分了三个部分做RAG:

  • DDL 语句检索:对建表的语句做语义检索,建表时的表描述和字段注释
  • 文档检索:包括对一些专有名字的解释,以及拼接表的每个字段组成的字符串等一些其他相关文档
  • Query 与 对应的SQL检索:用户的问题与对应的SQL语句

关键步骤

DDL语句向量化: 对于每一个建表语句,进行embeddi

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号