Skip to content

面试问题与回答要点

这些问题用于自测。回答要先给具体案例,再解释机制与限制,最后提供真实代码和测试。

问题回答要点练习入口
为什么不直接把全部 Schema 发给 LLM?上下文预算、干扰、权限暴露;两级召回;仍需测漏召回V2-S03
为什么用 OpenSearch + Milvus?编码/关键词与语义表达互补;RRF 排名融合;消融与时延V2-S02~S03
RRF 和 reranker 有何不同?前者融合已有排名,后者重新评价候选相关性;都不能补回完全漏召对象V2-S03
Retrieval 和 Linking 的区别?相关候选与概念确定映射;保留证据和歧义V2-S04
最短 Join Path 为什么不够?粒度、基数、业务含义、历史键与多事实扇出V2-S05
为什么不直接用 Neo4j?当前关系规模可在内存处理,控制库统一治理;按实测再评估ADR-003
Semantic Layer 为什么不是 Prompt 模板?指标、规则、粒度、版本、审核与独立回归V3-S01~S02
毛利率为什么不能取每行比例平均?总毛利/总收入与简单平均权重不同;需统一粒度与期间V3-S01
Verified Query 怎么保持可信?审核、版本兼容、权限过滤、失效重验、题集隔离V3-S04
IR 的价值是什么?将业务计划从 SQL 方言解耦,可独立校验与评测V4-S01
SQLGlot 是否保证 SQL 安全?它是解析基础;需策略、血缘、函数允许规则和数据库防线V4-S03
以 SELECT 开头为何仍危险?写 CTE、SELECT INTO、危险函数、跨域子查询V1-S03 / V4-S03
行权限为什么不能只加一个 WHERE?嵌套/别名/UNION/聚合、外连接语义、列血缘;无法证明时拒绝V4-S02
LIMIT 是否能防止昂贵查询?限结果不等于限扫描;EXPLAIN 估算、timeout、配额V4-S03
自动修复何时停止?2 次上限、总预算、权限/安全错误零修复、每次重校验V4-S04
空结果与零有什么区别?无记录、NULL 与确实为零;同比分母与解释边界V4-S05
Redis 如何避免权限泄漏?授权指纹、版本、解析后请求键、撤权失效、命中复核V4-S02
为什么 V5 才引入 Agent?先可靠单步,再状态图与工具;控制可变性与预算V5-S01~S02
多轮上下文怎么继承?结构化槽位、覆盖/清空、时间固定、身份隔离、版本核验V5-S03
checkpoint 恢复等于幂等吗?不等于;副作用/执行记录、重复投递、权限变化需额外处理V5-S02
执行准确率如何计算?数据快照、Gold、无序多重集、容差、分母、拒绝题独立统计V6-S01~S02
升级模型如何发现回退?全版本记录、锁定测试、分域逐题差异、门禁、灰度V6-S04~S05

三个手算练习

练习一:比例。 A 商品收入 100、毛利 50,B 商品收入 900、毛利 90。总体毛利率为 140/1000=14%,不是 (50%+10%)/2=30%。指出语义定义、IR 和测试分别如何防止错误。

练习二:Join。 订单有 100、200 两条明细和三条支付记录,直接连接后明细总额可能 900。提出两个不同业务目的下的正确方案,并解释不能直接 SUM(DISTINCT amount)

练习三:召回。 一题 Gold 表为 A/B/C,Top 3 召回 A/B/D。Recall@3=2/3,Precision@3=2/3。下一题 Gold 表只有 A,召回 A/B/C。解释 macro recall 与整体 micro recall 为什么不同。

答案:两题 macro recall=(2/3+1)/2=5/6;micro recall=(2+1)/(3+1)=3/4。报告不声明平均口径,分数就不能直接比较。

每期结束自查

能否画出调用链?能否说明一个拒绝条件?能否定位测试?能否给出真实版本和数据?能否解释没有采用的方案?若只能复述名词,回到对应模块做一次失败实验。

需求 → 代码 → 验证 → 复盘