Skip to content

About

一键洗掉网文里的 AI 味:针对 GPT / Claude / DeepSeek / 千问等不同模型的病灶定向清洗,去味效果可量化(0-100 去味指数)、每处修改可对账,支持超长篇分块处理与热力图定位。含开箱即用的 Claude Code 双 Skill(评分+润色)与零依赖引擎 | (MIT)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

去AI味(novel-deai)— 网文 AI 痕迹清洗与润色引擎

面向中文网文的「去 AI 味」领域能力层:结构化规则库 + 确定性评分引擎 + 双形态润色管线。 后续小程序/Web 应用的引擎层;同时以 Agent Skill 形态发布(Claude Code / Cursor 可装)。

架构

rules/                      ← 唯一事实源(34 条三段式规则:识别条件/改写动作/保留边界)
├── patterns/*.yaml             sweep-transition / quant-metaphor / hedge-modifier /
│                               idiom-pileup / preach-ending / summary-tell / dialogue-stiff
├── models/*.yaml               GPT说教 / Claude华丽 / DeepSeek量化 / Qwen成语(加权与策略)
├── genres/*.yaml               玄幻修仙 / 都市脑洞 / 言情日常
├── wordlists/modifiers.yaml    55 词修饰词表(评分 d2 指标源)
└── profiles/{basic,deep}.yaml  质量门档位(阈值/重写上限/提前停)

engine/                     ← 确定性引擎(零 npm 依赖,Node ≥20,js-yaml 已 vendor 化)
├── cli.js                      评分命令行:node engine/cli.js <file> [--model deepseek]
├── hard-filter.js              硬过滤(仅零歧义规则,只删不改)
└── src/
    ├── segment.js / dialogue.js    分句 / 对话区间(对话豁免与 dialogue-stiff 双轨)
    ├── rules.js                    规则加载 + 匹配(模型加权、boundary_guard)
    ├── metrics.js / compose.js     三指标 + D1 扣分制合成 → 去味指数
    ├── score.js / polish.js        评分组装 / 润色管线(硬过滤→软改写→质量门→回滚)
    ├── diff.js                     句子级 LCS,修改归因 rule_id
    └── llm/                        provider adapter / mock / prompt 组装 / judge / extract

prompts/                    ├── rewrite/{gpt,claude,deepseek,qwen}.md(软改写策略)
skills/                     ← 构建产物:novel-deai-score / novel-deai-polish(scripts/build-skills.js)
eval/                       ← 回归门禁:run.js(score 级 33 用例)/ run-polish.js(真实 API)/
                               calibrate.js(embedding 校准)/ zhuque-protocol.md(人工基准)

一份规则的三个出口:正则被执行(硬过滤/评分,零 token)、改写指令注入 prompt(软改写,只注入命中规则)、 渲染成 SKILL.md(Agent 引流形态)。见 openspec/changes/add-novel-deai-skills/design.md(D6)。

快速开始

npm install            # 开发环境(测试用);运行时引擎已零依赖
npm test               # 122 项测试
npm run validate       # 规则库 schema 校验
node eval/run.js       # score 级回归门禁(33 用例)

# 评分
node engine/cli.js 样本.txt --model deepseek

# 润色(需 DEAI_LLM_API_KEY,默认 DeepSeek 端点)
node -e "import('./engine/src/polish.js').then(async m => {
  const r = await m.polishText({ text: '……', sourceModel: 'deepseek', genre: 'xuanhuan', qualityProfile: 'basic' });
  console.log(JSON.stringify(r, null, 2));
})"

# 构建 Agent Skill 并安装
node scripts/build-skills.js
# 产物 skills/novel-deai-{score,polish} 拷入 ~/.claude/skills/ 即装即用

规则库维护指南

  1. 加规则:rules/patterns/ 新建 P-XXX-NNN.yaml(id 格式 P-<类>-三位数),必填三段式: pattern(识别正则)/ boundary(保留边界:什么情况不许动)/ rewrite(改写动作)+ examples(网文语境前后例)。
  2. 校验:npm run validate(id 唯一、枚举、正则可编译、hard_filter 准入、profile/weights 合法)。
  3. 回归:node eval/run.js——每条新规则配一条「必须改」用例;边界行为配「必须不改」用例 (对话内、真实纠正、角色口吻都要有用例钉住)。两类用例任一失败即禁止发布。
  4. 改写纪律:rewrite 字段写方向不写答案;每条规则至少 2–3 个策略不同的示例更佳(design D9 反同质化)。
  5. 发布:规则变更后 node scripts/build-skills.js 重新生成 skills(版本戳自动更新)。

设计要点(详见 openspec change 文档)

  • 单分数可对账:展示分 = 三项硬指标扣分制合成;LLM-judge 只做质量门内部判定
  • 质量门:定点重写低分段落;提前停/上限停/实体校验失败回滚——宁出低分忠实版,不出高分失真版
  • 对话双轨制:硬过滤与通用规则豁免对话;dialogue-stiff 类规则只扫对话、计入评分
  • 反同质化:rewrite 温度 0.7 与 judge 0 分离;禁复用示例意象;多样性回归用例 + 朱雀集群监测
  • 确定性承诺:同输入评分逐字节一致(版本内);润色输出不承诺复现

许可证与致谢

  • 规则三段式格式与"保留边界"方法论借鉴 op7418/Humanizer-zh(MIT), 规则内容为网文语境原创重写,未复制其条文。
  • hylarucoder/ai-flavor-remover 仅借鉴实测结论(朱雀基准、定点重写), 未复制其 Prompt 文本(该仓库无 LICENSE)。
  • 本仓库规则与代码为原创内容,商业使用请保留本致谢。

About

一键洗掉网文里的 AI 味:针对 GPT / Claude / DeepSeek / 千问等不同模型的病灶定向清洗,去味效果可量化(0-100 去味指数)、每处修改可对账,支持超长篇分块处理与热力图定位。含开箱即用的 Claude Code 双 Skill(评分+润色)与零依赖引擎 | (MIT)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages