40
如何处理RAG系统中的实时数据更新?
RAG检索增强生成中等
📋 面试问题
如何处理RAG系统中的实时数据更新?
✅ 期望回答
挑战:新文档实时进入 -> 需要即时能被检索到;过时文档需要即时下线
方案:
- 增量索引(增量录入):新文档到达 -> 实时分块 -> 实时Embedding -> 实时插入向量数据库;Milvus/Qdrant支持实时插入和秒级可搜索
- 版本管理:文档用doc_id+version标识,更新时保留版本历史;检索时过滤只返回最新版本
- 过期处理:用TTL自动删除过期文档(Milvus TTL、Qdrant Expiration)
- Webhook触发:文档系统(S3/Notion/Confluence) Webhook -> 消息队列 -> 异步更新索引
文档系统 -> Kafka -> 流处理服务(Flink/Go Worker) -> Chunking -> Embedding -> 向量数据库
一致性权衡:大多数RAG场景可接受秒级~分钟级的最终一致性;如需强一致性用加锁+同步索引更新#实时更新#增量索引#TTL