RAGFlow - 如何让知识库回答带图片 (四)
在 RAGFlow 的知识库中上传带图片的 word 文档后,在数据集的解析块中可以看到图片。但在聊天中却不知道怎么显示出来。


一通 google 给的方法都是,先通过程序解析 word 文档,将文档中的图片上传到一个文件服务器,然后将图片地址替换回 word 文档,之后再通过 api 接口的方式上传 RAGFlow。
以下讲解纯手工如何让知识库回答带图片
一、JSON 文本格式
1、将 word 中的图片上传服务器,得到图片 url 链接
例如:我得到如下链接
https://image.test.com/upload/a123.png
2、将 word 文档内容转为 json 格式
由于我的 word 文档内容是售后服务的 FAQ,所以我的 json 是 question(问题)、answer(回答)、url(对应的外部链接)、image(对应的图片)。处理好后如下,注意保存文件后缀 .txt(RAGFlow 本来是支持 json 文件的,但不知到为什么我上传带图片的 json 文件时总报错???)
{"question":"浏览器打开后台很慢","answer":"问题可能由多种因素引起,1. 网络延迟或波动。\\n2. 浏览器缓存问题","url":"","image":""}
{"question":"如何配置网络","answer":"可以根据图片内容配置网络","url":"","image":"https://image.test.com/upload/a123.png"}
{"question":"官网地址是什么","answer":"官网地址如下","url":"https://www.baidu.com","image":""}
3、创建知识库,并在知识库中新增文件
注意:
- 建议文本块大小:设置为1。(这里跟我之前理解不同,我之前理解是没有遇到分段标识符时,到达这个大小后分块。遇到分段标识符时则直接分块。但用下来是,遇到分段标识符但没超过这个大小时,会继续读内容。直到超过这个大小并遇到分段标识符后,才会分块。)
- 文本分段标识符:由于我的文件中是换行,代表下一个问题。则这里设置 \n

解析完成后如下图,能看到每一个问题一个分块:

4、创建聊天
注意,修改系统提示词,如下。
你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你的回答必须包括“知识库中未找到您要的答案!”这句话。回答需要考虑聊天历史。
以下是知识库:
{knowledge}
以上是知识库。
注意:
- 遇到 url 请转成 a 标签,a标签文字的颜色设置为蓝色
- 遇到 image 请转成 img 标签


5、测试聊天

二、Markdown 文本格式
1、将 word 中的图片上传服务器,得到图片 url 链接
2、将 word 文档内容转为 md 格式
整理后如下注意保存文件后缀 .txt(同样 RAGFlow 本来是支持 md 文件,但不知到为什么我上传带图片的 md 文件时总报错???)
# 浏览器打开后台很慢 问题可能由多种因素引起, 1. 网络延迟或波动。 2. 浏览器缓存问题 --- # 如何配置网络 可以根据图片内容配置网络 <img src="https://image.test.com/upload/a123.png"> --- # 官网地址是什么 官网地址如下 <a href="https://www.baidu.com" style="color:blue">https://www.baidu.com</a>
3、创建知识库,并在知识库中新增文件
注意:
- 建议文本块大小:设置为1。(这里跟我之前理解不同,我之前理解是没有遇到分段标识符时,到达这个大小后分块。遇到分段标识符时则直接分块。但用下来是,遇到分段标识符但没超过这个大小时,会继续读内容。直到超过这个大小并遇到分段标识符后,才会分块。)
- 文本分段标识符:由于我的文件中是 --- ,代表下一个问题。则这里设置 `---` ,其中 ` 是 1 左边 ~ 号键

解析后如下:

4、创建聊天
注意,修改系统提示词,如下。
你是一个智能助手,请总结知识库的内容来回答问题,请列举知识库中的数据详细回答。当所有知识库内容都与问题无关时,你的回答必须包括“知识库中未找到您要的答案!”这句话。回答需要考虑聊天历史。
以下是知识库:
{knowledge}
以上是知识库。
注意:
-- 遇到 a 标签,不要修改 a 标签中的属性直接显示
-- 遇到 img 标签,不要修改 img 标签中的属性直接显示

5、测试聊天

三、JSON 文本格式(优化:将 url、img 直接加到 answer 中)
当然,也可以像 「二、Markdown 文本格式」 一样, 直接将链接添加到 answer 中。如下
{"question":"浏览器打开后台很慢","answer":"问题可能由多种因素引起,1. 网络延迟或波动。\\n2. 浏览器缓存问题 ","url":"","image":""}
{"question":"如何配置网络","answer":"可以根据图片内容配置网络 <img src=\"https://image.test.com/upload/a123.png\">","url":"","image":""}
{"question":"官网地址是什么","answer":"官网地址如下 <a href=\"https://www.baidu.com\" style=\"color:blue\">https://www.baidu.com</a>","url":"","image":""}
提示词也无需修改

测试聊天


浙公网安备 33010602011771号