GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build Linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build Linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
The bundled deai-writing skill now detects additional template patterns, unsupported attribution, role-slot prose, engineering metaphors, and absolute claims. Its JSON report also summarizes findings by level and category while preserving GoodBuddy's cross-platform Python guidance. Release note: 中文“去 AI 味”审校新增分析套话、模糊归因、角色槽位、工程黑话和绝对化承诺等检查,并提供按分类汇总的扫描结果。
151 lines
6.0 KiB
Python
151 lines
6.0 KiB
Python
"""通用「AI 味」病症词典。
|
|
|
|
两级:
|
|
AI_SMELL 阻断项 —— 命中即应改写,目标压到接近 0。
|
|
REVIEW_ONLY 复核项 —— 只作人工判断候选,不能作为自动删除或发布失败条件。
|
|
|
|
词条可以是普通字符串(按子串匹配)或正则(`re` 语法)。扫描器统一用
|
|
`re.search` 处理,普通字符串里的正则元字符需要自行转义。
|
|
|
|
扩充规则:每次评审被挑出的新 AI 味用词,回填到这里;只与单个项目/站点
|
|
相关的规则不要放这里,放 project_rules/ 下的项目词典。
|
|
"""
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 阻断项
|
|
# ---------------------------------------------------------------------------
|
|
|
|
AI_SMELL = {
|
|
"套路连接词": [
|
|
# "不仅/而且" 单列误报率过高,收敛成句式匹配(原清单的精确化)
|
|
r"不仅.{0,40}(而且|并且|还|也)",
|
|
"更是", "无疑", "毫无疑问", "值得注意的是", "需要指出的是",
|
|
"总而言之", "综上所述", "总的来说", "换言之", "众所周知",
|
|
"一言以蔽之",
|
|
],
|
|
"对照模板": [
|
|
r"不是.{0,40}而是", r"并非.{0,40}而是", "而不是",
|
|
r"不只是.{0,40}(而是|还|也|更)", r"不止是.{0,40}(而是|还|也|更)",
|
|
r"不只是[^,。;!?\n]{1,30}(?:[。;!?\n]|$)",
|
|
r"不先.{0,30}先", r"下一步是.{0,40}而不是",
|
|
],
|
|
"问答式标题": [
|
|
r"回答了?[一二三四五六七八九十0-9]+个.{0,20}问题",
|
|
r"以下[一二三四五六七八九十0-9]+[点项个]",
|
|
r"[一二三四五六七八九十0-9]+个具体问题",
|
|
r"结果说明了什么", r"需要关注的几个问题",
|
|
],
|
|
"实施口号": [
|
|
r"先把.{0,30}接入", "从单一场景切入", "从一个场景开始",
|
|
],
|
|
"英文对照模板": [
|
|
r"\bnot\b.{0,60}\bbut\b", r"\brather than\b", r"\binstead of\b",
|
|
],
|
|
"英文元话语": [
|
|
r"answers? (three|four|[0-9]+)",
|
|
"three specific questions", "three findings from",
|
|
],
|
|
"空心形容词": [
|
|
"强大的", "卓越的", "高效的", "全方位", "一站式", "赋能", "助力",
|
|
"打造", "深耕", "护航", "保驾护航", "量身定制", "极致", "无缝",
|
|
],
|
|
"宏大开头": [
|
|
r"随着.{0,30}(的)?(快速)?发展", "在当今", "在数字化", "近年来",
|
|
"大背景下",
|
|
],
|
|
"空洞升华": [
|
|
"携手", "美好未来", "贡献力量", "必将", "奠定坚实基础", "开创",
|
|
],
|
|
"客服尾巴": [
|
|
"希望能对您有所帮助", "如有需要", "欢迎随时", "感谢您的",
|
|
],
|
|
"绕弯结构": [
|
|
r"进行了.{0,15}的?(操作|处理|优化|改造|分析)",
|
|
r"做出了.{0,15}的?决定",
|
|
r"起到了.{0,15}的?作用",
|
|
r"具有.{0,20}的特点",
|
|
r"实现了.{0,20}的功能",
|
|
],
|
|
"过度对冲": [
|
|
"在某种程度上", "总体而言", "一般来说",
|
|
],
|
|
"万能收束": [
|
|
"从本质上看", "从某种意义上说", "归根结底", "可以看出",
|
|
"由此可见",
|
|
],
|
|
"来源模糊": [
|
|
"业内普遍认为", "专家指出", "有观点认为",
|
|
],
|
|
"格式痕迹": [
|
|
"——", "✅", "❌", "🚀", "💡", "🎯", "✨", "🔥", "📌", "⚡",
|
|
],
|
|
}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 复核项:结合页面类型与专业语境判断,不机械清零
|
|
# ---------------------------------------------------------------------------
|
|
|
|
REVIEW_ONLY = {
|
|
"内部审校话语": [
|
|
"当前基线", "当前证据", "已知缺口", "成熟度等级", "页面所述",
|
|
],
|
|
"抽象术语": [
|
|
"闭环", "底座", "形成衔接", "共同约束",
|
|
],
|
|
"教程式CTA": [
|
|
"说明当前流程", "从第一步开始", "按清单准备材料",
|
|
],
|
|
"标题口令": [
|
|
r"^\s*#{1,6}\s*(把|让|先|再)",
|
|
r"^\s*#{1,6}\s*(Bring|Start|Let|First)\b",
|
|
],
|
|
"否定句堆叠": [
|
|
"不代表", "不包含", "尚未", "不能",
|
|
],
|
|
"分析框架": [
|
|
"从多个维度", "核心在于", "关键在于", "具体而言",
|
|
r"从.{0,20}角度来看",
|
|
],
|
|
"无来源归因": [
|
|
"研究表明", "数据显示", "实践证明",
|
|
],
|
|
"角色槽位": [
|
|
r"(系统|平台).{0,20}(做什么|负责什么).{0,40}"
|
|
r"(学生|教师|用户|客户).{0,20}(做什么|看到什么|获得什么)",
|
|
r"(学生|教师|用户|客户).{0,20}(做什么|负责什么).{0,40}"
|
|
r"(系统|平台|教师|用户|客户).{0,20}(做什么|看到什么|获得什么)",
|
|
r"输入是什么.{0,30}(处理什么|怎么处理).{0,30}输出什么",
|
|
r"用户需要什么.{0,30}平台提供什么.{0,30}(最终)?获得什么",
|
|
],
|
|
"工程黑话": [
|
|
"闸门", "门禁", "硬约束", "卡点", "护栏",
|
|
],
|
|
"拟人化技术表达": [
|
|
r"[一两二三四五六七八九十百千万亿0-9]+颗(权重|参数)",
|
|
"数据喂不够快", r"(存储|内存|显存).{0,20}(道路|路).{0,20}(繁忙|拥堵)",
|
|
r"(模型|系统).{0,10}(思考|理解|读懂|看懂)",
|
|
],
|
|
"绝对化承诺": [
|
|
r"每一(次|个|项|条).{0,30}(都|均)", r"所有.{0,30}均",
|
|
"任何情况下", "始终确保", "完全避免",
|
|
],
|
|
"标签化三联": [
|
|
r"(看得见|可见).{0,20}(查得到|可查).{0,20}(可追溯|能追溯)",
|
|
r"事前.{0,20}事中.{0,20}事后",
|
|
r"业务侧.{0,20}技术侧.{0,20}管理侧",
|
|
],
|
|
}
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 结构类近似检测:正则给候选,最终要人读
|
|
# ---------------------------------------------------------------------------
|
|
|
|
STRUCTURE_CHECKS = {
|
|
# 短句里塞了 4 个以上顿号/逗号,多半是三段式排比或名词堆叠
|
|
"疑似排比堆叠": {
|
|
"pattern": r"[,、]",
|
|
"min_count": 4,
|
|
"max_line_len": 60,
|
|
},
|
|
}
|