一句话: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件。
三、外部验证
雷可扬(成都创业者,搭建了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}")
使用方法:
- 把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. 还没遇到,可能是我用得不够多
217

被折叠的 条评论
为什么被折叠?



