质量门脚本:用Python给AI输出加上自动质检(附完整源码)

质量门脚本:用Python给AI输出加上自动质检(附完整源码) 一句话AI输出质量不稳定不能直接用。写了一个脚本让AI输出后先自检再交给你——4项检查格式/逻辑/来源/行动项每次从15分钟压到2-3分钟。附完整Python源码。 一人公司AI内容生产系统系列 第07篇/共48篇◆ 当前阶段启动篇 第7篇◆ 适合谁AI输出质量忽高忽低、每篇都要自己通读才放心的人◆ 阅读方式这篇需要先装好Python来跑脚本不懂Python也不影响理解逻辑◆ 系列总纲一个人AI一家公司这篇给这样的人你是不是也这样——AI今天写得很好明天产出同样流畅但全是错的。每篇都要自己通读一遍才放心但AI产出越来越多时间上撑不住。如果这就是你这篇就是写给你的。读者速览核心产出可直接运行的Python质量门脚本复制即用阅读时长约8分钟代码部分可跳过一、是什么卡住了我AI写的文章质量忽高忽低。有时候流畅但全是错的有时候编了一个看起来像真的的案例但不存在。这不是AI的问题——AI的能力本来就不稳定。问题在于AI输出之后我怎么判断它能不能用我之前的做法是每篇自己通读判断但AI产出越来越多时间上撑不住了。于是我写了一个脚本——质量门让AI输出后先跑一遍再交给我。二、底层逻辑让AI先检查一遍缩小你的判断范围质量门做4件事格式检查标题层级、代码块闭合、列表符号逻辑检查举例后是否跟了具体内容、结论是否有支撑来源检查提到了数据是否有来源标注行动项检查行动指令是否够具体它不是替代你判断是帮你把判断范围从100件事缩小到40件。三、外部验证雷可扬成都创业者搭建了1000Agent跑通50企业场景做过一个审计师·分身——他把一位20年经验的CPA的判断能力封装成AI让AI读完合同和原始凭证后主动告诉用户这笔收入分类有问题用户只需点同意或不同意。这个逻辑和质量门一模一样让AI先检查一遍把明显的错误筛掉人类只做最关键的那个判断。GitHub CI/CD里也有类似理念——代码提交后先跑自动化测试测试通过了才进入人工审核环节。不是自动化替代人工是自动化把低级错误挡在门外人工只需要看真正需要判断的部分。四、脚本源码#!/usr/bin/env python3 质量门脚本 — AI输出质检器 用法: python3 check_output.py 输入文件 importsysimportredefcheck_format(text):格式检查issues[]linestext.strip().split(\n)# 标题层级是否跳跃prev_level0fori,lineinenumerate(lines):mre.match(r^(#{1,6})\s,line)ifm:levellen(m.group(1))ifprev_level0andlevelprev_level1:issues.append(f行{i1}: 标题层级跳跃 h{prev_level}→h{level})prev_levellevel# 列表符号是否混用charsset()forlineinlines:mre.match(r^(\s*)[\*\-\]\s,line)ifm:chars.add(line.strip()[0])iflen(chars)1:issues.append(f列表符号混用:{ .join(chars)})# 代码块是否闭合cb[ifori,linenumerate(lines)ifl.strip().startswith()]iflen(cb)%2!0:issues.append(代码块未闭合)returnissuesdefcheck_logic(text):逻辑连贯性检查issues[]linestext.strip().split(\n)fori,lineinenumerate(lines):ifre.search(r(例如|比如)?$,line):ifi1len(lines)andlen(lines[i1].strip())10:issues.append(f行{i1}: 举例后缺少内容)# 结论区不确定词czlines[-max(len(lines)//3,5):]forlineincz:forwin[可能,也许,大概]:ifwinline:issues.append(f结论区有不确定词{w})returnissuesdefcheck_sources(text):来源检查issues[]dpsre.findall(r\d[%\%]|\d万,text)ifdpsandnotre.search(r(来源|数据来源|据.*?报告),text,re.I):issues.append(f有数据{dps[:3]}但未标注来源)returnissuesdefcheck_actions(text):行动项检查issues[]forlineintext.split(\n):ifany(vinlineforvin[打开,复制,设置]):iflen(line)15:issues.append(f行动项太简略: {line.strip()})returnissuesif__name____main__:iflen(sys.argv)2:print(用法: python3 check_output.py 输入文件)sys.exit(1)withopen(sys.argv[1],r)asf:textf.read()all_issues[]all_issues.extend(check_format(text))all_issues.extend(check_logic(text))all_issues.extend(check_sources(text))all_issues.extend(check_actions(text))ifnotall_issues:print(✅ 质量门通过)else:print(f⚠️ 发现{len(all_issues)}个问题:)fori,issueinenumerate(all_issues,1):print(f{i}.{issue})使用方法把AI输出保存为文件output.md运行python3 check_output.py output.md有问题让AI改没问题直接用五、这篇你可以直接带走的东西交付物上面的Python脚本复制到本地保存为check_output.py。使用说明python3 check_output.py 你的文章.md质量门Python源码可直接复制使用。资源文件见评论区置顶。不确定这个脚本能不能解决你的问题回复’诊断’我每周免费帮5个人做系统检查先看看你的卡点在哪。下一篇AI输出质量可控了。但一个人面对多个任务时怎么让AI分工协作下一篇讲3个角色设定。你遇到过AI编案例、数据错误的情况吗A. 经常遇到已经不敢直接用AI输出了B. 偶尔遇到会自己检查一遍C. 还没遇到可能是我用得不够多