论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
PostgreSQL
›
在RAGFlow中实践Text2SQL
在RAGFlow中实践Text2SQL
东湖之滨
金牌会员
|
2025-2-16 14:32:58
|
显示全部楼层
|
阅读模式
楼主
主题
932
|
帖子
932
|
积分
2800
RAGFlow 0.10 正式发布,应广大社区用户要求,引入了Text2SQL特性。传统上Text2SQL依赖于对模子微调,而在企业场景中,经常谋面临RAG/Agent搭配Text2SQL的场景,这时假如再部署一个微调的大模子,势必会影响部署和维护本钱。因此RAGFlow基于RAG也推出了Text2SQL功能,这样可以仅依赖现有的大模子即可提供Text2SQL本领,方便让Text2SQL搭配其他RAG/Agent算子共同工作。
那么如何基于RAG来提供Text2SQL本领呢?工作流程可以参见下图:
我们需要预备一个专门用于生成Text2SQL提示词的知识库,该知识库包含各类自然语言到SQL的样例数据。当用户向RAGFlow发起一个Text2SQL提问时,先到该知识库中进行搜索,找到相似结果后拼接成生成SQL的提示词,再把该提示词发给大模子,让大模子生成终极的SQL。该SQL可以直接用来查询数据库,假如返回结果出现错误,证明产生的SQL不对,那么需要继续调用大模子让它产生一个正确的SQL直到错误次数超过上限。
因此,Text2SQL依赖于Agent框架来实现多次交互任务的编排,在0.10.0 版本的RAGFlow中,Text2SQL被固化为内置的Agent算子,方便到场到整个用户侧的工作流中。在后续版本中,当返回结果堕掉队,以上的工作流程会做进一步调解,就是让人工介入输入正确的SQL,该SQL会被更新到知识库当中,方便将来的提问生成正确的SQL,如上图的虚线箭头所表示。
下边是在RAGFlow中使用Text2SQL的使用指南:
Text2SQL 结果展示
如何在RAGFlow中使用Text2SQL
在RAGFlow Agent中创建DB Assistant 模板
2. 设置Text2SQL 知识库
在RAGFlow中需要提供三种知识库来确保Text2SQL结果的质量,分别是
DL知识库 ,Q->SQL知识库,DB Description知识库。
DDL知识库:大语言模子生成SQL语句需要准确的数据库DDL数据,包含但不限于表结构,表字段信息等等,因此在DDL知识库中需要提供准确的所查询数据库的DDL数据,DDL知识库解析设置建议设置为如下:
DDL知识库数据参考:https://huggingface.co/datasets/InfiniFlow/text2sql/tree/main。
Q->SQL知识库:在Text2SQL生成过程中,对大语言模子提供samples往往能提高生成的SQL语句的质量,因此在Q->SQL知识库中需要提供自然语言->对应的SQL语句的samples,假如能够提供所查询的数据库Q->SQL的samples,则Text2SQL结果质量更高。Q->SQL知识库解析设置建议设置如下:
Q->SQL知识库数据参考:https://huggingface.co/datasets/InfiniFlow/text2sql/tree/main
DB Description知识库:该知识库包含准确的所查询数据库的干系信息,包罗但不限于数据库表的寄义,数据库表中差别字段所代表的寄义,依据具体的数据库各项形貌信息,大语言模子能够更加精准的将用户的问题转换为SQL语句。DB Description知识库解析设置建议设置如下:
DB Description知识库数据参考:
https://huggingface.co/datasets/InfiniFlow/text2sql/tree/main
3. 设置数据库
将所需查询的数据库各项参数在Execute SQL中进行设置,包罗:
1)数据库的类型(现在支持Mysql,PostgresDB和MariaDB)
2)数据库名称
3)数据库用户名
4)数据库IP地点
5)数据库端标语
6)数据库密码
设置完成后可以点击Test按钮来测试是否毗连成功
。
Loop参数:RAGFlow中Text2SQL具备自动反思迭代的本领。针对用户的问题,假如大语言模子生成的SQL查询成功则会直接将结果进行返回。 假如大语言模子生成的SQL查询失败,则RAGFlow Text2SQL则会针对数据库查询返回的错误信息和SQL语句进行自动更正进行再次查询,该过程(查询失败->更正SQL语句->再次查询)最大迭代次数则为Loop参数的值,假如迭代次数超过Loop值,查询结果仍然失败,则步调自动结束Text2SQL过程,请优化用户问题或知识库数据再次实验。
TopN参数:数据库查询中往往包含大量的记录,该参数用于限定所返回的记录数目。
4. Go
接下来点击Run就可以执行了。
常见问题
1. Database Connection Failed!
数据库毗连失败,需要查抄Execute SQL组件中数据库各项参数是否正确,确保部署RAGFlow的机器按照所填的信息是能够毗连到数据库的,点击test进行测试数据库是否能够毗连成功。
2. SQL statement not found!
这意味着Text2SQL不能将用户问题转化为SQL语句,对于LLM来说可能所需要的咨询太少或不完整,可丰富上面提到的三个知识库。
3. No record in the database!
表示该SQL查询从数据库表中查询到的记录数为0,有可能过滤条件过为严苛,或数据库该表为空表。
4. Maximum loop time exceeds. Can't query the correct data via SQL statement.
该问题表示Text2SQL对用户问题转化之后对应的SQL语句不能正确的从数据库中进行查询,请查抄数据库中是否包含该查询对应的内容,用户问题是否符合,Generate SQL Statement LLM 组件和Fix SQL Statement LLM组件生成的SQL语句是否正确。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
东湖之滨
金牌会员
这个人很懒什么都没写!
楼主热帖
《HarmonyOS开发 - 小凌派-RK2206开发 ...
VMware虚拟机安装黑群晖7.1
当我们在聊「开源大数据调度系统Taier ...
ABP Framework 7.0 RC 新增功能简介 ...
MySQL视图
从0到1实现一套CICD流程之CD
MySQL8.0 优化器介绍(二)
[ARM 汇编]高级部分—ARM汇编编程实战 ...
大二C#实现酒店管理系统(C端展示、前 ...
dotnet 6 为什么网络请求不跟随系统网 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表