质量门脚本:用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件事:

  1. 格式检查:标题层级、代码块闭合、列表符号
  2. 逻辑检查:举例后是否跟了具体内容、结论是否有支撑
  3. 来源检查:提到了数据是否有来源标注
  4. 行动项检查:行动指令是否够具体

它不是替代你判断,是帮你把判断范围从100件事缩小到40件。


三、外部验证

雷可扬(成都创业者,搭建了1000+Agent跑通50+企业场景)做过一个"审计师·分身"——他把一位20年经验的CPA的判断能力封装成AI,让AI读完合同和原始凭证后主动告诉用户"这笔收入分类有问题",用户只需点"同意"或"不同意"。

这个逻辑和质量门一模一样:让AI先检查一遍,把明显的错误筛掉,人类只做最关键的那个判断。

GitHub CI/CD里也有类似理念——代码提交后先跑自动化测试,测试通过了才进入人工审核环节。不是自动化替代人工,是自动化把低级错误挡在门外,人工只需要看真正需要判断的部分。


四、脚本源码

#!/usr/bin/env python3
"""
质量门脚本 — AI输出质检器
用法: python3 check_output.py <输入文件>
"""

import sys
import re


def check_format(text):
    """格式检查"""
    issues = []
    lines = text.strip().split('\n')

    # 标题层级是否跳跃
    prev_level = 0
    for i, line in enumerate(lines):
        m = re.match(r'^(#{1,6})\s', line)
        if m:
            level = len(m.group(1))
            if prev_level > 0 and level > prev_level + 1:
                issues.append(f"行{i+1}: 标题层级跳跃 h{prev_level}→h{level}")
            prev_level = level

    # 列表符号是否混用
    chars = set()
    for line in lines:
        m = re.match(r'^(\s*)[\*\-\+]\s', line)
        if m:
            chars.add(line.strip()[0])
    if len(chars) > 1:
        issues.append(f"列表符号混用: {' '.join(chars)}")

    # 代码块是否闭合
    cb = [i for i, l in enumerate(lines) if l.strip().startswith('```')]
    if len(cb) % 2 != 0:
        issues.append("代码块未闭合")

    return issues


def check_logic(text):
    """逻辑连贯性检查"""
    issues = []
    lines = text.strip().split('\n')

    for i, line in enumerate(lines):
        if re.search(r'(例如|比如):?$', line):
            if i+1 < len(lines) and len(lines[i+1].strip()) < 10:
                issues.append(f"行{i+1}: 举例后缺少内容")

    # 结论区不确定词
    cz = lines[-max(len(lines)//3, 5):]
    for line in cz:
        for w in ['可能', '也许', '大概']:
            if w in line:
                issues.append(f"结论区有不确定词'{w}'")

    return issues


def check_sources(text):
    """来源检查"""
    issues = []
    dps = re.findall(r'\d+[%\%]|\d+万', text)
    if dps and not re.search(r'(来源|数据来源|据.*?报告)', text, re.I):
        issues.append(f"有数据{dps[:3]}但未标注来源")
    return issues


def check_actions(text):
    """行动项检查"""
    issues = []
    for line in text.split('\n'):
        if any(v in line for v in ['打开', '复制', '设置']):
            if len(line) < 15:
                issues.append(f"行动项太简略: '{line.strip()}'")
    return issues


if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("用法: python3 check_output.py <输入文件>")
        sys.exit(1)

    with open(sys.argv[1], 'r') as f:
        text = f.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))

    if not all_issues:
        print("✅ 质量门通过")
    else:
        print(f"⚠️  发现{len(all_issues)}个问题:")
        for i, issue in enumerate(all_issues, 1):
            print(f"  {i}. {issue}")

使用方法:

  1. 把AI输出保存为文件:output.md
  2. 运行:python3 check_output.py output.md
  3. 有问题让AI改,没问题直接用

五、这篇你可以直接带走的东西

交付物: 上面的Python脚本,复制到本地保存为 check_output.py
使用说明: python3 check_output.py 你的文章.md

质量门Python源码可直接复制使用。资源文件见评论区置顶。

不确定这个脚本能不能解决你的问题?回复’诊断’,我每周免费帮5个人做系统检查,先看看你的卡点在哪。

下一篇: AI输出质量可控了。但一个人面对多个任务时,怎么让AI分工协作?下一篇讲3个角色设定。


  • 你遇到过AI编案例、数据错误的情况吗?
    A. 经常遇到,已经不敢直接用AI输出了
    B. 偶尔遇到,会自己检查一遍
    C. 还没遇到,可能是我用得不够多
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值