RAG知识库问答文本论据溯源,增强问答体验
例行检查
- [x] 我已确认目前没有类似 features
- [x] 我已确认我已升级到最新版本
- [x] 我已完整查看过项目 README,已确定现有版本无法满足需求
- [x] 我理解并愿意跟进此 features,协助测试和提供反馈
- [x] 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的 features 可能会被无视或直接关闭
功能描述
RAG问答时,用户经常会希望知道AI回答的内容具体来源于那个文档的什么位置
我在本地版本中做了一版,反馈还可以,分享出来供参考,也期待官方可以更完善的支持该功能
应用场景
问答溯源增强
相关示例
实现效果
1、回答内容每条结论后带有原文引用查看的标签
2、点击标签后,会打开对应的文档,并跳转到对应的段落位置,同时对引用内容进行高亮
实现思路
1、提示词约束返回内容格式
2、Markdown组件新增元素点击事件响应
3、根据点击事件传入的参数,打开对应pdf文档,并跳转高亮相应位置
感谢你的分享,PDF 原文高亮是个很好的交互。
目前内置有相关 markdown 引用语法。不过没有做原文追溯。
我们在设计时,考虑了以下几个问题:
- 无法使用 1,2,3,4 这种角标,因为可能会用多个知识库搜索节点。
- 如果编辑过分块,或者模型对分块内容做过加工和整理,则无法追溯原文。以及手动插入的数据和非 pdf 也无法原文追溯,所以我们单独用分块做了独立的阅读器,而不是在原文上追溯。
- 我看了下你这个提示词,似乎会把原文也输出一遍?感觉会太费 tokens,可以用的 id 匹配法。
-
目前我的场景是单知识库,会先让AI判断内容应该去哪个知识库,所以没考虑多知识库的场景,但是从我理解来看多知识库对此是不影响的,只是需要调整一下从原文内容定位到知识库文档的逻辑
-
如果涉及到对原文内容的修改,那确实是无法对原文进行索引,但是我感觉在构建批量pdf知识库时直接修改原文是一个小概率行为,不然工作量也太大了
-
提示词中确实要求输出了原文,主要是以下几点考虑
- 用户希望知道AI每条结论的原文依据,增强可信度,避免胡编乱造。依据的原文往往只是一两句话,和检索召回的分片是两个概念,给到一整个分片让用户去猜意义不大,另外分片展示和原文的格式有较大差异,非技术人员看Markdown格式的原文也觉得很别扭
- 该需求实现中,只定位到对应的文件是不够的,还需要知道具体引用的文本内容,以及该文本在文件的什么位置,这些定位实现目前我能想到的就是让AI输出引用的原文片段
PS:现在token价格越来越低,做这种知识库的小伙伴应该不介意这点输出token,毕竟输入已经投入很多了
- 关于非pdf,几点思考供参考
- 文件类知识转pdf是比较容易的,我遇到的梳理好的知识也是以pdf居多
- 非pdf的实现需要调研文件预览组件是否支持跳转指定位置和高亮,如果支持,那么加入其他文件类型的原文对应也是可行的
不引用 github 回复了,太长了。
我理解你的思路了。 关于原文是否为 pdf 这个,我认为问题不大,直接纯文本来高亮展示对应引用即可,效果也差不多,不一定需要看到 pdf 格式,这样更通用些。而且可以做更多自定义操作。
重点区别在于,是让 ai 精准引用原文还是粗略引用分块的问题。
对于让 ai 精准输出来源,确实除了让它输出原文,好像没啥办法。
这个功能设计,除了考虑原文展示外,我觉得还可以一起考虑检索得分展示和标注。
good job
这个功能Ragflow已经实现了,但是Ragflow的文档解析太慢了,已被我放弃了
楼主您好,请问是在哪个路径下改的代码呀
楼主您好,本人刚入门大模型,您实现的这个功能非常有实用性,请问能分享下代码吗或者能描述下怎么操作的呀?感谢感谢,可有偿