基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
编程提效2026-10-23 06:35

用本地模型批量审查需求缺陷

dev.to · AI#需求审查#本地模型#自动化
Editor brief · 编辑速览

SlothSpec 从规格文件中提取带编号的 shall 语句,标记模糊措辞、待定项、复合要求及缺失单位。它结合本地 Gemma 4 模型给出质量判断和验证方式建议,文章还介绍了 NASA 规格文档试用。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

把需求文档交给 AI,难点往往不是让它挑出毛病,而是让它别把整份文档都判成有问题。SlothSpec 的作者用一台 16 GB 内存、集成 AMD 显卡的笔记本,审了一份 97 页的 NASA 标准:最终提取出 333 条需求,模型仍标记了其中 238 条,真正被放到报告最前面的只有 42 条。

这个项目值得看,是因为作者把误报、失败实验和回退都摊开了。它展示了一条更务实的路线:规则负责稳定筛查,本地模型补充判断,工程师保留最终决定权。

为什么规则和模型要分两层

作者做过空军和国防航空航天行业的数字系统工程管理,累计约十年。他发现,很多需求反复栽在相同的问题上:措辞模糊、数值待定、一个句子塞进多个要求,或者写了数字却没有单位。

SlothSpec 接收 .docx、.pdf、.txt、.md,提取包含 shall 的需求及其 ID,再给出问题标记、质量评级、验证方法和改写建议。验证方法分为 Inspection、Analysis、Demonstration、Test,还要说明测试人员具体做什么。

第一层不用模型,直接检查 TBD、and/or、if possible、including but not limited to、minimize,以及缺单位的数字等模式。它快、结果稳定,审查人员也容易解释为什么提出这条意见。

第二层才调用 Gemma 4,把需求和规则命中的问题一起送进去。模型通过 Ollama 的 format 参数返回固定 JSON schema,temperature 设为 0,避免程序再从一大段自然语言里猜字段。

下面这条宠物喂食器需求,暴露了两类典型问题:

SPF-022 The SPF shall be robust to tampering by pets, including but not
        limited to pawing, tipping, and chewing.

要看的是 robust 和 including but not limited to:前者没定义承受能力,后者让测试范围没有边界。Gemma 4 给出的改写是:

The SPF shall withstand pawing forces up to <<max force, N>> without functional degradation.
The SPF shall withstand tipping forces up to <<max force, N>> without functional degradation.
The SPF shall withstand chewing forces from <<pet type>> without functional degradation.

这里最有价值的是 <<max force, N>>:缺失的指标留给工程师补,模型不允许编造数字。但第三条仍缺少啃咬力度,说明拆成三条之后,也不等于需求已经合格。

工具还提供 watch mode,文件放入目录后,报告会出现在 reviewed/;缓存让修改 3 条需求后只重审这 3 条;CSV 则方便把意见放进审查矩阵。它围绕的是工程师已有的审查流程。

玩具测试跑通,为什么还会被真实 PDF 击穿

作者先写了一份故意有问题的智能宠物喂食器规格:20 条需求,其中 15 条埋了缺陷,5 条正常。

v0.1 抓到了全部 15 条缺陷,却也误报了 5 条正常需求中的 4 条。它甚至嫌 shall not 是否定表述,改写后又用了意思相同的 does not exceed。这一轮耗时 14.7 分钟。

v0.2 加入了 good、needs work、rewrite 的评分准则和示例。作者发现最初的示例直接来自测试文档,等于提前给答案,于是换成雷达、水泵和加热器。另一个提速点是关闭默认开启的 thinking mode:设置 think: false 后,耗时从 14.7 分钟降到 5.2 分钟。

v0.3 尝试用小模型 e2b 评分、大模型 e4b 只改写被标记的需求。结果误报少一些,却更慢,改写也没有变好。再给编辑模型增加 scratchpad,让它寻找评分模型遗漏的问题,它反而编出了喂食器固件完整性检查。作者回退了方案,默认保留单个 e4b,玩具规格耗时为 3.4 分钟。

真正的考验来自 NASA Kennedy 的地面支持设备设计标准 KSC-DE-512-SM。

最先失效的是 PDF 提取。v0.3 抽出 451 条所谓需求,混进页脚、目录、修订历史,还把引用标准 IPC-6018 错当成 16 条需求的 ID。

修复靠的是文档处理:去掉跨页重复内容、跳过带点引导线的目录、按原文层级生成 5.4.7a 和 6.3.1.1b(2)(a) 这样的编号,要求章节号递增,并在文末政府表格之前停止。清理后才得到 333 条带真实 ID 的 shall 需求。

规则同样需要校准。Table 1、NFPA 70 被当成缺单位的数字,正常的标准措辞被当成语态问题。调整后,规则标记从 224 降到 104,作者称真正的问题仍然保留。

输入提取错了,模型再认真,也只是在审查一份被程序拼坏的文档。

238 条警报里,为什么只把 42 条排在前面

解析修好了,模型又开始过度挑错:333 条需求里,它标记了 312 条,占比 94%。

其中 141 条都在抱怨需求依赖外部标准。例如真空系统按 ASME B31.9 设计,在这类工程文档中是正常写法,验证时按对应标准检查即可。作者给评分准则补了一条说明,并使用 NASA 文档里没有出现的 FCC Part 15 举例,再完整跑了一轮。

最终报告显示,模型标记 238 条,约占 71%。作者承认,这仍然太高。

SlothSpec 对 NASA 标准的审查报告:333 条需求、238 条模型标记、42 条高置信度意见

报告于是优先展示规则与模型都命中的 42 条,加上绿色 high confidence 标记和筛选按钮。工程师先审这些,再浏览其余结果。

部分意见确实具体:4.2.3.4j 的「风险降低到可接受水平」缺少接受标准;6.4.8c 的「尽可能靠近」可以改成 within <<distance, mm>>;6.2c 的「按要求认证」没说明要求来源。模型还发现 4.2.3.1a 对冗余系统的物理布置或隔离没有给出隔离判据,这类问题很难只靠关键词捕获。

但改写也可能改变需求含义。作者在每次运行、每个模型上都遇到同一个问题:food-safe materials and/or BPA-free plastic 被改成两项必须同时满足的要求,即把原来的选择关系收紧成 AND,即使专门加提示词也没解决。

本地运行则有明确的使用前提。作者的技术栈是 Python、Ollama 和 Google 开放权重 Gemma 4,模型标识包括 gemma4,也称 e4b,以及 gemma4:e2b。文档不离开机器,不需要 API key,没有按 token 计费。

对无法上传专有文档的工作环境,这是工具能否使用的门槛。作者实际演示的只有虚构喂食器规格和公开 NASA 文档,没有使用工作数据。他用 Claude 辅助写代码和测试,再在自己的笔记本上运行各版本,把实际结果反馈回去。

我的判断

我认可这个项目把 AI 放在「初审助手」的位置。规则筛重复问题,模型补语义判断,人处理工程取舍,分工很清楚。相比直接把整份规格交给聊天机器人,它还能保留需求编号、输出固定字段、缓存增量结果,更容易接进持续审查。

但 42 条 high confidence 只是规则与模型的一致结果,原文没有逐条人工标注的准确率,也没有统计剩余需求中漏掉了多少问题。两层都命中,可能只是同时对某种措辞敏感。这个标签适合决定阅读顺序,不能当成质量认证。

性能数据也有边界。玩具规格从 14.7 分钟到 5.2 分钟、最终默认方案 3.4 分钟,伴随提示词和流程调整,不能把所有提升归给一个参数。NASA 文档不到一小时跑完,是作者这台机器上的实测;原文没有给出足够的硬件、推理配置和重复测量信息供一般团队复现同样速度。

作者认为前沿云模型会更快、质量可能更好,但没有提供对照数据。小模型更适合评分、大模型更适合编辑,也只是这些实验里的观察。混合方案最终被回退,恰好提醒我们:增加一个模型角色,需要用最终效果证明价值。

这套方法适合减少机械审查的负担,不能证明需求在工程上已经正确。

能拿来做什么

  • 给日常 AI 编程增加一次需求初审。在生成代码前,先找出「尽快响应」「尽可能兼容」「按要求处理」这类表述,要求补充验收条件;缺失指标保留占位符,由需求负责人确认。
  • 如果用 Node 或 Python 做文档审查脚本,先验证提取出的正文、编号和引用位置,再接模型。SlothSpec 的 PDF 实验说明,解析质量会直接决定后续意见是否有用。
  • 为需求审查保留稳定样本,既放故意有问题的需求,也放合格需求;评分示例使用不同领域的内容,避免把测试答案写进提示词。调整后同时检查漏报、误报和耗时。
  • 把 AI 改写作为待确认建议。遇到 and/or、否定条件、外部标准引用时,逐条核对逻辑是否改变,并利用结构化输出和 CSV 把意见送回现有审查流程。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
让每个 PR 自动完成测试与修复闭环
下一篇
给 Agent 发布流程加上产物校验关卡

资讯速览

dev.to · AI · 2026-10-23 06:35

AI 评分 8.0 / 10

相关标签

#需求审查#本地模型#自动化

继续阅读

  • 两份文本搭建最小 Agent 评测
  • 让每个 PR 自动完成测试与修复闭环
  • 给 Agent 发布流程加上产物校验关卡
  • 拆解 AI 图片凭证:签名有效为何仍报错
  • 智能体成本实测:工具变动拖累缓存