首页/新闻资讯/正文详情

5000 万向量、日均 300 次文档更新:RAG 增量一致性架构的实战复盘

发布时间:2026/9/24 3:04:25 来源:云帆数科 栏目:资讯中心
5000 万向量、日均 300 次文档更新:RAG 增量一致性架构的实战复盘
5000 万向量、日均 300 次文档更新:RAG 增量一致性架构的实战复盘关键词:RAG、增量索引、Transactional Outbox、Kafka、Milvus、版本发布、最终一致性凌晨三点,客服机器人又报出了已经失效三个月的企业报价。报价 PDF 三天前已上传到对象存储,业务库也记录了新版本;但 embedding 服务超时后,索引任务只写入了一部分 chunk,旧 chunk 仍可检索。模型没有“记错”,它拿到的是一组过期且矛盾的证据。这是RAG Index Drift(索引漂移):事实源已改变,派生检索索引没有收敛。对于约 5000 万向量、日均约 300 次新增/修改/删除的知识库,全量重建一次需要 6~8 小时,不能作为日常同步方案。本文以这次脱敏后的报价事故为案例,先解释设计,再给出一个可复制的最小实现。其目标不是让所有系统瞬时强一致,而是保证:失败、重复、乱序和删除发生后,用户只会检索到一个完整、可解释的文档版本。一、贯穿案例:报价从 v17 更新到 v18 时发生了什么文档price-enterprise.pdf的稳定业务主键为doc-42。事故过程如下:时间事件旧系统结果周日 10:00报价 v17 发布10 个 v17 chunk 可检索周一 09:05上传 v18,价格变更对象存储、业务库已是 v18周一 09:06embedding 超时v18 仅写入 3 个 chunk周一 09:07任务先删除部分 v17查询为空或混召新旧价格周三 03:00客服告警索引漂移持续三天错误不只在于“旧向量没有删干净”。真正缺少的是可见性协议:当 v18 还未完整构建时,它不应对用户可见;v17 也不应被提前删除。对任一(tenant_id, doc_id),检索只能看到一个已完整构建且已发布的active_index_version;候选、失败和撤销版本不得参与召回。上传 API对象存储不可变版本对象PostgreSQL文档状态 + OutboxOutbox Relay / CDCKafka索引 Consumer解析 · 切块 · EmbeddingMilvus候选向量RAG Query API二、事实源与版本模型向量数据库是可重建的派生索引,不是事实源。PostgreSQL 决定文档是否存在、哪个源版本是期望版本、哪个索引版本已发布、租户与 ACL 是什么;对象存储提供不可变内容快照;向量库只做相似度检索。不要把内容哈希称作“文档 ID”。至少要拆开如下身份:字段用途doc_id不随文件名或内容变化的业务主键source_version上传/删除事件的单调递增版本object_uri + etagConsumer 必须读取的不可变文件快照content_hash规范化 chunk 文本的去重与 embedding 缓存键index_version一次完整候选索引的发布版本embedding_model、chunker_version生成条件与兼容性边界chunk_key = sha256(doc_id + index_version + ordinal + content_hash)可作为 Milvus 主键。文本未变时,可以从(content_hash, embedding_model)缓存复用 embedding;但新发布版本仍应拥有独立的 chunk key,避免与旧版本互相覆盖。

相关推荐

Prisma 数据导出完整指南:CLI 命令与原生 Export API 实战
Prisma 数据导出完整指南:CLI 命令与原生 Export API 实战

后端数据库GraphQL 【免费下载链接】prisma1 💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated] 项目地址: https://gitcode.com/gh_mirrors/pr/prisma1 点击查看 免费下载 导读 本文围绕 Prisma 服… · 2026/9/24 3:04:19

DA14585固件烧录全链路指南:UART Bootloader与SPI Flash避坑实战
DA14585固件烧录全链路指南:UART Bootloader与SPI Flash避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:04:19

Codex Security 安全披露与威胁模型指南:漏洞报告范围、本地信任边界与扫描安全实践
Codex Security 安全披露与威胁模型指南:漏洞报告范围、本地信任边界与扫描安全实践

应用安全漏洞扫描AI 应用 【免费下载链接】codex-security OpenAIs Codex Security CLI and TypeScript SDK for finding, validating, and fixing security vulnerabilities. npm: https://www.npmjs.com/package/openai/codex-security 项目地址: https://gitcode… · 2026/9/24 3:04:19

单片机开发三语言协同:汇编/C/C++选型与工程实践
单片机开发三语言协同:汇编/C/C++选型与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:37:45

LLM+BI落地实战:从NL2SQL到自动异常发现的三层技术锚点
LLM+BI落地实战:从NL2SQL到自动异常发现的三层技术锚点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:37:38

LTspice噪声仿真三大硬核误区与精准建模实战
LTspice噪声仿真三大硬核误区与精准建模实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:37:08

MOS非本征电容:仿真与实测差异的根源与LTspice建模
MOS非本征电容:仿真与实测差异的根源与LTspice建模

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:37:08

如何制作电商商品展示视频
如何制作电商商品展示视频

制作电商商品展示视频,你可以使用小云雀AI完成从商品素材到营销脚本、素材生成和片段返工的核心创作环节,最终产出可直接投放到电商平台或广告账户的成片素材,仅在价格合规、投放设置和最终审核环节需要人工承接。本文将以一款日常通勤保温杯… · 2026/9/24 3:36:49

N1盒子刷Armbian安装CasaOS:轻量级NAS搭建与内网穿透指南
N1盒子刷Armbian安装CasaOS:轻量级NAS搭建与内网穿透指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:36:31

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码