尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
手撕代码题(二):RAG 检索链路(10 题)
RAG 手撕题的死法很典型:九步流程背得一字不差,面试官说「那把 BM25 写出来」,就卡在 IDF 公式上;说「两路召回怎么合」,就把余弦分数和 BM25 分数直接相加。这类题筛的不是流程认知,是有没有把 RAG 当工程系统跑过:分块的 overlap 怎么算、过滤放在检索前还是后、索引更新要不要全量重嵌,全是踩过坑才答得出细节的点。本篇按出现频率排了 10 道,从分块一路手撕到增量索引。题目结构说明:每题四部分。考点定位讲面试官到底在筛什么;解题思路是白板上先写什么后写什么的框架;伪代码逐行注释,# [n_chunks, dim]这种标注就是面试时口述数据结构的话术,照着说;追问链是写完代码后 80% 会跟上的问题,附一句话答法。标记:⭐ 高频(出现率过半)、🔥 近两年新增。Q1 手撕分块:固定滑窗与递归切分(含 overlap)⭐考点定位:RAG 手撕的开场题。固定切分几乎人人会写,overlap 的步长计算和递归切分的降级顺序是两个卡人的点,写错步长会切出指数级数量的块,等于宣告没跑过。解题思路:固定切分就一句:步长等于 chunk_size 减 overlap。递归切分记优先级:分隔符从段落到句子到词逐级降级,全都切不动了才退化为固定切分。伪代码:def fixed_chunk(text, chunk_size=500, overlap=50): # text: str,chunk_size/overlap 单位是字符 step = chunk_size - overlap # 步长 450,不是 500 chunks = [] for start in range(0, len(text), step): piece = text[start : start + chunk_size] # 相邻块共享 50 字符 if len(piece) overlap: # 尾巴太短没信息量 if chunks: chunks[-1] += piece # 并进上一块,避免碎块 break chunks.append(piece) if start + chunk_size = len(text): break return chunks # List[str] ​ def recursive_chunk(text, chunk_size=500, overlap=50): separators = ["\n\n", "\n", "。", ",", " "] # 优先级从高到低 if len(text) = chunk_size: return [text] for sep in separators: if sep not in text: continue parts = text.split(sep) # 只用当前层级切 chunks, cur = [], "" for p in parts: # 贪心装包:能塞就塞 cand = cur + sep + p if cur else p if len(cand) chunk_size and cur: chunks.append(cur) cur = cur[-overlap:] + p # 新块开头带上 overlap 尾巴 else: cur = cand if cur: chunks.append(cur) # 单块仍超长(一个超长段落):对它递归降级切 out = [] for c in chunks: out += recursive_chunk(c, chunk_size, overlap) if len(c) chunk_size else [c] return out return fixed_chunk(text, chunk_size, overlap) # 没有任何分隔符,兜底追问链:「overlap 设多少?」- chunk_size 的 10% 到 20%,比如 500/50;太小切断跨边界语句,太大块之间冗余高、检索回来重复内容。「语义切分怎么做?」- 算相邻句子的 embedding 余弦,相似度跌破阈值就切一刀,最准但每句都要嵌入,慢。「Parent-Child 切分解决什么?」- 检索用小块保精确,命中后返回其所属大块保完整,两全。Q2 手撕 BM25 打分 ⭐考点定位:考对经典稀疏检索的真懂程度。IDF 公式写不出的占多数,词频饱和项和长度归一化项说得出作用的更少。写得出 BM25,面试官才信你理解向量检索补的是什么。解题思路:总分等于每个查询词的贡献求和。每个词贡献 = IDF × 词频饱和项。饱和项分子分母
RELATED

相关推荐

从零构建交互式文字PV:Vue3+GSAP时间线驱动的前端实践

从零构建交互式文字PV:Vue3+GSAP时间线驱动的前端实践

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

📅 2026/11/7 10:52:55
AI获客智能体横评:谁才是真正的营销效率革命者?

AI获客智能体横评:谁才是真正的营销效率革命者?

海外市场那里, 获客成本每年都在上涨, 涨幅达到了37%, 传统销售模式正面临着, 前所未有的压力。怎样在不增加人力的情形下, 实现客户开发的规模化呢? 答案也许藏在AI智能体技术当中。本文针对市面上主流的市场营销AI智能体, 展开综合评测, 从技术架构、功能实用性、合规安全等…

📅 2026/10/13 3:14:07
从聊天到科研实操:构建Scientific Agent技能体系与工程落地

从聊天到科研实操:构建Scientific Agent技能体系与工程落地

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

📅 2026/10/4 4:36:28
MORE NEWS

更多资讯

📰

智通电工证郑州报考避坑指南:新手必须知道的3个关键点

智通电工证郑州报考避坑指南:新手必须知道的3个关键点 你是不是也像我一样,刚找到一份电工相关的工作,却发现没有特种作业操作证根本没法上岗?现在电工证办理成了刚需,但郑州本地太多培训机构五花八门,很多人一不小心就踩了坑。今天我就从一个刚考完智…

📰

电工证刷卡查询过期了不知道怎么复审延期?上岗必备操作指南

电工证刷卡查询过期了不知道怎么复审延期?上岗必备操作指南 证书过期了不知道怎么复审延期?电工证刷卡查询是每个特种作业人员上岗必备的第一步,很多人因为不了解复审流程,导致证书失效,影响工作安排甚至被单位辞退。尤其是像南阳公路工程这类需要频繁接…

📰

电工证刷卡查询怎么操作?电子证书过期别慌,教你一步步处理

电工证刷卡查询怎么操作?电子证书过期别慌,教你一步步处理 证书过期了不知道怎么复审延期?别急,现在大多数地区都已启用 电子证书 ,通过 电工证刷卡查询…

📰

盐池考电工证全国通用怎么考?新手必看避坑指南

盐池考电工证全国通用怎么考?新手必看避坑指南 你还在为找不到电工证上岗资格而发愁吗?在宁夏盐池,没有电工证就别想进工地、进工厂、进项目,连最基本的电工岗位都轮不到你。盐池考电工证已经不是选择题,而是必答题,而且这个证书是 全国通用…

📰

鹿寨去哪里复审电工证 别踩坑了,实操考试心里没底怕挂科

鹿寨去哪里复审电工证 别踩坑了,实操考试心里没底怕挂科 实操考试心里没底怕挂科?别踩坑了,你不是一个人。在鹿寨地区,很多人在报考电工证时都经历过类似的焦虑,尤其是在准备复审时,对流程、地点、注意事项一知半解,结果反而耽误了时间、花了冤枉钱。…

📰

电工证怎么改电话多少钱 安阳应届生实操指南

电工证怎么改电话多少钱 安阳应届生实操指南 之前考的证在外省能不能转过来?这事儿我跟你说,真不是闹着玩的。现在很多人手里拿着电工证,但电话号码改了,单位换了,证也得跟着动。特别是像我们安阳这种地方,很多应届毕业生刚拿到证就遇到各种问题,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬