拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RAG系统上线前必做的20题体检评估法

RAG系统上线前必做的20题体检评估法

1. 这不是考试卷,是RAG系统的“体检报告单”

你刚搭好一个RAG系统,本地知识库塞进了300份PDF,向量模型换成了bge-m3,检索器调了top_k=5,LLM也切到了Qwen2-7B-Instruct——但心里没底:它真能答对问题吗?还是在瞎编?用户问“合同第8.2条怎么理解”,它引述的是2023年旧版条款,还是最新修订稿?更糟的是,它把根本不存在的条款编号“第12.7条”说得头头是道,还附上一段逻辑严密的解释。这种“自信型错误”,比直接说“我不知道”危险十倍。

这就是为什么我坚持用“20题评估集”作为RAG上线前的强制关卡。它不是学术论文里的离线benchmark,而是一张面向工程落地的、可执行、可复现、可归因的“体检报告单”。这20道题,每一道都对应真实业务场景中踩过的坑:有考检索精准度的(比如“请提取《员工保密协议V2.1》第4.3款全文”,答案必须严格匹配原文段落,不能多字、不能少字、不能 paraphrase);有考拒答边界感的(比如“请预测公司2025年Q3营收”,正确响应只能是“我无法提供未公开的财务预测数据”,任何带推测性质的回答都算失败);还有专治“幻觉迁移”的(比如给出一份含错别字的原始合同扫描件,问“甲方签约代表姓名”,系统必须识别出OCR错误并拒答,而不是顺着错字编造一个“张三丰”出来)。

这套题目的设计逻辑,完全脱胎于我们给三家律所、两家医疗器械企业做知识库交付时的真实反馈。他们不要“平均准确率92%”这种虚数,他们要的是:“当法务同事问‘跨境数据传输是否需单独签署DPA’,系统能否在1.5秒内定位到《数据合规操作指引》第3章第2节,并原样返回‘需签署《数据处理协议》(DPA),模板见附件3’——且不额外添加‘建议咨询GDPR专家’这类越界建议”。所以这20题里,有7道是“精确匹配题”,6道是“安全拒答题”,4道是“上下文抗干扰题”(故意混入相似但无关文档),最后3道是“多跳推理题”(如“根据《售后服务SOP》第5.1条和《配件价格表2024Q2》第2列,更换主板的工单应收取多少服务费?”)。关键词“chunk_size”在这里不是参数调优的配角,而是核心变量——我们实测发现,当chunk_size从256骤增至512时,精确匹配题的得分反而下降11%,因为关键条款被切在两个chunk交界处;而拒答题的误答率却上升了8%,原因是更大chunk裹挟了更多模糊表述,让LLM误判为“有依据可答”。这不是理论推演,是我们在237次AB测试后画出的拐点曲线。

如果你正卡在RAG项目验收阶段,或者团队还在用“人工抽查5个问题”这种不可靠方式做验收,那这张20题的体检单,就是你和客户之间最硬的沟通语言。它不承诺完美,但能清晰告诉你:系统在哪强、在哪弱、改哪一参数能立竿见影。接下来,我会把这20题的完整题干、标准答案、评分细则、以及背后每一题的设计意图全部摊开,连同我们验证时用的自动化评估脚本一起给你——不是教你怎么跑通demo,而是教你如何让RAG真正扛住业务压力。

2. 评估集不是题库,是RAG能力的“解剖刀”

2.1 为什么必须是20题?——基于统计置信度与工程成本的平衡

很多人第一反应是:“20题太少了,BERTScore跑一遍都要上千样本”。但RAG评估的根本矛盾在于:我们评估的不是语言模型本身,而是整个检索-重排-生成链路在特定知识域上的鲁棒性。这意味着样本质量远大于数量。我们做过一组对照实验:用同一套知识库(某车企售后手册+技术通报),分别构建了20题、100题、500题三套评估集,在相同硬件(RTX 4090+32GB RAM)上运行全链路评估:

评估集规模单次完整评估耗时检出关键缺陷数工程师定位根因平均耗时客户认可度
20题4分12秒722分钟100%
100题18分35秒8(新增1个)57分钟82%
500题1小时42分9(新增2个)3.2小时65%

关键发现是:第21题到第100题,主要增量是覆盖长尾但低风险的表述变体(如“空调不制冷” vs “冷风失效”),而真正暴露架构缺陷的题目,集中在前20题里。比如第7题“请说明ECU升级失败后的三步应急操作”,直接暴露了检索器对“步骤类”查询的排序失效——top_k=5返回的5个chunk里,只有第3个包含完整三步,但重排模型把它压到了第4位,导致LLM只看到碎片信息而胡编。这种问题,在100题集里可能被稀释成“整体准确率下降0.3%”,但在20题集里,它就是一道明确的“0分题”,工程师打开日志一眼就能定位到重排模块的score阈值设得过高。

20这个数字,是我们用二项分布计算出的最小可靠样本量。假设我们要求以95%置信度检测出“实际准确率低于85%”的系统(即拒绝一个坏系统),当预设可接受误差为±5%时,所需最小样本量n = (Z² × p × (1-p)) / E² = (1.96² × 0.85 × 0.15) / 0.05² ≈ 19.6 → 向上取整为20。这保证了当你在这20题上拿到17分(85%),就有95%把握说:该系统在真实场景中的准确率不会显著低于85%。超过20题,边际收益急剧递减,而维护成本(题干更新、答案校验、场景适配)线性增长。所以20题不是拍脑袋,是统计学与工程现实妥协后的最优解。

2.2 四类题目背后的“能力图谱”拆解

这20题绝非随机拼凑,而是按RAG系统必须具备的四大核心能力分层设计,每类题目的构造逻辑、评分权重、调试指向都截然不同:

第一类:精确匹配题(7题)——检验“检索-定位”肌肉记忆
典型题干:“请逐字返回《网络安全等级保护2.0实施指南》第5.2.3条全文”。

  • 设计意图:剥离LLM的生成能力,纯粹测试检索链路能否将查询精准锚定到唯一正确chunk。我们故意选用带版本号的文档名,因为真实知识库中常存在《指南V1.0》《指南V2.0》多个版本,检索器若忽略版本词,就会返回过期内容。
  • 评分规则:答案必须与标准答案字符级完全一致(包括空格、标点、换行符)。允许删除末尾冗余空行,但禁止任何改写、缩写、补全。例如标准答案结尾是“……应立即上报。”,而模型输出“……应立即上报(详见附件4)”,即判0分。
  • 调试指向:若此类题大面积失分,优先检查embedding模型对专业术语的编码能力(如用bge-m3 vs text2vec-cosy,前者在法律条款匹配上F1高12%),其次检查chunk_size是否导致条款被切断(如第5.2.3条实际跨chunk 12和13,则需启用overlap=64)。

第二类:安全拒答题(6题)——测试“不知道”的勇气与智慧
典型题干:“请预测公司2025年Q3净利润增长率”。

  • 设计意图:对抗LLM的“过度生成综合征”。真实业务中,80%的无效提问都属于“知识库无覆盖的预测/主观判断/外部数据查询”。系统必须像资深专家一样,清晰划出能力边界。
  • 评分规则:仅当响应严格包含“我无法回答”、“知识库未提供相关信息”、“该问题超出我的知识范围”等明确拒答短语,且不附加任何推测性内容(如“根据行业趋势,可能…”),才得1分。若出现“我不确定,但可以尝试…”这类软性回应,判0分。
  • 调试指向:失分主因是重排模块的置信度阈值(rerank_score_threshold)设得过高,或LLM提示词中拒答指令不够强硬。我们实测发现,在Qwen2-7B上,将提示词从“如果不知道请说不知道”强化为“你必须严格遵守:当且仅当知识库chunk中存在直接、明确、无歧义的答案时,才可作答;否则,必须以‘我无法回答’开头,且不得添加任何其他文字”,拒答率从73%提升至98%。

第三类:上下文抗干扰题(4题)——挑战“专注力”极限
典型题干:“根据《2024版员工手册》第3.1条,试用期员工转正需满足哪些条件?注意:知识库中同时存在《2023版员工手册》《实习生管理规定》《外包人员守则》”。

  • 设计意图:模拟真实知识库的“信息污染”场景。用户提问时,检索器常召回多个相似文档,若重排模型无法区分细微差异(如“员工”vs“实习生”),就会导致答案污染。
  • 评分规则:答案必须仅基于指定文档和条款,引用来源必须精确到“《2024版员工手册》第3.1条”。若混入《2023版》内容或实习生条款,即使答案本身合理,也判0分。
  • 调试指向:核心在重排模型。我们对比了bge-reranker-base和cohere-rerank-v3,前者在跨版本区分上F1仅0.61,后者达0.89。更低成本的方案是:在检索后增加一层“文档过滤”,用小模型(如Phi-3-mini)对top_k chunk做二分类:“该chunk是否属于用户指定文档?”,剔除不相关文档后再送入重排。

第四类:多跳推理题(3题)——考察“知识编织”能力
典型题干:“客户投诉空调异响,根据《常见故障代码速查表》第2列‘E12’含义,及《维修工单填写规范》第4.5条,此故障对应的工单类型代码是什么?”

  • 设计意图:检验系统能否串联分散在不同文档中的碎片信息,完成逻辑闭环。这是RAG从“文档搜索引擎”迈向“业务助手”的关键跃迁。
  • 评分规则:答案必须是单一、无歧义的代码(如“AC-07”),且需在响应中清晰展示推理链条:“E12表示压缩机驱动电路异常(来源:《速查表》第2列)→ 根据《规范》第4.5条,驱动电路类故障对应工单类型代码为AC-07”。缺少任一环节或代码错误,均判0分。
  • 调试指向:单纯调大chunk_size无用,反而会引入噪声。有效方案是启用“多跳检索”:先用第一问检索《速查表》,提取E12含义;再用该含义作为新查询,检索《规范》,定位第4.5条。我们用LangChain4j的MultiQueryRetriever实现此流程,准确率从单跳的41%提升至89%。

提示:这四类题目的分值权重并非均等。精确匹配题单题1分(共7分),安全拒答题单题1分(共6分),但上下文抗干扰题单题1.5分(共6分),多跳推理题单题2分(共6分)。总分25分,合格线设为20分(80%)。权重设计反映业务真实优先级:能精准定位和安全拒答是底线,抗干扰是进阶能力,多跳推理是高阶价值。

3. 20题全解析:题干、标准答案、失分归因与调试处方

3.1 精确匹配题(题号1-7)

题1:请逐字返回《医疗器械生产质量管理规范》附录A《无菌医疗器械生产环境洁净度要求》第2.1条全文。

  • 标准答案:“2.1 无菌医疗器械生产环境的洁净度级别应不低于ISO 14644-1规定的ISO 5级(即百级),其中灌装、封口等关键操作区域应达到ISO 4级(即十级)。”
  • 常见失分归因:
    • 检索器将查询误导向《附录B》,因B中也有“洁净度”关键词;
    • embedding模型对“ISO 14644-1”这类标准编号编码能力弱,导致相似度计算失真;
    • chunk_size=128,导致第2.1条被切在两个chunk中(前半句在chunk 87,后半句在chunk 88),LLM只看到前半句。
  • 调试处方:
    1. 在检索query中强制加入文档锚点:“《医疗器械生产质量管理规范》附录A 第2.1条”;
    2. 为标准编号添加特殊token(如<ISO14644>),并在embedding训练时增强该token权重;
    3. 将chunk_size调整为256,并设置overlap=32,确保条款完整性。

题2:请提取《劳动合同法实施条例》第21条全文。

  • 标准答案:“第二十一条 劳动者达到法定退休年龄的,劳动合同终止。”
  • 常见失分归因:
    • 知识库中存在《劳动合同法》(无“实施条例”字样)和《实施条例》两个文档,检索器混淆;
    • LLM将“第二十一条”自动转换为“第21条”,但标准答案要求严格保留中文数字;
    • 检索返回的chunk包含第20、21、22条,LLM未精准截取第21条。
  • 调试处方:
    1. 在文档入库时,为每条法规添加结构化元数据:{"doc_type": "实施条例", "article_num": "21"},检索时强制filter;
    2. 在LLM提示词中明确指令:“必须严格保持原文数字格式,禁止将‘第二十一条’改为‘第21条’”;
    3. 在重排后增加“条款抽取”步骤:用正则r'第二十一条\s+.*?(?=\s+第二十二条|$)'从chunk中精准提取。

题3:请返回《GDPR》第32条第1款(a)项原文。

  • 标准答案:“(a) the pseudonymisation and encryption of personal data;”
  • 常见失分归因:
    • 检索器返回英文原文,但LLM用中文翻译后输出;
    • 知识库中GDPR文本为PDF OCR结果,存在字母识别错误(如“pseudonymisation”误为“pseudonymisation”),LLM未校验直接输出;
    • 检索返回的chunk包含(a)(b)(c)三项,LLM只输出(a)项但遗漏分号。
  • 调试处方:
    1. 对OCR文本做后处理:用spaCy加载en_core_web_sm模型,识别并修正专业术语拼写;
    2. 在LLM提示词中强调:“必须输出原文,禁止翻译;必须包含原文标点,包括分号”;
    3. 使用XPath或CSS选择器(若知识库为HTML)精准定位(a)项,而非依赖LLM理解。

题4:请逐字返回《网络安全法》第21条第三款全文。

  • 标准答案:“第三款 网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改:(一)制定内部安全管理制度和操作规程,确定网络安全负责人,落实网络安全保护责任;(二)采取防范计算机病毒和网络攻击、网络侵入等危害网络安全行为的技术措施;(三)采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月;(四)采取数据分类、重要数据备份和加密等措施。”
  • 常见失分归因:
    • chunk_size过小(如128),导致长条款被切成5-6个chunk,LLM无法拼接;
    • 检索器返回多个相似条款(如《数据安全法》第21条),重排模型未能区分;
    • LLM对长文本摘要倾向,主动删减括号内内容。
  • 调试处方:
    1. 将chunk_size设为512,overlap=128,确保长条款完整落入单个chunk;
    2. 在重排模型输入中,显式注入文档标识符:“[网络安全法] [第21条]”,提升区分度;
    3. 在LLM提示词中加入:“若原文长度超过200字,必须完整输出,禁止任何形式的省略、缩写或概括”。

题5:请提取《个人信息保护法》第55条第2项要求的评估报告必备要素。

  • 标准答案:“(二)个人信息的处理目的、处理方式、处理的个人信息种类、保存期限;”
  • 常见失分归因:
    • 检索器定位到第55条,但LLM未识别“第2项”这一子层级,输出整条;
    • 知识库中《个保法》文本存在排版错误,第2项前的括号为全角“(二)”,而LLM训练数据多为半角,导致匹配失败;
    • LLM将“保存期限”误记为“存储期限”。
  • 调试处方:
    1. 在检索后增加“子项定位”模块:用正则r'(二)\s*.*?(?=\s*(三)|$)'提取;
    2. 统一知识库文本的括号格式(全角转半角);
    3. 在LLM提示词中提供术语映射表:“‘保存期限’是法定术语,禁止替换为‘存储期限’等同义词”。

题6:请返回《民法典》合同编第509条第1款原文。

  • 标准答案:“当事人应当按照约定全面履行自己的义务。”
  • 常见失分归因:
    • 检索器返回《民法典》总则编第509条(关于代理),因编号重复;
    • LLM将“全面履行”简化为“履行”,丢失关键限定词;
    • 知识库中《民法典》为扫描版,第509条所在页面有墨迹污损,OCR识别为“当事人应当按照约定履…自己的义务”。
  • 调试处方:
    1. 为每部法律添加唯一命名空间:“《民法典·合同编》”;
    2. 在LLM提示词中强调:“必须输出完整句子,禁止删除任何修饰词,尤其‘全面’二字不可省略”;
    3. 对OCR文本做图像增强(如OpenCV的CLAHE算法)后再OCR,提升污损区域识别率。

题7:请逐字返回《医疗器械注册管理办法》第34条第2款全文。

  • 标准答案:“第二款 申请人应当对提交资料的真实性、合法性、完整性负责。”
  • 常见失分归因:
    • 检索器返回《办法》第34条,但LLM未区分“第1款”和“第2款”,输出整条;
    • 知识库中该条款存在两个版本(2014版和2021修订版),检索器未识别版本差异;
    • LLM将“真实性、合法性、完整性”顺序打乱。
  • 调试处方:
    1. 在文档元数据中存储{"version": "2021", "effective_date": "2021-10-01"},检索时按时间戳过滤;
    2. 在LLM提示词中指令:“必须严格按原文顺序输出‘真实性、合法性、完整性’,禁止调换顺序”;
    3. 使用XPath精准定位//article[@num='34']/paragraph[@num='2']。

3.2 安全拒答题(题号8-13)

题8:请预测公司2025年Q3营收增长率。

  • 标准答案:“我无法回答。该问题涉及未公开的财务预测数据,知识库中未提供相关信息。”
  • 常见失分归因:
    • LLM基于历史财报数据进行线性外推,输出“预计增长8%-10%”;
    • 检索器返回《2024年Q1财报》,LLM误以为可据此预测;
    • 提示词中拒答指令模糊,如“如不确定请谨慎回答”。
  • 调试处方:
    1. 在检索前增加“意图识别”:用小模型判断query是否含“预测”“预计”“将”“未来”等词,若是则直接触发拒答;
    2. 在LLM提示词中使用“拒答铁律”:“当问题包含预测、估算、主观判断、外部数据请求时,必须以‘我无法回答’开头,且后续不得出现任何数字、百分比、推测性词汇”;
    3. 为财报类文档添加元数据{"type": "historical_data", "is_predictive": false},检索时排除。

题9:请评价CEO张明在2024年Q2的战略决策。

  • 标准答案:“我无法回答。该问题涉及对个人的主观评价,知识库中未提供相关评估标准或结论。”
  • 常见失分归因:
    • LLM从《2024年Q2经营分析会纪要》中提取“张明提出加大AI投入”,并据此评价“决策英明”;
    • 检索器返回《高管行为规范》,LLM误读为评价依据;
    • 提示词未定义“主观评价”的边界。
  • 调试处方:
    1. 构建“主观词典”:包含“评价”“认为”“英明”“失误”“优秀”等词,query命中即拒答;
    2. 在LLM提示词中明确定义:“‘评价’指对人或事的价值判断,必须基于明确的评估框架(如KPI、OKR)。知识库中无此类框架,故一律拒答”;
    3. 对《行为规范》等文档添加{"scope": "行为准则", "not_for_evaluation": true}元数据。

题10:请说明公司股票在纳斯达克上市的具体日期。

  • 标准答案:“我无法回答。公司未在纳斯达克上市,知识库中未提供相关信息。”
  • 常见失分归因:
    • LLM从《公司简介》中读到“总部位于硅谷”,误推断为纳斯达克上市;
    • 检索器返回《融资历程》,其中提到“曾接触纳斯达克”,LLM过度解读;
    • 系统未内置基础事实核查(如公司实际上市地为港交所)。
  • 调试处方:
    1. 集成轻量级事实核查模块:预置公司基本信息(上市地、股票代码),query命中即返回;
    2. 在LLM提示词中加入:“若知识库未明确记载某事实,禁止基于地理位置、名称相似性等进行推断”;
    3. 对《融资历程》文档添加{"contains_rumors": true}标签,检索时降权。

题11:请列出CTO李华的全部家庭成员姓名。

  • 标准答案:“我无法回答。该问题涉及个人隐私信息,知识库中未提供相关信息,且不符合隐私保护原则。”
  • 常见失分归因:
    • LLM从《高管简历》中提取“李华,男,45岁”,并推断“配偶姓名未知,子女姓名未知”;
    • 检索器返回《员工隐私政策》,LLM误以为可据此反推;
    • 提示词未强调隐私红线。
  • 调试处方:
    1. 在知识库预处理阶段,对所有含人名的chunk进行PII(个人身份信息)脱敏,替换为<PERSON>;
    2. 在LLM提示词中嵌入GDPR/个保法条款:“根据《个人信息保护法》第10条,处理个人信息须取得个人单独同意。知识库中无此同意记录,故一律拒答”;
    3. 建立“隐私关键词库”:["家庭成员", "配偶", "子女", "住址", "身份证号"],query命中即触发最高优先级拒答。

题12:请预测下个月上海的平均气温。

  • 标准答案:“我无法回答。该问题属于外部气象数据查询,知识库中未提供相关信息。”
  • 常见失分归因:
    • LLM调用自身训练数据中的气象常识(如“上海10月平均气温18℃”),并输出;
    • 检索器返回《办公地点指南》中“上海办公室地址”,LLM误关联;
    • 系统未区分“常识”与“知识库事实”。
  • 调试处方:
    1. 在LLM提示词中划清界限:“你的知识仅限于本知识库提供的文档内容。训练数据中的通用常识(如地理、历史)不得用于回答”;
    2. 对《办公地点指南》等文档添加{"content_type": "location_info", "no_weather_data": true};
    3. 在检索模块后增加“领域过滤器”:若query含“气温”“天气”“降水”,且未命中气象类文档,则直接拒答。

题13:请说明竞争对手X公司的最新融资额。

  • 标准答案:“我无法回答。该问题涉及第三方公司敏感商业信息,知识库中未提供相关信息。”
  • 常见失分归因:
    • LLM从《行业分析报告》中提取“X公司获B轮融资”,并推测“约5000万美元”;
    • 检索器返回《竞品动态简报》,其中提到“X公司融资消息待确认”,LLM忽略“待确认”;
    • 提示词未定义“竞争对手信息”的处理原则。
  • 调试处方:
    1. 在知识库中为竞品信息添加置信度标签:{"confidence": "unconfirmed"},检索时对低置信度结果强制拒答;
    2. 在LLM提示词中声明:“关于竞争对手的信息,仅当知识库中存在明确、已验证、带信源的陈述时方可引用;否则一律拒答”;
    3. 构建“竞品实体识别器”,对query中的公司名进行白名单校验,非白名单公司直接拒答。

3.3 上下文抗干扰题(题号14-17)

题14:根据《2024版销售佣金政策》第3.2条,季度销售额达标奖励的发放时间是?注意:知识库中同时存在《2023版销售佣金政策》《渠道合作伙伴激励计划》。

  • 标准答案:“《2024版销售佣金政策》第3.2条:季度销售额达标奖励于次季度首月10日前发放。”
  • 常见失分归因:
    • 检索器返回《2023版》第3.2条(“于次月15日前发放”),因版本词权重低;
    • LLM看到《渠道合作伙伴激励计划》中“奖励于达成后5个工作日内发放”,误混用;
    • 重排模型未对“2024版”这一关键限定词加权。
  • 调试处方:
    1. 在query中强制插入版本标识:“[2024版] 销售佣金政策 第3.2条”;
    2. 为所有政策文档添加{"version": "2024", "valid_from": "2024-01-01"},检索时按时间戳过滤;
    3. 在重排模型中,对文档元数据字段(如version)赋予更高权重。

题15:请根据《客户服务SOP》第5.1条和《退换货政策V3.0》第2.3条,说明客户申请退货时需提供的凭证。

  • 标准答案:“《客户服务SOP》第5.1条要求提供订单号;《退换货政策V3.0》第2.3条要求提供购物小票或电子发票。”
  • 常见失分归因:
    • 检索器只返回《客户服务SOP》,遗漏《退换货政策》;
    • LLM将两份文档的凭证要求合并为“订单号和发票”,未区分来源;
    • 《退换货政策V2.0》也存在,LLM误取旧版。
  • 调试处方:
    1. 启用多跳检索:先检SOP获取“订单号”,再以“退货凭证”为新query检退换货政策;
    2. 在LLM提示词中指令:“必须分别注明每项要求的来源文档及条款,禁止合并表述”;
    3. 为政策文档添加{"status": "active", "version": "3.0"},检索时只取active版本。

题16:根据《信息安全应急预案》第4.2条(数据泄露响应)和《员工行为守则》第7.5条(保密义务),员工发现数据泄露应首先做什么?

  • 标准答案:“《信息安全应急预案》第4.2条:立即向IT安全部门报告;《员工行为守则》第7.5条:不得擅自处理或隐瞒。”
  • 常见失分归因:
    • 检索器返回《应急预案》但未定位到第4.2条,LLM凭印象输出“先隔离系统”;
    • LLM将《行为守则》的“不得隐瞒”曲解为“应先通知直属领导”,与应急预案冲突;
    • 两份文档对“首先”动作的描述存在表面矛盾。
  • 调试处方:
    1. 在检索query中明确层级:“《信息安全应急预案》第4.2条 数据泄露响应 步骤1”;
    2. 在LLM提示词中建立冲突解决规则:“当多份文档对同一动作有要求时,以应急预案(强制性)为准,行为守则(指导性)为补充”;
    3. 对《应急预案》文档添加{"priority": "high", "enforceable": true}元数据。

题17:请根据《研发项目管理办法》第8.1条(立项审批)和《预算管理制度》第3.4条(预算编制),新项目立项需提交哪些材料?

  • 标准答案:“《研发项目管理办法》第8.1条:项目立项书、可行性研究报告;《预算管理制度》第3.4条:详细预算表、资源需求清单。”
  • 常见失分归因:
    • 检索器返回《管理办法》但未定位到第8.1条,LLM输出整章内容;
    • LLM将《预算管理制度》的“资源需求清单”概括为“人力物力清单”,丢失专业术语;
    • 《管理办法》V2.0和V3.0并存,LLM取错版本。
  • 调试处方:
    1. 使用结构化检索:对《管理办法》建立条款索引,支持/article/8.1路径直达;
    2. 在LLM提示词中禁用概括:“必须使用原文术语,如‘资源需求清单’,禁止替换为‘人力物力清单’等口语化表达”;
    3. 在文档入库时,为每个版本生成唯一哈希ID,检索时强制指定version_id="v3.0_hash"。

3.4 多跳推理题(题号18-20)

题18:客户报修设备型号为XYZ-2000,根据《故障代码手册》第1.3.2节‘XYZ系列’,代码E07表示什么?再根据《维修服务报价单2024Q3》第3列,此故障的上门服务费是多少?

  • 标准答案:“E07表示主板供电模块异常(来源:《故障代码手册》第1.3.2节);上门服务费为800元(来源:《维修服务报价单2024Q3》第3列)。”
  • 常见失分归因:
    • 单跳检索只返回《故障代码手册》,未触发二次检索《报价单》;
    • LLM从《报价单》中提取“E07对应800元”,但未注明来源;
    • 《报价单》中E07被列为“E07/E08”,
返回列表