RAG的有趣新尝试:将文本编码进MP4文件实现思路及Agentic-doc处理文档

今天是2025年6月5日,星期四,北京,晴

我们继续来看一些有趣的数据和新发现。

一个是将文本编码进MP4文件的有趣RAG尝试,思路很有趣,看看怎么做的。

另一个是Agentic-doc,用agent来做个文档处理。

都是很有趣的工作。

二、将文本编码进MP4文件的有趣RAG尝试

关于语义搜索进展,来一个很有趣的工作,Memvid,直接将文本数据编码成视频文件,通过将文本块压缩到单个MP4文件中,做语义搜索:https://github.com/olow304/memvid

索引的构建过程在:https://github.com/Olow304/memvid/blob/main/examples/build_memory.py,说明文件在:https://github.com/Olow304/memvid/blob/main/USAGE.md

核心点是,在实现快速语义搜索(1M块少于 2秒)目标时,不使用向量化数据库,而是基于MP4索引文件,所以整个数据流为:

一个是构建索引,怎么把chunk编码成视频做存储

chunk转二维码并记录索引,做embedding后送Faiss。

1、mp4文件的构成

之前的方案,需要额外有一个存储文档chunk的数据库,比如es,mongodb或者mysql,所以,为了解决这个问题,就用mp4来存储一个个chunk,那么怎么存储,就是编码为一个个二维码,然后记录出这个二维码位于整个视频中所在的帧索引,也就是timestamp,所以就会形成以下这个结构:

那么,问题来了,怎么把chunk变成一个二维码?那就是使用FFmpeg用于视频编码,使用libzbar0用于二维码解码

2、索引文件

索引文件包括:memory_index.json+ memory_index.faiss

在向量化方面,其实跟之前并没有区别,还是使用sentence_transformers进行chunk嵌入,然后存入faiss中。

这么一来,除了faiss之外,就没有额外的数据库了,给出了一个大致的量化结果:

一个是索引的使用,也就是执行检索

query做embedding后送faiss做检索,然后获取frame number去获取对应的chunk,送大模型做生成。

这种思路很有趣,属于数据库中的一个新奇思路,但是其中会遇到二维码生成失败等问题,并且并不灵活,比如我们通常在rag索引的过程中,会添加很多元素,并且还有Graphrag等方案,这种就很难支持了,所以,从灵活性和效果优化上来说,并没有太大的实用意义

二、Agentic-doc,用agent来做个文档处理

上次有人问用agent来做文档解析,真有了,gentic-doc:高效提取复杂文档结构化数据的Python库,从表格、图片、图表等复杂文档中提取结构化数据并返回精确位置的层级JSON。 支持超长文档,单次调用可处理1000+页PDF;自动重试与分页,智能处理并发、超时和速率限制;提供可视化工具,可生成标注提取区域的图像,方便调试与验证。

这个倒不奇怪,因为接入agent范式之后,串起来各类api,理论上来说,就能解决一批单模型无法做的事情

地址在:https://github.com/landing-ai/agentic-doc,不过要收费:https://landing.ai/agentic-document-extraction,视频介绍:https://landing.ai/videos/agentic-document-extraction

说下测试结论,社区成员有做过测试,性能跟minerU在线版差不多

参考文献

1、https://github.com/olow304/memvid

2、https://github.com/landing-ai/agentic-doc

(文:老刘说NLP)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往