admin管理员组文章数量:1437103
AI超级智能体教程(六)
1.自定义文件持久化ChatMemory
1.1相关原理
原理的话,就是我们的持久化存储,也就是说,我们需要把消息保存到文件或者是数据库里面,之前我们都是基于内存的操作,但是内存这个东西一断电就没有了,显然是不可取的,因此我们需要一个更加高效的方案进行相关的设计;
一个方法就是保存到数据库里面,这个是需要引入数据库相关的以来的,另外一个方法就是保存到文件里面去,但是这个涉及到我们的消息和文本的转换,消息就是我们和大模型对话的,你想要把他进行持久化的存储,这个时候需要转换成为我们的文本文件类型的语言,例如这个txt之类的,保存的时候需要转换,从文本文件读取成为消息的时候同样是需要进行转换的;
这个 不断的转换的过程实际上就是我们的序列化和反序列化的过程,下面的代码里面我们会具体的进行相关的说明
1.2具体实现
在我们的pomm.xml里面引入下面的这个依赖:这个kyro依赖就是我们需要使用的这个依赖
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>5.6.2</version>
</dependency>
下面的这个,就是我们新建一个包包,搞一下这个序列化反序列化的相关问题,这个里面需要置顶一下我们的文件保存在哪一个目录下面,我们后面就回去调用这个相关的方法;
下面的这个实际上就是CURD的方法,一共是三个方法,对文本信息进行读取啥的,清除,以及文本的内容的添加;
下面的这个进行的就是我们的序列化和反序列化的相关操作,主要就是我们的kryo这个东西进行我们的文本和消息之间的转换
1.3测试用例
这个实际上就不用去写这个测试用例,直接运行,这个对应的目录生成出来,对应的大模型的回答也会在我们的指定的目录下面产生,这个就没有问题了,这个就相当于是把我们的大模型输出的消息转换成为文本,保存到我们的磁盘里面去了,这个就实现了这个数据的持久化存储的功能;
2.RAG实战—文档的读取和加载
RAG相关的有很多原理,但是全部是理论,大家可以去网上找一些相关的科普视频啥的学习一下,我这里就不去说明了;
我们主要去看一下这个文档是怎么被加载和读取的;
2.1引入MD文件读取依赖
下面的这个依赖就是我们的MD文件的读取的相关依赖,看这个字面意思相信大家也是可以理解的;
2.2准备需要用到的文档
下面的这个就是鱼皮准备的这个文档,我们直接整到我们的项目文件里面就可以了:
2.3编码进行读取
下面的这个导包的时候需要注意一下:
下面的这个即使我们的读取文档的代码:先指定我们需要读取的这个文档是在哪一个路径下面的,然后进行读取,把这个结果保存到一个列表里面去即可;
我们可以通过调试的过程,看到下面的这个类似的结果情况:我们一共是三个文档嘛,所以一共是10个消息的分割结果,因为是从0开始进行编号的,因此这个就是0-14,每一个文档相当于是被切割成为了5个不同的部分罢了;
文档嘛,所以一共是10个消息的分割结果,因为是从0开始进行编号的,因此这个就是0-14,每一个文档相当于是被切割成为了5个不同的部分罢了;
本文标签: AI超级智能体教程(六)
版权声明:本文标题:AI超级智能体教程(六) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1747398611a2693651.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论