From 2c5e4e87e97f94927f898e7816913cbee62f1937 Mon Sep 17 00:00:00 2001 From: wikiboss Date: Wed, 4 Nov 2026 15:06:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=88=E5=AE=A1=E6=9F=A5=EF=BC=9A?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=E9=A6=96=E9=A1=B5AI=E5=91=B3=E5=BD=A2?= =?UTF-8?q?=E5=AE=B9=E8=AF=8D=E4=B8=8E=E5=8F=A3=E5=8F=B7=E5=BC=8F=E6=A0=87?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E7=BB=9F=E4=B8=80PC=E4=B8=8E=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E5=8F=A3=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/web/official_home/index.html | 1671 ++++++++++++----- .../view/web/official_home/index_e.html | 949 +++++++--- tests/test_natural_copywriting.py | 330 ++-- 3 files changed, 2158 insertions(+), 792 deletions(-) diff --git a/addons/official/view/web/official_home/index.html b/addons/official/view/web/official_home/index.html index d62d9f5..213f55f 100644 --- a/addons/official/view/web/official_home/index.html +++ b/addons/official/view/web/official_home/index.html @@ -1,48 +1,90 @@ -{extend name="web/official_common/pc/base" /} - -{block name="content"} +{extend name="web/official_common/pc/base" /} {block name="content"} -
-

扎实的软件工程实践 · 解决具体的业务卡点

+

把系统做出来,也要能长期维护

- 拒绝浮夸概念堆砌。我们专注于中台系统打通、移动端跨生态开发与私有 AI 智能体落地,每一行代码都围绕业务投产与稳定运行展开。 + 承接三类工作:企业业务系统定制、移动端与小程序开发、企业私有化 + AI 应用。功能范围和验收标准在合同里写清楚。

@@ -238,24 +459,67 @@
壹
- 企业级软件开发与微服务中台拓扑 + 企业业务系统与多系统对接示意
- + + + + +

软件开发

- 定制企业级业务中台与私有化核心系统,解决高并发性能瓶颈、数据孤岛与复杂业务逻辑流转难题。 + 承接企业业务系统与内部管理系统的定制开发,包括多系统数据对接、权限与流程配置、报表与对账等模块。

    -
  • 企业微服务与分布式高可用架构
  • -
  • 业务中台整合与跨系统数据打通
  • -
  • 金融级数据加密与私有化安全部署
  • -
  • 严格代码质量审计与完整源码交付
  • +
  • 业务系统与内部管理系统定制
  • +
  • + 多系统数据对接与权限、流程配置 +
  • +
  • + 源码交付,可部署在客户自有服务器或内网 +
  • +
  • + 代码审查、接口文档与数据库字典配套交付 +
- + 了解详情 - + + +
@@ -263,24 +527,69 @@
贰
- 移动端APP与微信小程序全生态跨端界面 + 移动端 APP 与微信小程序多端界面
- + + + +

APP与小程序定制

- 覆盖全端移动生态,深度定制 iOS/Android 原生与跨平台 APP,无缝接入微信、支付宝及抖音多端小程序。 + 承接 iOS、Android + 应用与微信小程序开发,多端可共用同一套后台;涉及蓝牙外设或硬件对接时单独评估。

    -
  • iOS / Android 跨平台高性能统一框架
  • -
  • 微信小程序与企业微信互通协同
  • -
  • 蓝牙硬件、物联网 IoT 边缘设备对接
  • -
  • 60fps 流畅交互与毫秒级首屏加载性能
  • +
  • + iOS / Android 应用与微信小程序 +
  • +
  • + 与现有账号、订单、支付系统对接 +
  • +
  • + 蓝牙外设与物联网设备数据接入 +
  • +
  • + 低端机型的启动速度与列表滚动优化 +
- + 了解详情 - + + +
@@ -288,24 +597,60 @@
叁
- 政企专属AI智能体与私域大模型知识库 + 私有化 AI 与内部知识库示意
- + + +

智能体开发

- 聚焦垂直领域大模型工程化落地,研发具备深度业务推理、企业知识库检索(RAG)与自主工作流调度的高阶 Agent。 + 基于开源大模型与企业内部资料搭建问答和检索工具,回答附带文档出处;数据存放在客户内网,不经过我们的服务器。

    -
  • 私域知识库 RAG 向量检索与精准问答
  • -
  • 多智能体(Multi-Agent)协同决策与执行
  • -
  • 业务审批、数据分析与工单智能自动化
  • -
  • 大模型本地私有化部署与敏感数据防护
  • +
  • + 内部制度、法规与文档的知识库检索 +
  • +
  • + 回答标注原文出处,便于人工复核 +
  • +
  • 审批、工单等流程的辅助处理
  • +
  • + 内网部署,模型与数据不出机房 +
- + 了解详情 - + + +
@@ -313,18 +658,19 @@
-
-

四大成熟商用系统 · 开箱即用或深度二次开发

+

+ 四个标准化产品,可直接用,也可按需改 +

- 已稳定支撑多家客户多年生产运行。从微信小程序多商户商城、线下门店收银台,到仓储进销存与多租户 SaaS 底座,全部支持源代码买断移交。 + 四套系统用的是同一套代码。可以先用公有云版本试运行,也可以直接买源码部署到自己的服务器;具体版本和功能以产品说明为准。

@@ -333,129 +679,279 @@
- 全场景商城系统管理控制台 + 商城系统管理后台
新零售 · 全渠道

商城

- B2B2C 多商户入驻、社交裂变营销与全域私域流量精细化运营商城系统。 + 支持多商户入驻、分销与拼团秒杀等常用营销工具的商城系统,可对接微信、支付宝支付。

  • - - 微信、H5、APP 三端订单与数据无缝同步 + + + + 微信小程序、H5、APP 三端订单与库存同步
  • - - 分销裂变、拼团秒杀、积分抵扣营销工具 + + + + 分销、拼团、秒杀、优惠券与积分
  • - - 供应商结算与自动佣金分账体系 + + + + 供应商结算与佣金分账
- 智能商业收银系统软硬件终端 + 收银系统与扫码、打印外设
- 智慧门店 · 秒级结算 + 门店零售 · 扫码结算

收银

- 软硬件一体化智能收银系统,毫秒级结算响应,无缝适配各类商超零售与餐饮连锁。 + 收银软件与扫码枪、小票打印机、钱箱等外设配合使用,单笔结算通常在数秒内完成。

  • - - 聚合支付秒级核销(微信/支付宝/银行卡) + + + + 微信、支付宝等扫码支付;银行卡视收单渠道而定
  • - - 网络中断离线记账,联网自动双向对账 + + + + 断网时离线记账,恢复联网后自动上传并核对差异
  • - - 全面兼容扫码枪、计价秤、小票打印硬件 + + + + 对接扫码枪、计价秤与小票打印机
- 业财一体化进销存调度中枢 + 进销存与财务数据界面
- 业财一体 · 精细管控 + 业财一体 · 精细管控

进销存

- 采购、销售、仓储与财务全面打通的进销存系统,减少物料积压,盘活企业资金。 + 采购、销售、仓储与财务数据打通的进销存系统,用于减少积压、核对账目。

-
  • - - 多级仓库实时智能调拨与安全库存预警 + + + + 多仓库调拨与库存上下限预警
  • - - 批次管理与全生命周期保质期扫码溯源 + + + + 批次与保质期管理,出入库可扫码追溯
  • - - 自动生成经营毛利与多项目财务报表 + + + + 按商品、客户、项目生成毛利与经营报表
- 云原生高可用多租户SaaS平台大盘 + 多租户 SaaS 平台管理界面
- 云原生 · 高可用 + 多租户 · 按账号开通

SaaS版本

- 多租户云原生架构 SaaS 平台,开箱即用,免运维部署,伴随企业规模弹性扩展。 + 多租户 SaaS + 平台,按账号开通使用;数据按租户隔离,也可为单个客户部署独立数据库。

  • - - 多租户物理/逻辑强隔离,确保企业数据安全独立 + + + + 多租户数据隔离,可选用独立数据库
  • - - 弹性容器集群与自动故障转移,保障企业级高可用 + + + + 支持容器化部署、多实例与数据备份
  • - - 提供丰富标准 OpenAPI 与第三方生态扩展 + + + + 提供 OpenAPI 接口文档,便于与第三方系统对接
@@ -463,18 +959,17 @@
-
-

客户真实投产项目 · 用生产环境数据说话

+

几个客户项目,以及当时怎么解决

- 不讲虚构概念。每个案例均来自客户真实生产环境,历经实际业务高并发考验与联合终验。 + 以下案例按客户要求隐去企业名称和联系人。具体做了什么、上线多久、怎么验收,可以在沟通时说明。

@@ -483,41 +978,73 @@
- 商贸批发 · 数字化中台 - 成果验证 + 商贸批发 · 分销订货 + 脱敏案例
-

大型快消供应链集团「全渠道分销商城与订货中台」

+

+ 快消品经销企业「全渠道分销与订货中台」 +

- 快消集团全渠道分销订货中台调度控制中心视窗 + 分销订货中台界面
业务挑战 - 跨区域经销商价格体系混乱,传统人工抄单错漏率高,订单处理周期超过 24 小时。 + 多区域经销商的价格与账期政策不统一,订单靠人工汇总后再录入,处理周期长、容易出错。
解决方案 - 搭建纳海川定制 B2B 分销中台,接入灵活等级阶梯价、信用授信账期管控及自动化拆单履约。 + 按经销商等级配置价格与账期,订单提交后校验库存和信用额度,再按仓库拆单。
-
自动化分单
-
多渠道订单校验拆单
+
订单校验
+
+ 价格、库存、信用额度 +
-
阶梯账期
-
信用额度与授信管控
+
分级价格
+
按经销商等级配置
-
高并发承载
-
微服务弹性横向扩容
+
弹性扩容
+
按并发量横向扩容
-
- +
@@ -525,41 +1052,75 @@
- 连锁零售 · 软硬件一体 - 成果验证 + 连锁餐饮 · 收银与门店 + 脱敏案例
-

知名区域连锁餐饮「全场景智能收银与门店一体化」

+

+ 连锁餐饮品牌「收银与门店管理一体化」 +

- 全国连锁餐饮智能收银与后厨KDS联动视窗 + 收银与后厨看板界面
业务挑战 - 就餐高峰期前台排队拥堵严重,前厅与后厨信息断层,各门店原物料损耗无法实时溯源。 + 高峰时段前台排队,点单信息靠人工传到后厨;门店物料消耗缺少记录。
解决方案 - 上线一体化收银系统与后厨 KDS 联动看板,打通扫码点单、聚合支付与实时扣料核销。 + 收银与后厨看板联动:扫码点单后自动打印到后厨,支付完成即扣减对应物料。
-
断网收银
-
脱机挂单无感重发
+
离线记账
+
联网后自动上传
后厨联动
-
KDS看板与物料扣减
+
+ 点单打印与物料扣减 +
多端适配
-
收银机/打印机/扫码枪
+
+ 收银机/打印机/扫码枪 +
- @@ -567,38 +1128,65 @@
- 智能制造 · 进销存ERP - 成果验证 + 装备制造 · 进销存 + 脱敏案例
-

高端装备制造企业「生产进销存与供应链敏捷协同」

+

+ 装备制造企业「生产进销存与供应商协同」 +

业务挑战 - 零部件品类繁多达数万种,采购节拍与装配需求严重脱节,呆滞库存占用大量资金。 + 零部件品类多,采购计划与装配进度对不上,部分物料长期积压。
解决方案 - 定制落地精益进销存 ERP,建立动态物料 BOM 匹配、安全库存预警与供应商端协同门户。 + 按 BOM + 计算缺料,设置库存上下限预警,供应商在门户内确认送货计划。
-
动态BOM
-
多层装配与缺料预警
+
BOM 缺料
+
按 BOM 计算缺料
批次追溯
-
一物一码生命周期
+
出入库扫码记录
-
协同门户
-
供应商在线协同送货
+
供应商门户
+
在线确认送货计划
- @@ -606,24 +1194,32 @@
- 政企服务 · AI智能体 - 成果验证 + 政务服务 · 知识库辅助 + 脱敏案例
-

知识密集型政务机构「专属 RAG 业务审核智能体」

+

+ 政务机构「基于知识库的审核辅助智能体」 +

业务挑战 - 政策法规与历史档案跨越数十年,人工查证检索费时耗力,初审标准难以保证统一严谨。 + 制度与历史档案数量大,人工查证耗时,不同经办人的判断标准不一致。
解决方案 - 构建基于私有大模型与向量数据库的 RAG 智能体,自动检索法规依据并输出规范化审核建议。 + 把制度与法规建成知识库,审核时检索相关条款并附出处,由经办人复核。
-
纯内网部署
-
物理隔离不外泄
+
内网部署
+
数据不出机房
法规溯源
@@ -634,37 +1230,66 @@
初审辅助专家终审
-
-
-
-

严谨规范的软件研发流程 · 让项目交付具备确定性

+

项目怎么推进

- 从需求推演、单元测试覆盖到生产部署与源码移交,每个阶段均有规范的物料产出与评审记录,杜绝烂尾隐患。 + 下面五个阶段是常规做法,具体项目按合同调整。每个阶段结束都有文档或可运行的系统,确认后再往下走。

@@ -673,73 +1298,84 @@
01
-

业务需求调研与方案论证

+

需求调研与方案确认

- 资深架构师深入一线调研实际业务流程与技术要求,输出清晰的需求规格说明书与可行性评估报告。 + 由架构师参与调研,梳理现有流程与系统边界,输出需求规格说明书和可行性评估,双方确认后进入设计。

-
02
-

高可用微服务架构设计

+

架构设计与技术选型

- 系统化规划微服务划分、分布式拓扑、数据库读写分离与缓存策略,制定完备的高并发应对与容灾应急预案。 + 按业务规模、数据量和客户运维能力确定架构(单体或微服务)、数据库与缓存方案,并给出部署拓扑与容量估算。

03
-

规范编码与严格测试

+

编码、审查与测试

- 严格遵循工程规范与 CI/CD 自动化流水线,落实代码审查机制与接口自动化测试,保障系统上线质量与稳定性。 + 代码合并前做审查,走 CI + 构建;接口与核心流程编写自动化测试用例,测试记录随版本归档。

04
-

高并发压力测试与安全渗透测试

+

压力测试与安全测试

- - 模拟真实生产环境的峰值压力测试,执行接口安全渗透扫描与漏洞合规审计,确保系统坚固可靠。 + 按约定的并发量做压力测试,检查权限、越权与常见注入风险;需要第三方渗透测试报告时另行委托。

05
-

私有化部署与长期运维支持

+

部署、移交与运维支持

- 专业技术团队提供专有云/本地内网部署,交付完整工程源码与开发文档,配备技术团队与 SLA 响应支持。 + 部署到客户专有云或机房内网,交付源码、部署文档与数据库字典,并按合同约定的 + SLA 响应。

-
- +
+ 研发规范 - + + +
-
-

来自甲方的真实反馈 · 稳定运行是有力的证明

+

客户的原话

- 系统好不好用,客户心中有数。我们用稳定上线的系统和负责任的服务态度赢得长期合作。 + 以下反馈经受访者同意后引用,并按对方要求隐去企业名称与姓名。

@@ -748,13 +1384,15 @@
“

- 纳海川团队展现了扎实的架构能力与业务敏锐度。在较短周期内为我们重构了 B2B 订货中台,不仅顶住了销售大促的高峰压力,更有效解决了困扰我们多年的库存对账误差问题。 + 订货中台重做后,大促当天的订单没卡住,库存和财务的账也能对上了。过程中沟通比较直接,改动都有记录。

-
张
+
企
- 张立伟 - 供应链流通集团 · 数字化技术总监 + 供应链企业 · 技术负责人 + 订货中台 · 分销业务
@@ -762,13 +1400,15 @@
“

- 收银与门店进销存系统在多区域连锁门店上线后,收银员上手迅速,几乎没有出现过死机或掉单情况。即使遇到网络故障,离线记账功能也能平稳过度,让我们非常安心。 + 收银员学半天就能上手。门店断网时照常收银,网络恢复后单据自动补传,月底对账省了不少事。

-
李
+
企
- 李青蓉 - 连锁新零售品牌 · 运营副总裁 + 连锁零售企业 · 运营负责人 + 门店收银 · 连锁零售
@@ -776,46 +1416,56 @@
“

- 在企业级 AI 智能体开发上,纳海川团队的技术能力扎实。搭建的专属 RAG 知识库检索精准,私有化部署完全符合内网审查标准,合作省心。 + 智能体部署在内网,数据不出机房,这一点通过了我们信息中心的审查。检索结果带原文出处,同事敢用。

-
王
+
企
- 王振邦 - 智能制造装备企业 · 首席信息官 CIO + 装备制造企业 · 信息中心负责人 + 知识库 · 内网部署
-
- 服务涵盖政企金融、先进制造、新零售及现代物流领域的领先组织 +
+ 常见项目类型(客户名称按约定不公开)
- 贵阳商贸供应链 - 供应链流通 · B2B中台 + 商贸流通 + 分销订货与库存管理
- 西南智能制造 - 高端装备 · 生产进销存 + 装备制造 + 生产进销存与供应商协同
- 黔信互联科技 - 政企服务 · 私有AI智能体 + 政务与企业服务 + 知识库问答与审核辅助
- 连锁零售商超 - 智慧门店 · 软硬一体收银 + 零售与餐饮 + 收银与门店管理
- 智慧农特产业 - 农产电商 · 全渠道分销 + 农产品与快消 + 线上商城与分销
- 现代医药物流 - 医药冷链 · 批次全流程溯源 + 医药与冷链 + 批次追溯与效期管理
@@ -823,122 +1473,253 @@ -
+
-
+
-
- 技术洞察 - ENGINEERING INSIGHTS +
+ 技术笔记 + ENGINEERING INSIGHTS
-

- 架构实践与研发动态 +

+ 技术笔记与团队动态

-

- 坚持交付完整工程源码与完善开发文档。持续积累微服务架构、企业AI应用与高可用系统实战经验。 +

+ 写一些项目里的具体做法:架构怎么选、性能问题怎么查、交付时遇到过哪些问题。

-
- + 更多动态 - + + +
- {if !empty($information['data']) && count($information['data']) > 0} - {foreach $information['data'] as $idx => $art} - {if $idx < 4} + {if !empty($information['data'])} {foreach name="information.data" + id="art" key="idx" offset="0" length="4"}
- - {php} - $cover_fallbacks = [ - 0 => '/assets/addons/official/images/articles/article_cache.svg', - 1 => '/assets/addons/official/images/articles/article_mysql_page.svg', - 2 => '/assets/addons/official/images/articles/article_xxl_job.svg', - 3 => '/assets/addons/official/images/articles/article_redis_split.svg', - ]; - $img_val = !empty($art['image']) ? $art['image'] : ''; - if (empty($img_val) || strpos($img_val, 'article_microservice.svg') !== false) { - $cover_src = isset($cover_fallbacks[$idx]) ? $cover_fallbacks[$idx] : '/assets/addons/official/images/articles/article_microservice.svg'; - } else { - $cover_src = $img_val; - } - {/php} - {$art['title']} + + {php} $cover_fallbacks = [ + '/assets/addons/official/images/articles/article_cache.svg', + '/assets/addons/official/images/articles/article_mysql_page.svg', + '/assets/addons/official/images/articles/article_xxl_job.svg', + '/assets/addons/official/images/articles/article_redis_split.svg', + ]; $img_val = !empty($art['image']) ? $art['image'] : ''; if + (empty($img_val) || strpos($img_val, + 'article_microservice.svg') !== false) { $cover_src = + isset($cover_fallbacks[$idx]) ? $cover_fallbacks[$idx] : + '/assets/addons/official/images/articles/article_microservice.svg'; + } else { $cover_src = $img_val; } {/php} + {$art['title']}
- +

{$art['title']}

-

- {$art['subheading']} -

-
- 阅读耗时约 4 分钟 - +

{$art['subheading']}

+
+ 阅读全文 - + + +
- {/if} - {/foreach} - {else/} - + {/foreach} {else/} +
- - 高并发商城中台架构设计 + + 高并发商城中台架构设计
- -

高并发商城中台架构设计:从单体拆分到微服务与分布式事务实践

+
+

+ 高并发商城中台架构设计:从单体拆分到微服务与分布式事务实践 +

- 系统解构纳海川在高并发与多商品秒杀业务场景下的微服务架构演进,详解分布式锁、RocketMQ可靠消息一致性及多租户分库分表工程实践。 + 从单体到微服务的拆分过程,以及订单、库存、支付在不同服务之间如何保持一致。

-
- 阅读耗时约 5 分钟 - +
+ 阅读全文 - + + +
- - 企业私域 AI 智能体落地指南 + + 企业私域 AI 智能体落地指南
- -

企业私域 AI 智能体落地指南:基于 RAG 的本地化知识库与安全隔离工程

+
+

+ 企业私域 AI 智能体落地指南:基于 RAG + 的本地化知识库与安全隔离工程 +

- 围绕政企内网物理隔离与核心数据安全底线,阐述纳海川私域智能体开发范式:大模型本地量化部署、向量多路召回与知识溯源防幻觉机制。 + 如何在客户内网部署大模型与知识库,如何切分文档、控制检索范围,并让回答带上出处。

-
- 阅读耗时约 4 分钟 - +
+ 阅读全文 - + + +
@@ -954,18 +1735,44 @@
- 务实合作 -

有具体的系统研发或产品选型需求?我们来落实

+ 联系我们 +

+ 有具体的系统研发或产品选型需求?可以直接沟通 +

- 安排拥有 8 年以上实操经验的架构师与您直接沟通。针对业务流程、数据打通、部署环境提供切实可行的技术评估与预算参考,绝不空谈概念。 + 由架构师直接对接,先确认业务流程、现有系统和部署环境,再给方案、工期与预算区间。是否合作都可以先把问题聊清楚。

@@ -975,125 +1782,131 @@ -{/block} - -{block name="js"} +{/block} {block name="js"} -{/block} \ No newline at end of file +{/block} diff --git a/addons/official/view/web/official_home/index_e.html b/addons/official/view/web/official_home/index_e.html index 43073c8..12e61fa 100644 --- a/addons/official/view/web/official_home/index_e.html +++ b/addons/official/view/web/official_home/index_e.html @@ -1,43 +1,46 @@ -{extend name="web/official_common/mobile/base" /} - -{block name="css"} +{extend name="web/official_common/mobile/base" /} {block name="css"} -{/block} - -{block name="content"} +{/block} {block name="content"} -{/block} - -{block name="js"} +{/block} {block name="js"} {/block} diff --git a/tests/test_natural_copywriting.py b/tests/test_natural_copywriting.py index e60f40d..34ae140 100644 --- a/tests/test_natural_copywriting.py +++ b/tests/test_natural_copywriting.py @@ -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()