一、问题背景
在RAG应用中,经常需要对原始文档中的图片连同相关的文本一同输出在答案中,例如产品外观、设计图、尺寸图等,方便用户直接在答案中进行参考。
但用户往往碰到一些场景,例如:本来上下文中有图片,但是答案中却没有图片;或者答案中的图片不能正常显示出来。这些情况都非常影响用户的体验,导致用户还要再次回到原始文档中去获取图片内容。
我们基于AI PaaS平台在实际项目中的落地和效果优化经验,总结了以下方法,可以针对上述不输出图片的问题进行优化。
RAG应用输出的最终答案中是否带图片与文档有直接的关系,主要取决于这几个前提:用户原始文档中包含图片,图片描述和上下文具有语义关联;在构建知识库后,图片转成的URL地址和上下文在相同分片中,这样图片才能和上下文一起被召回。
示例1:原始文档有清晰的章节结构,图片与上下文切分在一个分片中
原始文档:
对应的分片信息:
示例2:原始文档没有明确的章节,图片与上下文语义关联比较弱
原始文档:
分片信息:
二、优化方法介绍
1. 大模型回答不展示图片,原因在于原始文档中的图片信息与上下文缺少语义关联。
排查方法:
先确认rerank(召回重排)的输出中是否带有图片数据。
在引用编排页面的预览调试,或者会话日志记录,都有类似下图所示的工作流输出,点击召回重排的内容查看。
确认是否有图片URL地址
如果rerank输出中没有图片URL信息:
● 检查期望输出的图片所在的切片是否有与问题相关的内容,由于知识库检索只能根据文本内容进行检索,如果没有包含与问题相关的文本,该切片是无法被检索到的。
解决办法:可以编辑该切片内容,加上相关关键字。如果原本文档里面有相关内容,但是切片中没有,可以添加一些与图片内容相关度较高的关键词。
示例,下图在原始分片中添加了“电气火灾监控系统架构图如下所示:"的文本信息。
原始切片:
● 如果图片所在切片包含相关内容,但是没有被检索出出来,则需要修改检索相关参数,例如提高召回个数、降低召回阈值等。示例如下:
2. 大模型对图片URL地址进行了篡改,导致图片不能正常显示
示例:
排查方法:确认分片中的图片URL地址与答案中的URL地址是否完全相同,如果不同,则说明是大模型在生成答案阶段对该分片中的URL地址进行了修改。
优化方法:修改大模型提示词,对输出内容限定做修改,在原始提示词中增加以下内容:
- - 如果背景知识中包含与问题相关的图片内容,请确保仅选择这些图片进行回答。
- - 输出图片时,必须保证使用背景知识中提供的图片地址,不得更改或生成其他地址。
- - 不允许自动生成背景知识中没有提供的图片信息
复制代码
这样通过精准限定提示词,就就能够缓解大模型在生成结果时,对图片的URL地址做修改。