亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

RAGFlow創建TextToSQL agent

  • 前言

    RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。

    如果还没安装RAGFlow的小伙伴可以参考这个帖子:RAGFlow部署

    参考文档:Create a Text2SQL agent

  • 前置条件

    本篇将介绍如何通过RAGFlow实现一个TextToSQL的agent。默认你已部署好RAGFlow,并配置了聊天模型和嵌入模型。

    数据库环境:MySql8.0

  • 配置知识库

       TextToSQL需要以下三个知识库:

       (a)DDL:数据库建表语句。

       (b)DB Description:表和列的说明。

       (c)Q->SQL:参考SQL。

       1.配置DDL知识库

       a.DDL内容:

CREATE TABLE `vendor`  (
  `id` varchar(66) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `status` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'Normal',
  `sync_mode` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `created_time` datetime(0) NULL DEFAULT NULL ,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

CREATE TABLE `vendor_task`  (
  `id` varchar(66) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
  `vendor_id` varchar(66) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `status` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `error_msg` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
  `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
  `retry_num` tinyint(4) NULL DEFAULT 0 ,
  `next_retry_date` datetime(0) NULL DEFAULT NULL ,
  `created_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

     b.新建DDL知识库

     路径:Knowledge>Create knowledge base

     嵌入模型选择自带的模型,分块方式选择General就可以了。选择好后点击保存。

     https://img1.sycdn.imooc.com/84b5c56709d2a2ac09380860.jpg

    然后上传DDL.txt文件进行解析。

   https://img1.sycdn.imooc.com/251e746709d2a3b518230670.jpg    

     2.新建DB Description知识库

     a.DB Description内容如下:

### vendor(厂商表)
vendor表记录了厂商的详细信息。以下是该表中每个字段的含义:
	id:厂商唯一标识符。
	name:厂商名称。
	status:厂商状态。其中Normal代表正常;Disabled代表禁用。
	sync_mode:同步模式。其中SystemAuto代表系统自动模式;Human代表人工无确认模式;HumanConfirm代表人工确认模式。
	created_time:创建时间。
	
### vendor_task(厂商任务表)
vendor_task表记录厂商任务的详细信息。以下是该表中每个字段的含义:
	id:厂商任务唯一标识符。
	vendor_id:外键,引用vendor表中的id,指示哪个厂商的任务。
	status:任务状态。其中NO_SYNC代表不同步;DEFAULT 待同步;PROCESSING 处理中;SUCCESS 成功;FAILED 失败;CANCELLED 取消;UNCONFIRMED 待确认;CONFIRMED 已确认。
	type:任务类型。其中OpenCard 开卡;LossCard 挂失;UnLossCard 解除挂失;ReturnCard 退卡;ReplaceCard 换卡。
	error_msg:错误信息。
	reamrk:备注。
	content:任务内容。
	retry_num:任务重试次数。
	next_retry_date:任务下次重试时间。
	created_time:创建时间。

        b.同样的方式,设置DB Description知识库

        https://img1.sycdn.imooc.com/9c81516709d2a54f18210582.jpg

     3.新建Q->SQL知识库

     这是我配置的参考SQL,列举了一些任务失败、异常任务和正常重试任务的例子。

问题:列举所有的厂商 回答:select id,name,description from vendor;
问题:开卡失败的任务数量 回答:select count(*) 'total_count' from vendor_task where status = 'FAILED' and type = 'OpenCard';
问题:获取异常的任务 回答:SELECT t.id,v.`name`,t.type,t.created_time FROM vendor_task t LEFT JOIN vendor v ON t.vendor_id = v.id WHERE t.`status` = 'DEFAULT' AND t.retry_num > 0 AND next_retry_date < NOW();
问题:列表10条最新的异常任务 回答:SELECT t.id,v.`name`,t.type,t.created_time FROM vendor_task t LEFT JOIN vendor v ON t.vendor_id = v.id WHERE t.`status` = 'DEFAULT' AND t.retry_num > 0 AND next_retry_date < NOW() ORDER BY t.created_time DESC LIMIT 10;
问题:获取正在重试的任务 回答:SELECT t.id,v.`name`,t.type,t.created_time FROM vendor_task t LEFT JOIN vendor v ON t.vendor_id = v.id WHERE t.`status` = 'DEFAULT' AND t.retry_num > 0 AND next_retry_date >= NOW() ORDER BY t.created_time DESC;

    最终要整理成Excel,格式如下:

    https://img1.sycdn.imooc.com/09610f6709d93c3114910612.jpg

    a.新建Q->SQ知识库

    这里要注意,因为我们要上传的是Excel,所以解析方式要选择Q&A。

    https://img1.sycdn.imooc.com/8227526709d93b4708490818.jpg

      b.上传QA.xlsx

     https://img1.sycdn.imooc.com/6189306709d93bdf18900808.jpg

     4.构建TextToSQl的Agent

    路径:Agent -> Create agent -> Text To SQL

    新建后系统默认生成一个模板。我们只需要添加一个ExeSQL插件即可。如图所示:

    https://img1.sycdn.imooc.com/c5687f6709d93d8419200927.jpg

    然后分别对DDL、Q->SQL、DB_Description、GenSQL和ExeSQL进行配置。

    a.DDL

    单击DDL,Input选择Interface,知识库选择之前新建的DDL知识库。

    https://img1.sycdn.imooc.com/72e1ae6709d93e4716700868.jpg   

    b.DB Description

    https://img1.sycdn.imooc.com/cdad076709d93ebe16710864.jpg

    c.Q->SQL

    https://img1.sycdn.imooc.com/4454e66709d93f1d16580881.jpg

    d.LLM

    https://img1.sycdn.imooc.com/9556666709d93f6c16850860.jpg

    e.ExeSQL

    https://img1.sycdn.imooc.com/c1d0a86709d9404c16730861.jpg

    5.运行

    完成以上配置后,点击Run,我们就可以提问了。

    https://img1.sycdn.imooc.com/77363b6709d9418216750861.jpg

    


點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消