RAG做增量更新和全量更新?
一般情况下都是做增量更新,增量更新比较麻烦:
数据结构:
更新:每个chunk里包含一个document_id,如果文件更新,则根据document_id删除所有的对应的chunk,然后再添加进去。
删除:根据document_id,进行删除即可。
添加:直接添加即可
一般情况下,我们采用增量更新而不是全量重建。首先通过更新时间或文件 Hash 判断文档是否发生变化;
新增文档直接解析、切分、生成 Embedding 并写入向量数据库;
修改文档时,以 document_id 为单位删除该文档对应的所有 Chunk,再重新切分、生成 Embedding 并写入;
删除文档时,根据 document_id 删除对应的所有 Chunk。整个过程中,每个 Chunk 都保存 document_id、chunk_index 等元数据,方便进行管理。更新完成后,我们还会使用固定测试集结合 RAGAS 做回归评测,确认知识库更新没有导致检索质量下降,再正式投入使用。
下一篇: 无
相关文章
-
RAG做增量更新和全量更新?
数据结构: 更新:每个chunk里包含一个document_id,如果文件更新,则根据document_id删除所有的对应的chunk,然后再添加进去。 删除:根据document_id,进行删除即可。 添加:直接添加即可
NEW个对象 2026-07-07
-
redis分布式锁如果redis挂掉了,怎么办?
redis暂时没有很好的解决方案,可以红锁来解决,但是红锁的建设成本太高。 红锁其实就是,配置多个redis mater环境,比如有5个,如果从3个redis mater里获取到了锁,则算成功。
NEW个对象 2026-07-06
-
Agent权限机制的理解
1、基于RBAC + OAuth2 + JWT的认证、权限机制 2、在请求agent之前进行权限校验,使用preauthorize注解 3、将用户的权限信息,存起来,比如:ThreadLocal里获取其它里面 4、在请求tool的时候,进行权限认证。 5、如果是mcp请求,则请求体里带上凭证。
NEW个对象 2026-06-30