权限模型:企业 RAG 里没人做预算的那部分
检索质量已经是个足够解决的问题。真正让企业 RAG 项目停下来的往往是权限——不是因为它难,而是因为它来得太晚,一来就逼你重写。
发生了什么
一套 RAG 系统建在文档库上,效果不错,准备推广。有人问了个很合理的问题:采购部的人能不能看到只给法务看的文档?团队在检索之后加了个过滤器就上线了。三周后审计发现:虽然内容没显示,但排序信号已经泄露了。项目就此无声冻结。
为什么落地团队要在意
检索后过滤是企业 RAG 里最常见的错误,而且比看上去更严重。在搜索返回之后再过滤,意味着搜索本身是在用户无权查看的文档上跑的——排序、数量、整体行为都反映了一个用户无权接触的语料。即使什么都没显示,信息也已经流动过了。
该做什么
把访问控制列表写进每一个片段,在检索之前过滤,让无权查看的文档根本没有机会进入候选集。ACL 要放在索引里,并且把权限变更当作索引写操作来处理,而不是留给夜间批处理——一个今早被撤权的外部人员,不该在今天下午还能被索引回答出来。在 CI 里用三个不同权限级别的账号做测试,断言每一个被引用的片段都满足调用者的 ACL。
组织那一半
必须有人负责把源系统的权限模型映射到你的系统上,而这个人很少在工程团队里。第一周就把他找出来。技术工作只要一周,组织工作才是要花一个季度的部分,也正是它悄悄杀掉了那些「技术上已经完成」的项目。