00:03
大家好,欢迎大家来到腾讯开发者社区、腾讯云数据库、CSDN共同打造的AI驱动TD circle杠、c sla.数据库技术十大运这一节呢,我们来为大家讲解一下,基于LA Cha实现text to c服务,也就是说我们本节的主要内容是让AI帮我们生成SQL语句。好,我们在整个服务当中需要做三件事情,第一件事情需要连接拉玛3.1大模型,需要注意的是这个大模型它位于我们的h hi远程服务器当中,然后呢,第二件事是构建crcq Cha向大语言模型中导入我们的Sigma,也就是数据库的表结构,这块儿也需要注意的是,数据库依然位于我们腾讯云服务器,也就是远程服务器,所以这些数据都需要从服务器上进行复制、选取、配置。然后最后一件事情我们就要使用代码构建用户。
01:05
看,向模型中传递用户的提问信息啊,并且生成SQL查询。好,下面来看一下我们的代码实现部分。好,在代码部分呢,大家来看第一件事情呢,我们在这里边导入了常用的蓝串库以及对应的小模块儿,然后呢,在下面我们也需要导入一个my circuit的连接工具啊,然后下边儿。做的事情就是先把我们的MYSQL配置进行一个设置,MYSQL配置来自于我们的远程服务器,也就是刚刚申请的TD s service服务器,其中用户名固定为root password是我们在新建服务器的时候设置的密码,大家应该都记住啊,是腾讯的全拼加上下划线TDCQ,然后DB host, 也就是我们的服务器地址,是我们在腾讯数据库啊那块儿点击外那个字,从而设呃开启的外部访问地址和它的端口儿,这些我都已经从服务器当中复制好了。然后DB name为shop,是我们当时新建数据库为它起的名称,也是我们导入数据的时候那个选择的库。然后在下边整个流程当中先看一下需要做的事情。
02:30
然后呢,第一件事情我们是要使用chat欧拉玛的功能连接一下我们的h hir服务器当中的欧拉玛,其中chat欧拉玛来自于我们上面导入的LA Cha模块儿。在在在chat欧拉玛当中需要设定两个参数,第一个参数就是模型的名称,我们当时申请h HIF色例服务器的时候,是不是特意用欧拉玛list查看了一下模型的名称,一共有两个,一个是拉玛3.1冒号8D,一个是拉玛3冒号最新的那个拉a list是不是我们这边儿选择3点儿18B模型,因为这个模型的性能是要比拉玛3要好很多。
03:15
然后第二个参数是base斯URL,也就是我们的服务器地址这块儿只需要把我们申请的h Hai服务器的远程地址,就是IP地址复制到此处就可以,端口默认6399,我们是不是已经开通了是不是?那么这个时候我们就完成了算力服务器的一个连接操作,当然现在只是什么呀,连接操作后期我们才需要往里边儿传入更多的数据,那么在我们流程图当中给大家讲解了,需要给我们的AI传入两个内容,一个是我们的数据库的模型,一个部分是我们用户的输入,也就是我们向它发起的请求,对不对?先解决第一个问题及数据库的表结构和模型数据,在此处呢,我们使用了LA ten里边儿的一个CIRC data database的一个工具,在这里边儿进行了一个。
04:16
远程的链接啊,我们可以看到这里边儿用了一个MYSQDB来接收它的远程链接信息啊,那么在这里边大家把这个啊,使用from URL, 然后根据配置进行一个链接,连接了之后我们干什么事儿呢?要获取表结构对不对?在这里边儿我专门定义了一个函数叫get Sigma啊get Sigma这一块的话,我们在调用这个。函数的时候就可以通过什么呢?MYSQDB, 也就是刚刚连刚刚的数据库链接啊,通过get table in获取当前的表结构,并且当将当前的表结构返回出来,也就是直接调用这个方法会得到数据库的skyma表结构相关信息,对不对?那么数据库的连接和表结构的获取,我们是不是在这两部分进行了完成?
05:11
好,然后呢,下面你想传给我们的大言模型就需要注意了,因为我们此处使用的是蓝产来进行大语言模型的链接啊,所以呢,需要准备这么几件事情,第一件事情需要准备一下我们的对话模板,也就是他类的模型模板嘛,是不是?然后在模板里边儿写出我们的要求,看好了,我们要求是基于下面提出的数据库干ma,也就是我们一会儿要给它传入这个变量S干ma,注意此处是未来要进行变量接收的部分啊,然后根据用户的要求编写SQ语句,这是不是我们最直观的要求啊,然后有额外的要求,尽量使用最优的SQ语句。然后每次查询都是独立的,我们这个意思是告诉我们的AI不要把两次问题搞混,也不要受到其他查询的干扰,是不是这个,然后下面告诉他啊,要传入到表结构,在这儿,注意下边儿有一个question,什么意思呢?在这里边儿我把用户的提问也设置成一个变量question,也就是说未来需要向这个模板里边导入的两部分数据是不是都在这两个变量里存着,一个是数据库表结构,一个是用户的输入信息,也就是要求,并且对它的返回结果做了说明,我只要求它返回色Q语句,不要任何多余的字符。
06:37
然后呢,也不要markdown的格式等等啊,如果出现异常,我们也不让它抛,抛出来,异常原因是因为啊,在我们跟大爷模型对话的时候,如果他返回的是代码或者是增形语句这样的it类的文字的话,他通常会用马克down格式给我们标注,我们在这里边儿让他什么呀,尽量不要进行标注,当然就算我们在这里写好了,他也有可能返回带标注的信息啊好,模板准备好了,下面看好了,我们在这里边儿啊,使用chat啊,PRO模板啊,从一个什么呀方法当中把模板导入给轴拉玛,就大语言模型吧,然后呢,在下面创建一个链啊,这个链里边做了这么几个事情,我们从一从前往后挨个看就可以了。练的第一件事情是为当前的大语言模型分配了数据库的S干ma信息,你看我在这里边儿把get s干ma方法也就是这。
07:38
这个方法复制给了干ma,它会调用这个方法得到数据库表结构的信息,然后分配给我们的大语言模型当中的这个模板变量,然后呢,把什么提示词信息也传递给大语言模型,然后大语言模型拿到这两个信息进行什么推理,推理的结果注意不是直接拿出来,如果我们没有最后这一行的话,也能推理出结果,但是他推理出来的结果可能是什么呀?一些数组当中的某一个数据是结果,剩下的都是推理产生的一些额外信息,我们不需要,所以在这里边儿我们通过了一个什么呀,格式化操作,让他只获取其中的CQ语句部分,或者叫格式化输出,然后呢。
08:24
这样的链生成好了之后,我们就在这里边儿,通过这个链evoke一下,就让它执行这个操作链啊,让这个链执行,链执行了之后,返回的结果就是我们的什么呀,输出了这样的话就构建了好我们的第一条CQ线,也就是我们的CQ的链条,大家也可以看到其实就是什么呀,设置好模板,然后呢,设置好模板之后,准备好模板需要的信息,两个,一个数据库变量,写一个数据库结构信息,一个是用户的输入信息,是不是跟我们那个表图刚好一致啊,然后呢,通过看进行了一个什么呀,顺序的设定,直接调用这条设定好的链就会产生结果,好下面我们来运行一下这个代码,看看最后能否产生三选语句,注意我们现在并没有输入的地方,所以我在这边儿直接写了固定的什么呀,用户输入查询所有用户信息。
09:25
你也可以说什么查询用户数量,查询表,订单总额都可以啊,因为现在我们没有没有设置什么交互界面,所以我写的是固定字符串,好了,下面为大家进行一下代码的操作。现在呢?我们打开了终端,我们需要找到刚刚文件的保存位置。我将它保存在了。我们当前目录下workspace下面啊,LS, 我们看一下里面有两个文件夹,我放到了DEMO里边,CD进入DEMO文件夹,然后这里边啊有个文件叫做text的tocirc.py,我们运行当前文件啊,Test.
10:01
然后呢,Text的to SQ点儿PY回车运行一下,这个时候儿呢,它就会同时连接我们的h hii算力服务器,也就是跟大语言模型进行沟通,同时也会连接我们的数据库,获取到数据库的表结构信息,传递给我们的大语言模型,让他最后推导出来我们的SQL语句。那么大家可以看到,在这个位置我们其实已经看到了输出,是不是上面说select的信号from user, 是不是跟我们说的查询所有用户的信息产生的结果一致啊,对不对,但是大家也看到了,在它的外部包含了一个markdown语法当中的一个标记,说这是SQ语句,所以呢,我们在真实工作的时候呢,需要把这个ciq语句的两端啊,这个标志给它去掉,才能够交给我们的MYSQL连接来继续执行。好了,那么这一节课呢,为大家介绍到这里面,下一节课呢,为大家介绍一下我们如何使用MYSQL连接到我们的数据库。
我来说两句