RAG 分块时为什么要设置 chunk overlap(重叠),重叠过大有什么副作用?
围绕“RAG 分块时为什么要设置 chunk overlap(重叠),重叠过大有什么副作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答重叠如何保护跨边界语义、以及重叠带来的重复内容与索引膨胀代价。
程序员面试题库第 68 页,收录第 3351–3400 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“RAG 分块时为什么要设置 chunk overlap(重叠),重叠过大有什么副作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答重叠如何保护跨边界语义、以及重叠带来的重复内容与索引膨胀代价。
围绕“RAG 中如何确定文本分块(chunk)的大小,过大和过小分别会导致什么检索问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确块大小对召回语义完整性与嵌入精度的双向影响。
围绕“RAG 如何让生成答案带引用来源,上下文组装阶段需要给每个文档块附加什么信息”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答块级来源标识注入与提示模型引用编号的机制。
围绕“父子分块或重叠分块的 RAG 系统在组装上下文时如何去重合并,避免同一内容重复占用 token”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答按父文档聚合或相邻块合并的具体做法。
围绕“RAG 组装上下文时如何在有限 token 预算内分配系统提示、历史对话和检索文档,超预算时应优先砍哪部分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出优先级排序与截断策略的判断。
围绕“LangChain 的 ContextualCompressionRetriever 如何只保留文档中与问题相关的部”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答长文档召回后抽取相关片段以降低噪声与 token 成本。
围绕“RAG 系统选择嵌入(embedding)模型时应依据哪些维度,为什么嵌入模型换了必须重建索引”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答向量空间一致性要求及语言、维度、领域匹配等选择标准。
围绕“RAG 为什么需要向量检索与关键词检索(BM25)混合,单靠向量检索在哪类查询上会系统性失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出专有名词、编号、精确字符串等向量检索失效场景。
围绕“RAG 中 HyDE(假设文档嵌入)检索的原理是什么,为什么它对短问题比长问题更有帮助”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答先生成假想答案再嵌入检索的机制及短查询受益原因。
围绕“文档频繁更新的 RAG 系统如何做增量索引,如何避免删除文档的旧向量仍被召回”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按文档 ID 的 upsert/删除与索引一致性问题。
围绕“RAG 处理 Markdown 或代码文档时为什么需要结构化感知分块,直接用字符切分会破坏什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确标题层级/代码块边界被破坏的后果及按结构切分的做法。
围绕“RAG 检索前用元数据过滤(如租户、时间、文档类型)为什么应在向量搜索阶段下推而不是召回后再过滤”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确后置过滤导致 top-k 有效结果不足的问题及过滤下推的做法。
围绕“RAG 中最大边际相关性(MMR)检索如何解决 top-k 结果内容重复的问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明相关性-多样性平衡公式思路及 lambda 参数含义。
围绕“LangChain 的 MultiQueryRetriever 通过生成多个查询变体提升召回,它的适用场景和成本代价”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 LLM 生成改写查询再合并去重的机制及延迟成本。
围绕“多租户 RAG 系统如何利用元数据过滤保证租户间数据不串,仅靠 prompt 声明租户为什么不可靠”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答检索层强制过滤的必要性及 prompt 层约束可被绕过的问题。
围绕“RAG 检索结果为空或全部低于阈值时系统应如何兜底,直接把所有问题交给 LLM 自由回答有什么风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答阈值判空、拒答或降级策略及幻觉风险控制。
围绕“RAG 检索质量差但定位发现源头在 PDF 解析阶段,乱码、栏序错乱会如何传导到分块与嵌入”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确解析错误经分块放大为噪声块的传导链。
围绕“用户提问用词和文档措辞差异大导致 RAG 召回失败,除了换嵌入模型还有哪些检索侧手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答查询改写、混合检索、假设文档嵌入等检索侧方案。
围绕“RAG 中的查询改写(query rewriting)解决什么问题,为什么多轮对话里直接用用户原话检索会失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确指代/省略导致的检索意图缺失及改写为独立查询的做法。
围绕“LangChain 的 RecursiveCharacterTextSplitter 按什么优先级切分文本,为什么比”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明分隔符层级回退机制及其对语义完整性的作用。
围绕“RAG 流水线中重排应放在召回之后、上下文组装之前,为什么先用大 top-k 召回再重排比直接小 k 检索效果好”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答召回-重排两阶段分工与候选数设置。
围绕“RAG 已经有向量相似度排序了,为什么还需要重排(rerank)阶段,交叉编码器比双编码器强在哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确查询-文档交互建模带来的精度提升及不能全库使用的原因。
围绕“如何用检索级指标(recall@k、MRR)单独评估 RAG 的检索质量,而不是只看最终回答好不好”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答构造带标准答案的查询集并分层归因评估的方法。
围绕“RAG 中的语义分块(semantic chunking)是如何工作的,相比固定长度分块适合什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答基于嵌入相似度检测语义边界的机制与适用条件。
围绕“RAG 检索时设置相似度分数阈值有什么用,为什么不同嵌入模型间阈值不能直接复用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答阈值过滤无关召回的用途及分数分布依赖模型的原因。
围绕“RAG 中 step-back 提问(先生成更抽象的问题再检索)适合解决哪类具体查询检索不到背景知识的问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答具体细节问题缺乏上位概念匹配的机制与适用边界。
围绕“多跳问题(需要多份文档联合回答)在 RAG 中为什么要做子问题分解检索,单次检索失败的原因是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答复合问题向量无法同时匹配多主题的机制及分解-合并流程。
围绕“包含大量表格的文档做 RAG 时应如何分块,为什么表格按字符切开会导致检索失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答表格结构保持(整表为块或 HTML/Markdown 序列化)的判断。
围绕“文档时效性强的 RAG 场景(如政策、新闻)如何在检索中处理时间衰减,避免旧文档压过新文档”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答时间元数据过滤或时间衰减打分的方案选择。
围绕“RAG 分块按 token 切分和按字符切分有什么本质区别,为什么生产上更推荐 token 切分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答 token 计数与嵌入模型上下文窗口对齐的原因。
围绕“RAG 检索的 top-k 设多大合适,k 过大对 LLM 回答质量有什么负面影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答召回率与上下文噪声/成本之间的权衡及调 k 的实验方法。
区分复选框的勾选状态与提交值,说明 checked、defaultChecked、event.target.checked 和多选 ID 集合的关系,以及全选、禁用项和半选状态的边界。
围绕“如何利用把 JSX 作为 children 传入的方式减少 React 组件间不必要的 props 传递”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须示范用 children 开洞让中间层不感知内容的做法及其对重渲染的影响。
围绕“为什么不能把 React 的 children 当普通数组随意操作,官方提供了什么替代手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 children 可能是单节点、数组或函数导致直接 map 不可靠,以及 Children 工具方法的作用与替代思路。
围绕“用 cloneElement 给 React 子组件偷偷注入 props 有什么隐患,更好的替代方案是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出 props 来源隐晦、覆盖冲突等问题并给出显式传 props 或 Context 的替代。
用商品筛选页说明怎样从职责、数据流和变化原因建立组件层级,先做静态视图再识别最小状态,避免按每个 div 拆组件、把派生结果重复保存或过早使用 Context。
围绕“什么是 React 的复合组件模式,为什么 Select/Option 这类组件适合用它设计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明父子组件通过隐式共享(如 Context)协作形成的声明式 API 及其优势。
围绕“给 React 组件设计配置接口时,传配置对象和用复合组件两种风格如何取舍”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按定制深度、类型约束和可读性给出取舍依据。
围绕“React 条件渲染时同类组件的状态为什么会保留或丢失,和组件在树中的位置有什么关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 React 按位置加类型匹配决定是否复用状态,并给出用 key 或改变位置控制重置的手段。
围绕“开发组件库时,如何让一个 React 组件同时支持受控和非受控两种用法”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出『value 是否传入』判定与内部默认 state 合并的实现思路和切换警告规避,不复述受控非受控基础定义。
React 输入框为什么提示从非受控变为受控?从异步回填 undefined、文本空值和复选框 checked 类型入手,说明默认值、稳定模式和组件重建的区别。
从当前值的权威来源比较受控与非受控表单,说明实时联动、提交读取、外部重置和性能取舍,避免把非受控误解为没有状态,或认为受控模式一定更慢。
围绕“什么时候应该把 React 组件里的逻辑抽成自定义 Hook,它对组件设计和测试有什么好处”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出『相同状态逻辑出现在多个组件』的抽取信号及 Hook 单独可测的好处。
区分默认值与用户当前编辑值,说明异步数据回填、表单 reset、业务 key 重建与 ref 命令式赋值的选择,避免用随机 key 覆盖草稿或将 defaultValue 当成持续绑定。
围绕“如何让依赖网络请求的 React 组件在测试中不真的发请求,设计上要怎么改”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出把数据获取函数作为 props 注入或上移到容器组件的改造方式。
围绕“为什么在 React 18 中错误边界必须用 class 组件实现,函数组件加 Hook 为什么做不到”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 getDerivedStateFromError 与 componentDidCatch 无 Hook 等价物及社区封装方案的。
围绕“React 错误边界的降级 UI 和 componentDidCatch 里分别应该放什么内容”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分降级 UI 的可恢复引导与 componentDidCatch 中错误上报的职责划分。
围绕“React 应用里错误边界应该放在根级一个还是按功能模块放多个,怎么权衡”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按故障隔离范围与降级体验给出分层放置策略。
围绕“React 错误边界显示降级 UI 后,如何设计重试机制让组件树恢复正常”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出通过重置 key 或重挂载触发子树重新渲染的恢复手段及防止立刻再次崩溃的注意点。
围绕“React 错误边界捕获不到哪些错误,事件回调和异步代码里的报错该怎么办”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须列清渲染期可捕获与事件处理、异步、SSR 中不可捕获的边界,并给出 try/catch 兜底方案。