赞
踩
在之前的案例视频中我们演示了使用Milvus向量数据库和腾讯向量数据库实现RAG的场景应用。今天我们演示下利用ES的向量数据存储能力来实现RAG,包括三个部分:连接ES数据库并建表;数据写入ES向量数据库流程;问答对话流程。具体操作可参照下面的视频:
《玩转数据之使用ElasticSearch搭建RAG》https://www.bilibili.com/video/BV1mZ421E7ki/
这里我们没有展示连接ES数据库的过程,直接使用已经连接创建的ES7数据库03-es,相关操作可查看已发布的信息。
进入数据库操作页面,点
新建一个支持向量数据的数据表knnword3,分别添加两个字段:
将dims设置为1024是因为Lucene最大支持长度是1024,若超过1024的长度会引发插入数据错误。
这样将向量数据表完成后,就可以在流程中使用了。
这里我们将之前用Milvus数据库的流程示例进行改造,将Milvus的向量数据库替换为ES数据库。整个流程的其他创建过程可参考如下视频:
上图是用Milvus数据库实现的,现在将其替换为ES算子,如下
选择ES写出算子替换掉Milvus写出算子后,需要配置下ES数据表的信息,如下:
保存并执行流程,查看效果。
数据处理完成,可以看到我们已经把这个数据插到了向量库中,然后我们基于插入的这些数据进行下面对话示例的演示。
关于对话应答的示例也请参照如下文章进行流程的设计。
HuggingFists-低代码玩转LLMRAG(2) Query
在整个流程中,会用到如下的算子:
整个流程中我们使用了腾讯的嵌入模型和阿里大语言模型,或者用混元大语言模型也可以。
这里需要修改ES的连接配置信息
配置完成后,先运行下看下效果,
可以看出能够很好回答提示问题的数据排在第五个,假设后续语料增多,后续可能排位更低,所以,设计了这个rerank算子(重排算子)
Reank算子的主要作用是语义的重排序,使其能够将跟问题最相关的语料筛选出来。加入这个算子后,重新运行下流程。发现能够准备回答问题的语料可以被筛选出来,通过Rerank算子的重新排序,精准的找到适合回答问题的语料。
最后我们整体运行下该流程,
从输出结果来看,当前问题的应答输出与我们的几次测试,基本上这结论都是一致的。
以上就是基于ES向量数据库来实现检索增强生成应用的示例,欢迎下载HuggingFists试用。下载地址如下:
【Linux版】
Github:https://github.com/Datayoo/HuggingFists
百度网盘:https://pan.baidu.com/s/1zV_ScCtLgFQSYEb0wLmXIQ?pwd=2024
【windows版】
Github: https://github.com/Datayoo/HuggingFists4Win/tree/main
百度网盘:百度网盘 请输入提取码
【Mac版】
百度网盘:https://pan.baidu.com/s/12WxZ-2GgMtbQeP7AcmsyHg?pwd=2024
【补充算子】
GitHub: https://github.com/Datayoo/Operators
百度网盘:https://pan.baidu.com/s/1iqX0f8xzCXMWVDA7eaqH6Q?pwd=2024
如果使用过程中遇到问题,可加入我们的交流群:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。