字节面试官问:100 个客户共用一份 RAG,怎么不串库?

字节面试官问:100 个客户共用一份 RAG,怎么不串库? 上线 6 个月跨租户检索泄露每月 1-2 起。某 SaaS RAGA 公司一句季度财报怎么写召回了 B 公司内部合同文档。上一课讲完超时降级这课进入多租户安全。到底是 prompt 没兜住还是检索层漏了字段先把黑话压成一句话每份文档都要贴两张标签属于哪个客户、谁有权限看访问控制 / ACL。每次检索都要先验票票不对文档连候选名单都不能进。每次放行都要留痕方便出事后查清是哪一层漏了。一、面试现场面试官提问“100 个客户共用一份 RAG怎么不串库”“prompt 拦截算不算太晚”字节多租户安全面候选人答完system prompt 里加一句约束面试官立刻追问——B 公司文档已经在上下文里了。候选人卡住。权限不是一句 prompt是索引架构 资料标签 检索动作三件套直接回答先验客户身份按可见范围检索。多租户 RAG 要避免 A 客户召回 B 客户文档关键是让无权限资料连候选名单都不能进。二、大多数人怎么答的典型翻车回答“在 system prompt 里加一句’只回答本公司的问题’就行了。”这个答案不是完全没用——作为输出层提醒多一道兜底也是好的。但只把它当主防线三个硬伤跑不掉① LLM没有强制权限边界幻觉或越狱都能绕过② B 公司文档已经被检索到上下文里了数据扩散已经发生模型拒不拒答都太晚③没有可审计字段事故复盘时根本定位不到是哪一层漏的。还有一类回答是每个客户单独一份向量库。不是错是成本没算——100 个小客户每家一份基础设施一年烧光预算。物理隔离值得对强合规客户做不是默认方案。默认要做的是给每段资料打上“客户归属”和“可见范围”两张标签让权限检查在检索前就生效——下面三种架构都绕不开这件事。三、深度解析三种方案 一条硬规则权限不是 prompt 兜底是索引架构 文档标签 检索动作。下面只看两件事三种隔离方案怎么选以及哪条规则绝对不能退。技术名词会保留在必要位置但不再把正文写成变量清单。方案 1物理隔离一租一库本质是单租户隔离故障半径不出单个客户边界某一家出事不影响其他客户每个客户一套独立检索库。适合强合规客户银行、医院、政府或者单客户数据量足够大单独建库不浪费。代价N 个客户 N 份基础设施 N 份运维通用知识库要复制 N 份或单独维护。100 个小客户全做物理隔离 一年烧光预算。方案 2共享索引 检索前访问控制ACL过滤所有客户共用一套检索库但每份资料必须带上“属于哪个客户、哪些角色能看”。**关键**权限条件必须由检索服务强制带上不是写在 system prompt 里提醒模型。适合通用 SaaS、绝大多数中小客户。**风险**一旦检索层漏验票就是跨客户泄露。方案 3共享索引 索引分区namespace同一套检索系统里分多个空间按客户或团队切开。**边界**这种分区是“默认看不到对面”不是“绝对不能跨”——如果调用方传错参数仍然可能跨过去。适合同一家公司内部多团队 / 多业务线不适合外部租户。违反后果把外部客户隔离只做成“分区开关”本质上就是一行参数切错就可能串库。三方案对照矩阵维度物理隔离共享ACL共享NS成本高低中故障 半径单租户全局单 NS适合强合规通用 SaaS内部多团队NS 索引分区namespace硬规则不可让步权限过滤必须发生在检索前让 LLM “看到 B 公司文档之后自觉拒答” 数据扩散已经发生。不管你选哪种方案这条都不能让步。四、面试官追问链追问 1“共享索引 ACL 过滤的方案最容易在哪一行代码出 bug”不是标签写少了而是检索时忘了带权限条件或者带错了客户身份。最常见的真实 bug匿名接口拿不到客户身份检索层却没有直接拒绝最后把“缺失客户”当成“全库可查”。**防御**所有检索统一走安全封装客户身份缺失就直接拒绝不允许业务代码绕过调用点用单测拦截裸检索。追问 2“物理隔离 100 个租户通用知识库’也想被检索怎么办”三选一① 公共知识库独立放每次检索同时查“公共库 客户库”再合并排序——成本最低用并行调用把延迟拉回单倍② 通用库复制到每个客户库——写入复杂更新麻烦③ 公共资料打上“公开可见”标签检索条件同时允许“本客户资料 公共资料”。推荐 ①排序模块把多路结果合并到最终列表。如果业务真要跨客户比如集团客户内部跨子公司必须走显式工单 业务审批审计里单独标记“跨客户访问”月度复审单独看这条线。追问 3“一次跨客户检索泄露事故发生后审计日志里要看什么”至少看 6 件事请求编号、用户、客户、问题原文、召回了哪些文档、权限检查结果。关键是权限检查结果——要能看出过滤有没有生效、过滤掉了多少文档、最终放行了哪些文档。出事时如果这条日志缺失根本判断不出是检索层没过滤还是资料标签本身写错了。审计日志必须每次检索都写至少留 90 天敏感字段要脱敏。五、从 prompt 兜底切到检索前拦截场景某 SaaS RAG 上线 3 个月后安全团队复审发现之前靠 prompt 兜底没做检索前过滤。下面是切换到“共享检索库 权限过滤”的工程动作。STEP 1 · 给资料补齐四类标签每段资料补齐四类标签属于哪个客户、谁能看、敏感级别、有效期。历史数据按文档归属回填先确定资料来自哪个文档再确定文档属于哪个客户。↳ 结果基础数据准备 2 天回填完成率 100%。STEP 2 · 检索层封装 强校验所有检索调用必须走统一的安全入口这个入口只做三件事① 校验客户身份非空缺失直接拒绝② 自动拼好“客户 角色”的权限条件③ 写审计日志。↳ 结果22 个调用点改造 1 天单测 mock 拦截裸调用。STEP 3 · 影子流量对比 灰度切流10% 流量先走新检索入口和旧路径对比召回结果。预期新路径召回应该是旧路径的子集因为多了一层权限过滤。如果新路径反而召回更多——先验证旧路径是不是错过滤了合法文档确认后再升级排查。↳ 结果灰度跑 3 天零异常全量切流。STEP 4 · 审计日志上线 月度复审每次检索都记录用户、客户、问题、召回文档、权限检查结果。月度跑跨客户自检一旦出现异常跨客户访问立即报警。确实需要跨客户的业务场景单独走审批和事件流。↳ 结果审计基础设施上线 2 天自检脚本日跑一次。↳ 复盘数字匿名 SaaS上线后90 天内零跨租户泄露事件之前每月 1-2 起P95 检索延迟180ms → 195ms多了 15ms 过滤层业务可接受。事故根因复盘不是 prompt 没写好是检索调用漏了客户身份——加上检索前强校验后缺身份的请求直接拒绝根因消失。我的判断排期优先级真要落地① 检索层统一入口 客户身份强校验——截至 2026-05-13这是堵住跨客户泄露最快的一刀2 天能上② 资料四类标签回填③ 审计日志 月度自检④ 物理隔离只对强合规大客户单独做。我认为前两步不到位后面都是花架子。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】