请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于如何提起文档中的图片

你好老师,最新在寻思着将手册指南类的docx文档进行解析,包含图片这种(先不考虑图片内容识别,图片的意思根据最近上面段落的意思走),在回答是也能将图片进行输出。这种是不是在做向量化计算的时候需要将图片上传之后的url也进行计算然后一块向量化,但是这个感觉会影响向量换化计算的结果,因为url本身是没有语义信息的,像这种一般怎么处理比较好呢,还有我的技术栈主要集中在Java,对于这种解析图文混编的没有成熟框架,得自己写,像python有吗?

正在回答 回答被采纳积分+3

1回答

阿基米口 2025-09-12 17:42:02

你好,挺好的问题。

据我所知,目前还没有框架可以支持这种,框架一般是支持比较通用的功能。但是可以通过框架来自己实现。

在补充的项目中chatdoc 【https://git.imooc.com/coding-920/chatdoc】也有基于ragflow deepdoc实现类似的功能,可以参考下。

https://img1.sycdn.imooc.com/szimg/9d0c5e6809c3e5be11340674.jpg


简单回顾下RAG的过程:
1. RAG知识构建: 文档-->解析文档-->文档分割chunking-->按chunking进行向量化embedding --> 存入向量数据库(包括:文本,文本对应embedding,还可以包括自定义一些meta元数据,如文本的信息日期)这部分可以查看(向量数据库那一章)

2.RAG检索: 用户query-->query 向量化embedding-->在向量数据库搜索最相似的向量记录-->返回若干top-k的记录(包括:文本,文本对应embedding,还可以包括自定义一些meta元数据,如文本的信息日期),一般只拿到文本 --》 将文本做为上下文和query一起送给LLM-->LLM回答问题

可以跟着过程来实现上面你提到的问题,具体思路如下:

  1. 文档解析:要实现图片,首先要先能解析docx图片的解析,比如python里python-docx(只要支持docx标准的都可以)。解析的时候要注意文档顺序:比如 文字+后面是 图片 (这个图片可以保存到本地)

  2. 文档分块:分块的时候按照你的需求【图片的意思根据最近上面段落的意思走】,如果遇到【文字+后面是 图片】的时候:文字进行分块,图片不做处理,只返回(文字,图片地址)类似这样的结构

  3. embedding入库: 遇到(文字,图片地址),将文字进行向量化,同时将图片地址做为元数据,一起存入向量数据库

可参考:https://git.imooc.com/coding-920/chatdoc/src/master/doc/6.RAGFlow-Docx%e5%a4%8d%e6%9d%82%e6%96%87%e6%a1%a3%e8%a7%a3%e6%9e%90.md

https://img1.sycdn.imooc.com/szimg/0206036809c3ea3d12350654.jpg


在检索的时候:在返回文本的时候,查看是否有metadata数据,有的话就可以直接展示了。


对于java来说,了解了基本的思路,用自己熟悉的框架,实现应该比较有方向性一些。

1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉3333946 #1
    元数据的意思是,将图片地址作为向量数据库的一个属性进行存储呗,根据相似度将内容查询出来之后再将地址拼接到后面或者指定位置,然后再发给大模型吧
    回复 有任何疑惑可以回复我~ 2025-09-15 22:07:09
  • 阿基米口 回复 提问者 慕粉3333946 #2
    嗯,可以这么认为。
    回复 有任何疑惑可以回复我~ 2025-09-15 23:18:11
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号