DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

grq6414-hash /

grq6414-hash/dsh-style-detector

Verified

中文「AI 味」检测器:本地规则引擎打分并标出套话、句式均匀、缺画面感与重复,另设错字页;分数始终由本地算。Chinese prose AI-flavor detector for DSH.

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@def75f07

AI 文风检测器 · dsh-style-detector

npm GitHub release

一个给 DSH(DeepSeek Harness)用的右侧栏页签插件:粘贴一段中文,实时给出 0–100 的「AI 味」评分与分项诊断,标注问题片段,逐条给出改写建议,并能一键替换原文。

定位说清楚:这是一个文本机械性风险检测器,不是 AI 鉴定器。它检测的是「读起来像不像机器批量生产的中文」,用的是可解释的本地规则;分数低只说明没踩这十几个坑,不等于写得好,也不等于能通过平台的检测。

  • 分数与定位全部本地算,不联网、不需要 API Key、同文本同分数
  • 语义复审交给 DSH 已绑定的模型(可换,只影响本面板),结果并入同一份分析,分数仍由本地算
  • 两种文体:通用(说明 / 议论 / 公文)与网文(正文 / 对白 / 场景),词表、权重、复审提示词各不相同
  • 八个页签:诊断 / 标注 / 建议 / 错字 / 记录 / 重点 / 对比 / 批量

安装

桌面版(图形界面)

  1. 打开「设置 → 插件」
  2. 在「市场」里搜 dsh-style-detector,或直接用包名安装
  3. 完全退出 DSH 再重新打开(不是关窗口、不是刷新页面)
  4. 右侧栏的「+」指南页里选「AI 文风检测」

从 npm 装(推荐)

dsh plugin add dsh-style-detector
# 然后完全退出 DSH 再重新打开

包页:https://www.npmjs.com/package/dsh-style-detector

直接从 GitHub 装(不需要 npm)

dsh plugin add https://github.com/grq6414-hash/dsh-style-detector/releases/download/v0.1.0/dsh-style-detector-0.1.0.tgz
# 然后完全退出 DSH 再重新打开

也可以在 Releases 页 手动下载 .tgz。

命令行(装了 DSH CLI 的话)

dsh plugin add dsh-style-detector
# 然后完全退出 DSH 再重新打开

手动(都不方便时)

cd ~/.dsh/profiles/<你的 profile>
pnpm add https://github.com/grq6414-hash/dsh-style-detector/releases/download/v0.1.0/dsh-style-detector-0.1.0.tgz
# 然后在 package.json 的 dsh.profile.bundles 数组里加上 "dsh-style-detector"

这个包已经发到 npm(dsh-style-detector@0.1.0),所以上面这句也可以简写成 pnpm add dsh-style-detector。

为什么必须完全重启:插件清单(dsh.profile.bundles)和前端启动图(window.__DSH_BOOT__)是在进程启动时一起生成的。运行中启停插件后再刷新页面,启动图里可能没有新插件的 factory,页签会卡在 loading 状态并导致整个 Web 界面白屏(DSH 目前没有安全模式,只能杀进程)。改插件状态 → 完全退出 → 重开,这条要记住。

别和本地开发版同时装:如果你之前用 created-plugins 的 link 方式装过这个插件的开发版,先卸掉。两个插件抢同一个页签类型和同一组路由,后装的那个会静默失效。

能做什么

诊断

总分环 + 七项分项卡片。每一项都是「AI 味」分数:越高越像 AI,0 = 像人写的,100 = 一眼假。

分项 通用模式权重 网文模式权重 检测什么
AI 套话 / AI 腔套句 0.24 0.20 约 54 个模板词组(通用)/ 约 51 个小说套句(网文),按密度计分
句式均匀 / 句子节奏平 0.20 0.22 句长离散度 + 段长离散度 + 接近均值的句子占比
排比结构 0.14 0.10 连续几句长度相差 ≤3 字(三句轻扣、四句起重扣)+ 总分总结构
连接词密度 0.14 0.10 书面逻辑连接词密度 + 破折号成片 + 分号串句
缺具体信息 / 缺画面感 0.16 0.20 数字、专名、引号内容、时间词(通用);对白、感官、动作、物件、身体部位(网文)
词汇重复 / 描写重复 0.12 0.18 二元组去重率,剔除术语复现;另有「同义反复」检测
语义层 0.18 0.18 模型复审(只挑片段、不打分),总分 = 本地六项 × 0.82 + 语义层 × 0.18

档位:≥66「AI 味偏重」,36–65「半人半机」,<36「像人写的」。

诊断页底部还有两块可点的图:句长节奏(每根柱子一句或一组)与段落热力(每块一段,颜色越深越重)。点一下跳到「标注」页,把那几句原文标亮并滚到眼前。

分项卡片也能点:带「N 处」角标的可以直接跳到对应问题,循环点击在一类问题里依次定位。

标注

原文按问题类型着色,右上角图例固定列全七类,点图例可循环定位(标签上显示 2/5 这样的进度)。整句级问题(缺画面感、通篇长句、同义反复)用虚线底边,词级问题用实线底边,一眼能分开。

正文字号可调(A− / A+,四档),设置会记住。

建议

每条问题一张卡片,原句 / 改成 两行对照:原句里命中的部分标红删除线,下面是改写后的样子;给不出自动改写的显示「这条只给建议,不自动改写」。

每张卡片三个动作:应用改写(只改这一处)、忽略这条(不再计分,记住指纹下次还在)、原句整行可点(跳回标注页定位)。

「缺画面感」这类整句级问题不能自动改写——机器不知道你要写什么画面,硬塞一个假改写只会更糟。

错字

单开一页,完全不影响文风分数(错别字多是文本对错问题,混进 AI 味会互相干扰)。

两层机制:

  1. 内置固定错配表(231 组,如 既使→即使、做为→作为、烦燥→烦躁、签定→签订),即时标红,不联网、零延迟
  2. 模型逐句扫描(点「模型校对」才跑),挑形近字、成语误用、音近字,每条都要求原句逐字找得到、错字是原句的子串,对不上的直接丢弃

专有名词有保护:书名号《》里的一律不报;引号里且全文出现两次以上的当专名跳过。点「这不是错」加进白名单,与文风白名单共用一份。

记录

最近 30 条检测记录(文本 + 分数 + 时间),可一键载回。

重点

「最该先改的 10 句」:按句子归并问题,用真实引擎重跑一遍算出「改完这句实际掉多少分」,按掉分降序排列。这是改动优先级表,不是新维度。

对比

贴 v1 / v2 两版,显示分数变化、修好了几条、新引入几条、还在的几条。

批量

拖入或选择 .txt,按「第 N 章」自动切章,表格给出每章字数、分数、最重三项。顶部有章节趋势:平均分、首末变化、最干净/最重章、每章一根小柱。

表格行可点:点一下把该章载入正文,切到诊断页接着改。

顺手能用的十件事

  1. Ctrl/⌘ + Enter 立刻复审(不等自动触发)
  2. Ctrl/⌘ + Z 撤销上一次「替换原文」或「改错字」(只留一步)
  3. Esc 关掉放大编辑层或折叠面板
  4. 放大 编辑区可以全屏展开写
  5. 目标分 设一个(默认 30,有 25/30/36 三个快捷档),达标后环变绿
  6. 自定义词表 黑名单加你自己的口头禅,白名单压掉误报
  7. 不计分的项 觉得某一项对你没意义,直接关掉(权重会重新归一化)
  8. 复制报告 一键导出 Markdown 报告(总分、分项表、最该改的句子)
  9. 配置备份 文体、目标分、字号、词表、忽略表一键导出/导入
  10. 换复审模型 点标题下那行模型名,从已绑定的 provider 目录里挑

已知边界(请认真读)

修不了的:

  • 词表永远漏报。低分只能证明「没踩这十几个坑」,不能证明安全
  • 叙事层 / 人物层 / 情节套路测不到。三章一个打脸、伏笔不回收、所有角色一个腔调——这是本地规则的最大空洞,也是平台最容易抓的东西
  • 模型复审不确定。同一个模型两次结果可能不同,换模型差异更大。已加「只能扣分不能抬分」+ quote 逐字校验两道保险,但本质仍是「某个模型的看法」
  • 通过它 ≠ 通过平台。平台可能用困惑度/突发性分类器、水印、人工审核、读者举报、更新行为特征。工具测的是文本风格,平台还看行为

能修但还没修的:

  • 英文界面只有半成品(locale/en.json 只有标题和描述,界面文案是中文)
  • 术语识别基于二元组,不是真分词,极端专业的文本仍可能偏严

建议用法:当「改稿前的机械性筛查」。目标 30 分以下,重点看排比、缺画面感、同义反复;降到 25 以下别再追(会开始伤文笔);剩下交给人眼三问——这章有没有推进?人物说话有没有区别?结尾想不想点下一章?

数据与隐私

所有数据存在本机浏览器 localStorage,键名带 dsh.style-detector. 前缀:

键 内容
draft.v1 当前编辑中的文本
history.v1 最近 30 条检测记录
mode.v1 文体(general / fiction)
ignore.v1 已忽略的条目指纹与分项
custom.v1 自定义词表({deny, allow})
target.v1 目标分(1–100,默认 30)
v2.v1 「对比」页的第二版文本
font.v1 标注页字号档位(0–3,默认 1)
model.v1 复审挑的模型({provider, model},留空跟随默认)

不联网的只有本地规则引擎。一旦你点「模型复审」或「模型校对」,文本会发给你在 DSH 里绑定的那个 provider——这是你自己配的、自己选的动作。不想外发就关掉自动复审(状态条上的勾选框)。

开发

git clone https://github.com/grq6414-hash/dsh-style-detector.git
cd dsh-style-detector
# 没有构建步骤,client.js 是手写的原生 CJS 模块,index.js 是宿主 ESM 插件

两个文件的分工:

  • index.js — 宿主侧(Node)。注册两条 HTTP 路由 /dsh-style-detector/review 与 /dsh-style-detector/proofread,用 ctx.llm.stream 调模型,把模型输出当不可信数据校验(quote 必须原文逐字找得到)后才返回
  • client.js — 浏览器侧。规则引擎 + 八个视图 + 页签注册/卸载。入口是 window.__ModuleLoader__.load({ id, factory })

想调规则:client.js 里的 dimCliche / dimUniform / dimParallel / dimConnective / dimDetail / dimDetailFiction / dimDiversity 六个函数,权重在 MODES 里。改完直接热重载即可(dsh plugin disable/enable),不需要编译。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit def75f07e274

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout