RAG 评估与防幻觉验证

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

RAG 问答系统的质量评估与防幻觉验证方法论。当用户需要对基于本地知识库的 AI 问答系统(RAG)做上线前验收、语料变更后回归、模型更换后复测,或想量化'知识库答得好不好''会不会胡编'时使用。覆盖:正向评估集(区域×主题矩阵+关键词命中)、负面测试集(知识库外问题+拒答信号表)、防幻觉三机制(低相似度拒答/引用兜底/条文级引用要求)、幂等服务守护、评估脚本模式、本地零积分检索评测与阈值扫描选优。触发词:RAG 评估、评估集、负面测试、防幻觉、知识库答得准不准、引用验证、eval_runner、eval_negative、检索层评测、阈值扫描拒答、能力评测套件、run_suite、零积分评测。

一句话选型结论

按资料字段整理

RAG 评估与防幻觉验证是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_8a3569c1/rag-eval-harness
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_8a3569c1仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791688677
正文体量12.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
RAG 评估与防幻觉验证当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

12.4 KB
模型实际读到的说明书原文,来自技能仓库

RAG 评估与防幻觉验证(rag-eval-harness)

> 一句话:知识库问答系统上线前,用「正向命中 + 负面拒答」双测试量化质量,用「拒答阈值 + 引用兜底」堵住幻觉。
> 实战基线(示例知识库,2026-08-18):正向 33/34(关键词命中率 87%)、负面拒答 10/10(100%)。2026-08-26 升级「本地零积分检索评测 + 阈值扫描选优」:50 题(45 正向 + 5 负面)整体合格率 92%→100%(选 T=0.6 后负样本拒答 20%→100%),详见「本地零积分检索评测与阈值扫描选优」章节。

核心方法论

一、正向评估集(答得上:正确性)

  • 结构:区域×主题矩阵,每主题 2 问(中英混合)。如示例知识库覆盖 17 区(cn/us/eu/jp/ivdr/sw/kr/uk/br/sea/iec/bio/eud/cer/ca/au/mx)
  • 每条用例:{id, region, question, expected[]}——expected 是「应出现在回答或引用片段中的关键词」
  • 判定:关键词命中率 ≥50% 且回答含【依据】引用标记 = 通过
  • 输出:通过率 + 总命中率 + 各区域覆盖统计 + 低命中用例清单(低命中 = 语料薄弱点的量化证据)

二、负面测试集(不该答的拒答:防幻觉)

  • 设计:10 个「知识库外问题」——跨界产品(宠物起搏器)、非器械(纸尿裤/蓝光眼镜)、未来技术(3D 打印器官)、竞品细节(达芬奇 PMA 时间线)
  • 拒答信号表(中英):未找到/未检索到/知识库中/不属于医疗器械/不适用 + not found/no information/not a medical device 等
  • 判定:回答命中任一拒答信号 = 正确拒答;编造具体法规答案 = 幻觉失败
  • 特例:常识判定类(如纸尿裤非器械)可用「不属于医疗器械 + 建议参考其他标准」的结构化拒答,优于生硬"未找到"

三、防幻觉三机制(系统层)

  1. 低相似度拒答:检索片段最高 sim < 阈值(如 0.5)→ 直接返回"知识库中未找到相关信息",不让模型硬编
  2. prompt 强制引用:要求回答结尾必须带【依据:<文件名>·<章节/条款>】标注,不得省略
  3. 引用兜底:模型未输出【依据】或输出"无具体法规文件标注"时,程序自动补上真实检索来源(refs[:3] 去重拼接)

四、refs 数据结构(可被评估脚本校验)

{&quot;file&quot;: &quot;文件名(去.txt)&quot;, &quot;section&quot;: &quot;章节/条款&quot;, &quot;text&quot;: &quot;片段&quot;, &quot;sim&quot;: 0.83}

评估脚本校验:refs 是否带 section 字段 + 回答是否含【依据】标记(条文级引用专项)。

落地物(参考实现)

本技能随包提供(references/ 下可直接运行):

references/medxpert_rag_eval.py     # 本地零积分检索评测 + 阈值扫描(建索引→50题评测→选优→报告)
references/capability_eval_suite/   # 能力评测套件框架(run_suite.py 总入口 + suite_registry.json 注册表)

落地时建议的配套文件命名(按你的项目组织,非本技能随包内容):

eval_set.json           # 正向评估集(meta.name/regions + cases[])
eval_runner.py          # 评估脚本:调 /api/ask,统计命中率/引用标记/section
eval_negative.json      # 负面测试集
eval_negative.py        # 拒答验证:REFUSAL 信号表 + 逐问判定
eval_result.txt         # 正向报告(33/34 通过)
eval_negative_result.txt# 负面报告(10/10 拒答)
ensure_server.sh        # 幂等服务守护:清理旧实例→启动唯一主实例→轮询就绪→再清 -u 副本
wait_and_eval.sh        # 重嵌就绪后自动验证新语料可达 + 跑双评估

脚本模式要点:
- urllib.request POST /api/ask,无第三方依赖
- 关键词小写匹配 answer + refs_text 拼接的 haystack
- 区域统计:region_stat.setdefault(c[&quot;region&quot;], [0,0])

使用规则

  1. 什么时候跑:语料变更后必跑(回归);模型更换后必跑(复测);上线前必跑(验收)
  2. 低命中怎么处理:命中 60% 附近先看是「语料缺该主题」还是「expected 关键词过严」;语料缺 → 补语料重建 embedding;过严 → 修订 expected 并注明理由,不掩盖质量问题
  3. 阈值调整要记录:SIM_THRESHOLD 改动会影响拒答率与漏答率,调整后跑全量双测试对比
  4. 结果留档:eval_result.txt 每次运行追加时间戳,形成质量基线趋势(如 33/34 → 34/34)

本地零积分检索评测与阈值扫描选优(2026-08-26 示例知识库实测)

> 当 RAG 服务的 /api/ask 不便调用、或想直接量化「检索层」而非「生成层」时,可绕过 HTTP 接口,直接对本地向量库做余弦相似度评测——零云端积分、可复跑、秒级。

评测流程

  1. 建索引:读知识库语料(FAQ + 事实库),按条目分 chunk,用本地 Ollama bge-m3 嵌入(1024 维),余弦相似度检索(无需 Chroma,numpy dot 即可)。
  2. 标准答案集:从语料原有结构直接抽取(如 FAQ 的 Q1–Q50 天然就是 50 道检索题),另加 5 道「完全无关」负样本(天气/编程/体育/菜谱/加密货币)。
  3. 逐题评测:每题取 top-1 余弦分数 + 判定命中(检索片段含该 FAQ 标识即命中)。
  4. 阈值扫描选优(核心创新):不拍脑袋设拒答阈值,而是对全量题取 top-1 分数直方图,找「正样本与负样本的分数鸿沟」,选落进鸿沟正中的阈值 T。
    - 示例知识库实测:正样本 top-1 0.721–0.853,负样本 0.323–0.551,鸿沟 0.17;选 T=0.60 → 正样本零误伤(最低 0.721 > 0.6)、负样本 100% 拒答。

实测结果对比

指标 优化前(无拒答阈值) 优化后(T=0.6)
整体合格率 92.0%(46/50) 100.0%(50/50)
正向检索命中 100%(45/45) 100%(零误伤)
负样本拒答率 20%(1/5) 100%(5/5)

落地补丁(一行过滤)

在检索返回后加阈值判定即可,与「100% 命中」能力零冲突:

REJECT_THRESHOLD = 0.60
hits = search_results(query, topk=5)
if not hits or hits[0][&quot;score&quot;] &lt; REJECT_THRESHOLD:
    return &quot;知识库暂无相关内容&quot;   # 拒答

参考实现

references/medxpert_rag_eval.py —— 上述流程的可运行脚本(建索引→50 题评测→阈值扫描→输出 rag_eval_report.json)。本地零积分,全程用 Ollama bge-m3。

与接口层评测(第五章)的关系

  • 检索层评测(本章):测「找得对不对」,快、零积分、直接量化检索质量,适合日常回归 + 阈值调优。
  • 接口层评测(rag-eval-harness 原版):测「答得好不好 + 是否幻觉」,需调 /api/ask,覆盖引用标记/section 校验。
  • 组合使用:上线前先跑检索层(保召回),再跑接口层(保生成);两层都过才放行。

能力进化套件框架(持续监测落地)

> 把上述评测作为「模块」挂进一个每日自动跑的套件,让能力「不断提高」有量化证据链。

  • suite_registry.json:模块注册表,每项含 id / 脚本 / 报告路径 / 指标基线 / 告警阈值。新增评测模块只需加一项。
  • run_suite.py:总入口,遍历模块→跑评测→读报告→对比基线→汇总 suite_report.json(最新)+ suite_history.jsonl(能力进化轨迹)。
  • 每日自动化:定时跑套件,弱点当天暴露;补强动作(改知识库/代码/重训)需用户授权。
  • 可运行模板见 references/capability_eval_suite/。

推广场景(举一反三)

  • 任何本地/云端知识库问答(法规咨询、客服、内部 wiki 助手)上线前
  • 企业知识库语料扩充后的回归测试
  • 切换 embedding 模型/LLM 后的效果对比(用同一评估集做 A/B)
  • 可量化验收的「AI 能力门禁」——先有评估集,再说系统行不行

版权与许可

  • © 2026 赵兴华 / Steven Zhao·China(署名:注册老炮)。本技能及 references 脚本与知识库为原创整理;代码(.py 文件)以 MIT 协议开源发布,文档与理论文本保留所有权利。
  • 知识版权声明:本技能整理的方法论、评估框架、阈值扫描算法与编排体系归「注册老炮」所有;未经授权不得复制、转载、转售,或用于训练任何模型(含商业与开源模型)。
  • 免责声明:本技能按「现状(AS IS)」提供,不提供任何明示或默示的担保;因使用、误用本技能或其输出导致的任何直接或间接损失,作者不承担责任。
  • 引用脚本中的路径为示例占位(path/to/your/knowledge_base),使用时请改为你自己的知识库目录;评估结果仅反映被测系统当时的实际表现。
  • 内容仅供工程验收参考,不构成任何法律意见或商业承诺。

© 2026 赵兴华 / Steven Zhao·China · 署名:注册老炮 · 本技能包代码文件以 MIT 许可按「原样」提供,不附任何担保(SynomosAI 未申请实体注册、未申请商标注册;本包理论文本不在 MIT 覆盖范围内,保留所有权利)。


License & attribution

分层许可(务必并读;代码许可不覆盖文档与理论文本)

层 载体 许可
代码 rag_eval_harness_security_test.py, references/local_rag_eval.py, references/medxpert_rag_eval.py MIT
文档与理论文本 本 SKILL.md、references/* 及其中一切理论表述 不在 MIT 覆盖范围内:保留所有权利(All rights reserved)

> 即:代码可依 MIT 使用与再分发;文档与理论文本不因代码许可而默认可自由再发布。

© 2026 赵兴华 / Steven Zhao·China (ORCID 0009-0001-0512-1237). All rights reserved.
理论署名 (attribution) : rag-eval-harness — SynomosAI initiative
名称状态 (name status)  : &quot;SynomosAI&quot; / &quot;MedXpert&quot; — 未申请实体注册、未申请商标注册
                        (not a registered legal entity; no trademark registered)
代码许可 (code license) : 代码(.py 文件):MIT (see LICENSE);本 SKILL.md 与其中理论文本不在 MIT 覆盖范围内
                    本文本与理论表述不在任何代码许可覆盖范围内
引用格式 (cite as)      : 本资产无 DOI

(上列为《LGD 对外表述规范》§3.2 统一块;发布/重提前须照最新版本复核。)

常见问题

5 问
答案由本站依据条目字段整理
RAG 评估与防幻觉验证怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_8a3569c1/rag-eval-harness。安装方式为未标注。装完刷新技能列表或重开客户端。

RAG 评估与防幻觉验证支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

RAG 评估与防幻觉验证权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

RAG 评估与防幻觉验证收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

RAG 评估与防幻觉验证用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。