怎么考「给制造业设计一个设备手册问答系统,讲完整方案」
谁在问:二三面经典综合设计题;制造业、能源、设备厂商的团队几乎必问
开场怎么问
我们是做工业设备的,售后手册几百本,想做个问答,你怎么设计?
换个问法
- 现场工程师拿着手机问『E037 报警什么意思』,这套系统怎么搭?
- 设备手册全是 PDF 扫描件和表格,你打算怎么处理?
五层追问链
左边照着问,右边对着听。最后一层是压力面,不必每个候选人都问到。
手册里大量表格和图纸,你具体怎么处理?
- 期望
- 分三类给不同做法。表格:不能当纯文本切——要抽成结构化,检索时命中整表或整行,再回填成自然语言描述给模型;跨页表格要先做合并。扫描件:OCR 之后必须有质量校验,抽样核对数字类字段,因为 OCR 错误是静默的。图纸/爆炸图:短期做「图注与周边文字关联」,把图当作可引用的对象而不是可检索的内容;真要做图检索是多模态方案,成本和收益要单独算。
- 信号
- 能说出「OCR 错误静默传播」和「跨页表格合并」的,是真处理过工业文档;只说「用多模态模型解析」的,没算过成本也没见过烂扫描件。
同一个报警码在不同型号含义不同,怎么防串型号?
- 期望
- 三层。① 型号是必填过滤条件,缺失时反问而不是猜——这是这道题的核心判断。② 检索侧把型号做成硬过滤而非软加权,软加权一定会串。③ 生成侧做引用回查:如果答案引用的文档型号与用户声明的型号不一致,整条答案降级为「无法确认」。还可以补一句风险表述:这个场景里「答不出来」的代价远低于「答错」,所以拒答阈值应该调得比通用问答保守。
- 信号
- 能说出「宁可反问也不猜」并给出引用回查兜底的,理解了代价不对称;只说「加个型号字段」的,没考虑缺失和不一致的情况。
现场没网,要私有化部署,这笔账怎么算?
- 期望
- 先说清账要按什么算——自建的成本主要是固定成本(卡、运维、模型更新),API 是变动成本,所以判据是调用量的盈亏平衡点和合规强制性,不是「哪个单价低」。再补三条工程约束:显存主要被 KV Cache 吃掉,长上下文会显著压低并发;容量规划要看有效吞吐而不是峰值吞吐;现场机器往往还要考虑断电、运维不可达。最后给折中方案:分层部署——现场只放小模型做高频精确查询,复杂问题回传中心(如果偶尔有网),或直接引导人工。
- 信号
- 能说出「固定成本 vs 变动成本 + 盈亏平衡点」的,算过账;只说「私有化更安全」的,是在讲立场不是讲工程。
怎么证明这套比他们原来的搜索好?
- 期望
- 和现状比,不和理想比。做法:把现状(关键词搜索 + 打电话)作为对照组,用同一批真实问题跑双盲对比,指标用首次解决率和平均处理时长,而不是「答案质量评分」——因为后者没有可比的历史数据。同时要说明统计要求:样本量和置信区间,避免拿几十条的差异下结论。加分:指出最有说服力的证据是老师傅电话量的下降,因为那是业务侧的自然指标,不受评测口径影响。
- 信号
- 能主动提出「用现状当对照组」的,做过上线论证;只说「我们做了一个评测集,准确率 85%」的,缺少可比性意识。
上线后现场反馈「它答的和手册不一样」,你怎么查?
- 期望
统一到「固定住一个变量,把问题一分为二」。第一动作是把正确的那一页手动塞进 prompt,看它答得对不对:
- 塞进去就答对了 → 问题在检索侧:可能是解析错了(OCR、表格)、切块把关键信息切断了、型号过滤把正确文档滤掉了、或者召回数在过滤后不够。
- 塞进去还是答错 → 问题在生成侧:可能是上下文太长导致关键段落被淹没、指令冲突、或者模型在拼接多个片段时把不同型号的数字揉在了一起。
分完之后再往下切:检索侧继续二分「是没召回还是排序靠后」;生成侧继续二分「是没看见还是看见了没用」。顺序不能反——很多人一上来就调 prompt,而问题其实在解析环节。
另外要给一条这个场景特有的排查项:核对手册版本。现场拿的纸质版和索引里的电子版不是同一版,是这类反馈里相当常见的真实原因,而它根本不是模型问题。
- 信号
- 第一动作是「手动塞正确文档」的,用的是标准归因树;主动提出「先核对版本」的,是真在工业场景待过。
危险信号
听到这些话,基本可以判定是背题而不是做过。
评分卡
- 按五步结构组织,不是想到哪说到哪
- 澄清阶段问到了形态、更新频率、答错代价、现状四类,且说明为什么问
- 给出基线并估了数量级,指出剩余问题集中在哪三块
- 每样加挂都给「解决什么 / 代价 / 什么时候不该用」
- 识别出脏文档与多版本串型号是本场景的两大特有风险
- 报警码这类标识符查询走精确通道而非向量检索
- 评测按类型分层、和现状做对照、提到统计关与零成本信号
- 演进给触发信号并给退路
- 排障统一到「固定一个变量,把问题一分为二」,第一动作是手动塞文档
参考答案与考察意图面试中途别看这一段
考察意图
这道题是场景设计题的标准入口题,考四件事:
- 你会不会先问再答。设备手册这个场景的约束极强(脏文档、多版本、离线、答错要停机),不问清楚给出的方案一定不对。
- 你有没有处理过脏文档。这是制造业场景最大的坑,也是最容易分辨「做过」和「读过」的地方——纯文本 RAG 的经验在这里几乎不适用。
- 你知不知道这个场景的特殊风险是「串型号」。答不出来比答错好,答错型号比答不出来糟糕得多。
- 你会不会用五步结构组织,还是想到哪说到哪。
参考答案
60 分答案(及格线)
先把 PDF 解析成文本,按标题层级切块,用 embedding 建向量索引,检索时做向量加 BM25 的混合检索,再加一个重排。生成时把检索到的片段拼进 prompt,要求它基于给定内容回答、找不到就说找不到,并给出引用。前端做成移动端方便现场用。后面可以再加多模态处理图纸。
技术选型没错,但它是一个通用文档问答方案,换成法律、医疗一个字都不用改——也就是说,它没有回应这个场景的任何特殊性。而且没有基线、没有代价、没有评测。
90 分答案(有生产经验的回答)
① 先问四个问题:手册多少本、什么形态(原生 PDF 还是扫描件)、多久更新一次?用户是现场工程师还是客服坐席——现场的容忍度低、要移动端、可能没网?答错的代价是什么——是多打一个电话,还是按错步骤导致停机?现在他们怎么查——这条最值钱,现状就是我的基线。
假设:400 本手册、混合形态、季度更新、现场工程师为主、答错可能导致误操作、现在靠翻 PDF 和打电话问老师傅。
② 基线:解析 + 按标题层级切块 + 向量与 BM25 混合检索 + 重排 + 「找不到就说找不到」 + 强制引用到手册页码。这套东西在这类场景一般能到七成左右的可用率,剩下三成集中在三个地方:表格里的参数、图纸和爆炸图、以及跨型号的混淆。先把这个基线摆出来,是为了让后面每一样加挂都有参照物。
③ 加挂,每样都说代价:
- 脏文档处理(这个场景的第一大坑)。扫描件要 OCR,表格要单独抽成结构化再回填成自然语言描述,图纸要做图文关联。解决什么:把不可检索的内容变成可检索。代价是什么:解析流水线本身成为一个要长期维护的系统,且 OCR 错误会静默传播——一个小数点识别错,答案就是错的且看不出来。什么时候不该用:如果八成的高频问题都落在少数几本原生 PDF 上,先只处理那几本,别一上来做全量解析。
- 精确匹配通道。报警码、型号、参数编号这类查询天生不适合向量检索——它们是标识符不是语义。做法是把报警码抽成结构化字段,走精确查询直接命中,检索层只做兜底。代价:要维护抽取规则;不该用:手册里编码体系不统一时,强抽会引入错误映射。
- 版本与型号隔离(这个场景的第一大风险)。同一个报警码在不同型号、不同固件版本含义可能完全不同。做法是把型号和版本做成必填的检索过滤条件,用户没说型号就先反问,而不是猜。代价:多一次交互,体验变差;但这个代价必须付——在这个场景里,答错型号比答不出来危险得多。
- 引用溯源。每条答案必须给出手册名 + 版本 + 页码,让工程师能去核对。代价:约束了生成自由度、拒答率会上升;收益:它同时是信任机制和排障入口。
- 私有化部署(如果数据不能出网或现场没网)。代价:这笔账要按并发算,不是按调用量算——自建的成本是固定的,只有在调用量足够大或合规强制时才划算。不该用:调用量小又没有合规要求时,自建纯亏。
④ 评测:从真实工单里抽 100 条起步的评测集,按类型分层(报警码 / 操作步骤 / 参数查询 / 故障排查),因为不同类型的失败原因完全不同。三条线:离线集决定能不能发;线上采样看有没有变坏;业务指标看平均处理时长和转人工率。报警码这类有标准答案,可以做精确评测,不需要 judge;操作步骤这类才用 judge,且 judge 自己要有校准集。零成本信号里最有用的是重问率(问完又换个说法再问一遍)和引用点击率。要注意统计关:n=100、基线 80% 的时候,95% 置信区间大约 ±7.8 个百分点,涨三个点说明不了任何事。
⑤ 演进:给触发信号而不是排期。出现「一个问题要跨三四本手册才能答」才考虑图结构;出现「查询需要多轮试探才能定位」才考虑 Agentic 检索;图纸相关提问占比超过一定比例,才上多模态检索。退路也要说:如果解析流水线的维护成本超过它带来的收益,就退回到「只覆盖高频那 30 本 + 其余引导到人工」。