文案审查:去除首页AI味形容词与口号式标题,统一PC与移动端口径

这个提交包含在:
wikiboss
2026-11-04 15:06:32 +08:00
父节点 a56834b705
当前提交 2c5e4e87e9
共有 3 个文件被更改,包括 2158 次插入 和 792 次删除

文件差异内容过多而无法显示 加载差异

查看文件

@@ -1,179 +1,293 @@
# -*- coding: utf-8 -*-
"""
纯粹务实工程文案专项测试 (Natural Copywriting & No AI Buzzwords Test)
测试驱动去 AI 化、去除泛化通用口号与翻译腔,强化大厂务实工程与业务场景语言。
"""
import os
import unittest
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
class TestNaturalCopywriting(unittest.TestCase):
def setUp(self):
self.index_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_home/index.html')
self.services_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_product/service_page.html')
self.products_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_product/product_page.html')
self.cases_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_case_show/list.html')
self.about_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_home/single.html')
self.contact_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_online_message/list.html')
self.index_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_home/index.html"
)
self.services_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_product/service_page.html"
)
self.products_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_product/product_page.html"
)
self.cases_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_case_show/list.html"
)
self.about_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_home/single.html"
)
self.contact_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_online_message/list.html"
)
with open(self.index_path, 'r', encoding='utf-8') as f:
with open(self.index_path, encoding="utf-8") as f:
self.index_html = f.read()
with open(self.services_path, 'r', encoding='utf-8') as f:
with open(self.services_path, encoding="utf-8") as f:
self.services_html = f.read()
with open(self.products_path, 'r', encoding='utf-8') as f:
with open(self.products_path, encoding="utf-8") as f:
self.products_html = f.read()
with open(self.cases_path, 'r', encoding='utf-8') as f:
with open(self.cases_path, encoding="utf-8") as f:
self.cases_html = f.read()
with open(self.about_path, 'r', encoding='utf-8') as f:
with open(self.about_path, encoding="utf-8") as f:
self.about_html = f.read()
with open(self.contact_path, 'r', encoding='utf-8') as f:
with open(self.contact_path, encoding="utf-8") as f:
self.contact_html = f.read()
self.footer_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_common/pc/footer.html')
with open(self.footer_path, 'r', encoding='utf-8') as f:
self.footer_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_common/pc/footer.html"
)
with open(self.footer_path, encoding="utf-8") as f:
self.footer_html = f.read()
def test_forbid_ai_buzzwords_and_translationese(self):
"""严格禁止典型 AI 假大空口号、翻译腔与泛化套话"""
self.footer_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_common/pc/footer.html')
with open(self.footer_path, 'r', encoding='utf-8') as f:
self.footer_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_common/pc/footer.html"
)
with open(self.footer_path, encoding="utf-8") as f:
self.footer_html = f.read()
ai_buzzwords = [
'准备好与资深技术架构师展开深度研讨了吗', # 翻译腔
'认知智能化”跃迁', # 虚浮AI词
'数字见证力量', # 泛化套话
'开启确定性数字化未来', # 泛化套话
'让您的企业也拥有经得起考验的', # AI祈使句
'开启您的企业数字化与智能化升级项目', # 泛化套话
'开启确定性数字化技术合作', # 虚词
'严谨商务 · 现代中式 · 高级感专业软件服务', # 泄露的设计Prompt
'现代中式 · 高级感',
'研发委员会',
'技术委员会',
'原创技术资产',
'工程受控说明',
'白盒交付',
'白盒源码',
'带病代码',
'杜绝系统带病上线',
'西南数谷',
"准备好与资深技术架构师展开深度研讨了吗", # 翻译腔
"认知智能化”跃迁", # 虚浮AI词
"数字见证力量", # 泛化套话
"开启确定性数字化未来", # 泛化套话
"让您的企业也拥有经得起考验的", # AI祈使句
"开启您的企业数字化与智能化升级项目", # 泛化套话
"开启确定性数字化技术合作", # 虚词
"严谨商务 · 现代中式 · 高级感专业软件服务", # 泄露的设计Prompt
"现代中式 · 高级感",
"研发委员会",
"技术委员会",
"原创技术资产",
"工程受控说明",
"白盒交付",
"白盒源码",
"带病代码",
"杜绝系统带病上线",
"西南数谷",
]
all_html = (
self.index_html + "\n" +
self.services_html + "\n" +
self.products_html + "\n" +
self.cases_html + "\n" +
self.about_html + "\n" +
self.contact_html + "\n" +
self.footer_html
self.index_html
+ "\n"
+ self.services_html
+ "\n"
+ self.products_html
+ "\n"
+ self.cases_html
+ "\n"
+ self.about_html
+ "\n"
+ self.contact_html
+ "\n"
+ self.footer_html
)
for buzzword in ai_buzzwords:
self.assertNotIn(buzzword, all_html, f"全站必须彻底剔除 AI 通用套话/提示词残留: '{buzzword}'")
self.assertNotIn(
buzzword,
all_html,
f"全站必须彻底剔除 AI 通用套话/提示词残留: '{buzzword}'",
)
def test_require_pragmatic_engineering_copy(self):
"""必须包含具体务实的工程化、场景化语言"""
# 首页务实表达
self.assertIn('扎实的软件工程实践', self.index_html, "首页服务板块标题必须务实直接")
self.assertIn('四大成熟商用系统', self.index_html, "首页产品板块标题必须清晰明确")
self.assertIn('用生产环境数据说话', self.index_html, "首页案例板块必须务实接地气")
self.assertIn('软件研发流程 · 让项目交付具备确定性', self.index_html, "首页流程板块标题必须务实清晰")
self.assertIn('来自甲方的真实反馈', self.index_html, "首页评价板块标题必须务实")
self.assertIn('有具体的系统研发或产品选型需求?我们来落实', self.index_html, "首页CTA必须说人话、重落实")
self.assertIn(
"把系统做出来,也要能长期维护",
self.index_html,
"首页服务板块标题必须务实直接",
)
self.assertIn(
"四个标准化产品,可直接用,也可按需改",
self.index_html,
"首页产品板块标题必须清晰明确",
)
self.assertIn(
"几个客户项目,以及当时怎么解决",
self.index_html,
"首页案例板块必须务实接地气",
)
self.assertIn(
"项目怎么推进",
self.index_html,
"首页流程板块标题必须务实清晰",
)
self.assertIn("客户的原话", self.index_html, "首页评价板块标题必须务实")
self.assertIn(
"有具体的系统研发或产品选型需求?可以直接沟通",
self.index_html,
"首页CTA必须说人话、重落实",
)
# 服务页务实表达
self.assertIn('带着您的系统需求或技术难题,直接与架构师沟通', self.services_html, "服务页CTA必须杜绝翻译腔")
self.assertIn(
"带着您的系统需求或技术难题,直接与架构师沟通",
self.services_html,
"服务页CTA必须杜绝翻译腔",
)
# 案例页务实表达
self.assertIn('面临类似的业务系统瓶颈?我们可以提供针对性方案', self.cases_html, "案例页CTA必须直面业务痛点")
self.assertIn(
"面临类似的业务系统瓶颈?我们可以提供针对性方案",
self.cases_html,
"案例页CTA必须直面业务痛点",
)
# 关于我们与联系我们
self.assertIn('找懂业务、讲规范的研发团队,让软件项目平稳落地', self.about_html, "关于我们CTA必须务实接地气")
self.assertIn('业务咨询与技术评估', self.contact_html, "联系我们标题必须清晰务实")
self.assertIn(
"找懂业务、讲规范的研发团队,让软件项目平稳落地",
self.about_html,
"关于我们CTA必须务实接地气",
)
self.assertIn(
"业务咨询与技术评估", self.contact_html, "联系我们标题必须清晰务实"
)
def test_user_removal_of_copyright_metric_in_hero(self):
"""首屏Hero必须彻底移除用户指明的'50+ 国家软件著作权资产'"""
self.assertNotIn('国家软件著作权资产', self.index_html, "首屏Hero严禁包含用户要求去掉的'国家软件著作权资产'")
self.assertNotIn(
"国家软件著作权资产",
self.index_html,
"首屏Hero严禁包含用户要求去掉的'国家软件著作权资产'",
)
def test_user_removal_of_cases_data_wall(self):
"""案例独立页(PC与移动端)必须彻底移除'50亿+ 交易额'等悬浮泛化数字指标墙"""
# PC端
self.assertNotIn('nhc-case-metrics-section', self.cases_html, "PC案例页必须彻底移除成果数据指标墙大板块")
self.assertNotIn('系统累计支撑交易额', self.cases_html, "PC案例页严禁展示浮夸的'系统累计支撑交易额'")
self.assertNotIn('标杆政企与行业组织', self.cases_html, "PC案例页严禁展示浮夸的'标杆政企与行业组织'")
self.assertNotIn('项目按期高质量交付率', self.cases_html, "PC案例页严禁展示浮夸的'项目按期高质量交付率'")
self.assertNotIn(
"nhc-case-metrics-section",
self.cases_html,
"PC案例页必须彻底移除成果数据指标墙大板块",
)
self.assertNotIn(
"系统累计支撑交易额",
self.cases_html,
"PC案例页严禁展示浮夸的'系统累计支撑交易额'",
)
self.assertNotIn(
"标杆政企与行业组织",
self.cases_html,
"PC案例页严禁展示浮夸的'标杆政企与行业组织'",
)
self.assertNotIn(
"项目按期高质量交付率",
self.cases_html,
"PC案例页严禁展示浮夸的'项目按期高质量交付率'",
)
# 移动端
mobile_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_case_show/list_e.html')
with open(mobile_path, 'r', encoding='utf-8') as f:
mobile_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_case_show/list_e.html"
)
with open(mobile_path, encoding="utf-8") as f:
mobile_html = f.read()
self.assertNotIn('支撑交易总额', mobile_html, "移动端案例页严禁展示'支撑交易总额'")
self.assertNotIn('标杆合作组织', mobile_html, "移动端案例页严禁展示'标杆合作组织'")
self.assertNotIn('按期交付率', mobile_html, "移动端案例页严禁展示'按期交付率'")
self.assertNotIn(
"支撑交易总额", mobile_html, "移动端案例页严禁展示'支撑交易总额'"
)
self.assertNotIn(
"标杆合作组织", mobile_html, "移动端案例页严禁展示'标杆合作组织'"
)
self.assertNotIn("按期交付率", mobile_html, "移动端案例页严禁展示'按期交付率'")
def test_deep_no_ai_flavor_and_concise_copy(self):
"""深度检查文案:彻底杜绝 AI 口味、大词堆砌、公关腔与啰嗦句式"""
# 读取移动端首页及其他独立页面
index_e_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_home/index_e.html')
single_e_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_home/single_e.html')
service_software_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_product/service_software.html')
service_app_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_product/service_app.html')
service_agent_path = os.path.join(ROOT_DIR, 'addons/official/view/web/official_product/service_agent.html')
index_e_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_home/index_e.html"
)
single_e_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_home/single_e.html"
)
service_software_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_product/service_software.html"
)
service_app_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_product/service_app.html"
)
service_agent_path = os.path.join(
ROOT_DIR, "addons/official/view/web/official_product/service_agent.html"
)
with open(index_e_path, 'r', encoding='utf-8') as f:
with open(index_e_path, encoding="utf-8") as f:
index_e_html = f.read()
with open(single_e_path, 'r', encoding='utf-8') as f:
with open(single_e_path, encoding="utf-8") as f:
single_e_html = f.read()
with open(service_software_path, 'r', encoding='utf-8') as f:
with open(service_software_path, encoding="utf-8") as f:
service_software_html = f.read()
with open(service_app_path, 'r', encoding='utf-8') as f:
with open(service_app_path, encoding="utf-8") as f:
service_app_html = f.read()
with open(service_agent_path, 'r', encoding='utf-8') as f:
with open(service_agent_path, encoding="utf-8") as f:
service_agent_html = f.read()
all_text = (
self.index_html + "\n" +
index_e_html + "\n" +
self.services_html + "\n" +
service_software_html + "\n" +
service_app_html + "\n" +
service_agent_html + "\n" +
self.products_html + "\n" +
self.cases_html + "\n" +
self.about_html + "\n" +
single_e_html + "\n" +
self.contact_html + "\n" +
self.footer_html
self.index_html
+ "\n"
+ index_e_html
+ "\n"
+ self.services_html
+ "\n"
+ service_software_html
+ "\n"
+ service_app_html
+ "\n"
+ service_agent_html
+ "\n"
+ self.products_html
+ "\n"
+ self.cases_html
+ "\n"
+ self.about_html
+ "\n"
+ single_e_html
+ "\n"
+ self.contact_html
+ "\n"
+ self.footer_html
)
forbidden_ai_copy = [
'铸造数字生产力',
'开启新一代数字化与智能化升级',
'赋能复杂业务流转',
'助力移动产品极速上架',
'准备打造您的专属',
'助力企业全渠道数字化运营',
'AI 智能安全库存',
'AI智能安全库存',
'即开即用,伴随业务快速启航',
'全天候守护',
'赋能培训',
'加速企业数字化转型',
'无可争议',
'毫无保留',
'工匠精神打造',
'滴水不漏',
"铸造数字生产力",
"开启新一代数字化与智能化升级",
"赋能复杂业务流转",
"助力移动产品极速上架",
"准备打造您的专属",
"助力企业全渠道数字化运营",
"AI 智能安全库存",
"AI智能安全库存",
"即开即用,伴随业务快速启航",
"全天候守护",
"赋能培训",
"加速企业数字化转型",
"无可争议",
"毫无保留",
"工匠精神打造",
"滴水不漏",
# 已从首页清除的无出处数据与绝对化结果描述,防止回潮
"99.8% 按期交付率",
"50+ 自主软著资产",
"200+ 政企标杆客户",
"300 家连锁门店",
"库存对账零误差",
]
for item in forbidden_ai_copy:
self.assertNotIn(item, all_text, f"全站模板仍残留AI味或啰嗦表述: '{item}'")
# 验证新优化的务实干练文案已生效
self.assertIn('四大成熟商业系统 · 支撑全渠道经营与业务协同', self.products_html)
self.assertIn('动态安全库存模型与自动补货采购建议', self.products_html)
self.assertIn('打通业务协同流转 · 研发自主执行的专业智能体', service_agent_html)
self.assertIn('全链路敏捷交付 · 规范推进设计与上线', service_app_html)
self.assertIn('全量规范移交客户', self.services_html)
self.assertIn("四大成熟商业系统 · 支撑全渠道经营与业务协同", self.products_html)
self.assertIn("动态安全库存模型与自动补货采购建议", self.products_html)
self.assertIn("打通业务协同流转 · 研发自主执行的专业智能体", service_agent_html)
self.assertIn("全链路敏捷交付 · 规范推进设计与上线", service_app_html)
self.assertIn("全量规范移交客户", self.services_html)
if __name__ == '__main__':
if __name__ == "__main__":
unittest.main()