我们相信:世界是美好的,你是我也是。 来玩一下解压小游戏吧!

在知识库初步建立,填充内容并分割解析的时候,就已经决定了召回率的高低(知识库的质量好坏)。这是因为知识库对文档的分割方式,就直接决定了知识库的向量组织方式。默认知识库文档分割方式,必然不是先进的,否则也不会出现后续的“父子分段”模式。

苏南大叔:Dify大模型,知识库解析父子分段模式,召回率提升 - 父子分段
Dify大模型,知识库解析父子分段模式,召回率提升(图1-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10@22h2docker@28.0.4dify@1.3.1weaviate@1.19.0。【知识库】在dify里面有两个角色,一是为其他插件提供上下文,另外也可以独立发布。本文主要探讨dify的【知识库】中的【父子分段】的切割模型,看看它如何提升召回率。

前文回顾

在本文中,是以dify平台的知识库搭建为前提的。前置阅读文章如下:

召回测试

除了传统的agent对话测试方式外,

还可以使用“召回测试”功能。参考下图:

传统分割方式

传统分割方式,最大的特点就是按段落分隔符进行划分,比如:\r\n,或者\n\n。然后子段是使用,。!;等进行分割。

经常做数据抓取的小伙伴,可能知道:这些标点符号,有全角半角的说法。换行符也有windows版本和unix版本的区别。所以,在上传到dify平台之前,最好对原文档进行一定的预处理,才能期待达到更好的效果。

这里的处理方式是:

  • 遇到设置中的截止符号。【因地制宜的截止符号】
  • 或者到达一定的字符数(token)。【这个就显得比较生硬了,对吧?】

父子分段方式

父子分段模式是新出的分割模式,在这种模式下,就和写论文的感觉差不多。“标题二”就是父级别,“标题三”就是子级别。

对比效果

以“召回测试”为功能界面,同样的测试用户提问。同样的文档,但是采用不同的分割方式。

可以看到:后者“父子分段”得到了较高的召回率结果。

结语

“父子分段”模式得到了较高的召回率的同时,初始化知识库的时候,耗费的分割时间也是相对较多的。值得庆幸的是:对于用户来说,这个耗时并不存在。

更多dify经验文章,请参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   dify