Skip to content

About

小说优化器 · Novel Optimizer —— 本地运行的 AI 小说改写工作台:风格萃取 / 逐段改写 / 长期记忆 / 整本备份(Windows,零依赖)

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

小说优化器 · Novel Optimizer

本地运行的 AI 小说改写工作台 —— 按你的文风重写,逐段确认,越改越懂你的要求。

Python Dependencies Platform License

功能 · 快速开始 · 配置模型 · 使用流程 · 常见问题

界面预览

不想看代码,只想用? 下载 dist/novel-optimizer-v2.0.0.zip(70 KB),解压后双击 启动工具.bat 就能用;也可以在 Releases 里下载同一份包。

别人写的小说,你想用自己的口味重写一遍;或者自己写的稿子,想让 AI 按某位作家的笔法过一遍——这个工具就是干这件事的。

左边粘原文,右边出改稿。AI 按你设定的写作风格 skill、写作示例和长期修改要求动手;不满意就在侧边栏和它讨论,聊出来的意见一键记进记忆,下次自动生效。长文自动分段,可以逐段确认、随时停止继续;改完能对比改动、保存历史版本、整本备份。

为什么做成本地工具:后端是 Python 标准库,双击 启动工具.bat 就能用,不需要 pip / npm,也不需要数据库。稿件、记忆、API Key 都留在自己电脑上,只在你调用模型接口时才联网。

功能

模块 说明
书架 一本书一张卡:原文字数 / 改稿字数 / 记忆条数 / 更新时间;点卡片进入,✕ 删除
左右双栏 左「原文」/ 右「修改后」,都可直接编辑,改稿边生成边流入
写作风格 Skill 可从 data/styles/ 风格文件库下拉载入,也可直接粘贴或导入 .md;改完可「保存到库」
风格萃取 「AI 萃取」:粘一段/几章小说正文(可自选取样章数),十维文风分析 → 生成风格 skill + 从样本逐字摘录的写作示例
写作示例 几句现成话语作语感参考,与风格窗口并排
长期记忆 每本小说独立的「修改要求」清单:勾选启用、点一下改、可删;每次修改自动带上
记忆整理 「整理精简」让 AI 合并去重,结果可手改后一键替换,避免要求越堆越臃肿
本次附加要求 只对这一轮生效的大文本框,无字数上限
逐段确认 勾上后每次只改一段,看着满意再「下一段」;不满意可「重改本段」
停止 / 继续 中途停下不丢已改内容,可从断点继续或一次跑完剩余
修改基线 「本次输入」可选 原文(重改)或 上一版修改稿(在成稿上继续打磨)
目标字数 不限 / 按比例(如 110%)/ 指定总字数,按段分配进提示词
对比改动 段落对齐 + 字词级 diff(删除 / 新增 高亮)
历史版本 每次开始修改前自动存档,最多 12 个,可恢复 / 删除
和 AI 讨论 侧栏对话,AI 能看到风格、示例、记忆与当前修改稿;建议可「记入记忆」
多模型 / 多协议 OpenAI 兼容、Anthropic Claude 原生、Google Gemini 原生;模型可填多个,随时切换
备份 / 恢复 整本备份含全部使用记录;删书时自动留档,书架「恢复备份」一键回到删除前
清理 清除记忆 / 清空版本 / 清空稿件 / 删除整本书

界面

书架 风格萃取
书架 萃取
长期记忆 删除后恢复
记忆 恢复

下载即用(推荐)

  1. 下载 novel-optimizer-v2.0.0.zip(或到 Releases 下载最新版)。
  2. 解压到任意目录(路径尽量不要有空格以外的特殊字符)。
  3. 双击 启动工具.bat,浏览器自动打开操作界面。

压缩包里已经带好 开始使用.txt(三步上手)、示例风格与示例文本;data/ 会在首次运行时自动生成,你的配置与稿件都留在解压目录里,换电脑整个文件夹拷走即可。

前提:系统里有 Python 3.9+(只用到标准库,不需要 pip install)。

快速开始(从源码跑)

  1. 装 Python 3.9+(安装时勾选 “Add python.exe to PATH”)。
  2. 双击 启动工具.bat,浏览器自动打开 http://127.0.0.1:8765。
  3. 书架右上角 ⚙ 配置模型接口 → 新建小说 → 贴原文 → 开始修改。

关掉那个黑色命令行窗口就是退出。8765 被占用时会自动换端口,控制台会打印实际地址;打开界面.bat 会读取 data/last_url.txt 打开正确的地址。

命令行启动:

python app.py
# 可选环境变量:NOVEL_PORT=8765  NOVEL_NO_BROWSER=1  NOVEL_DEBUG=1

配置模型

工作台或书架右上角 ⚙ 打开设置:

协议 Base URL 示例 备注
OpenAI 兼容 https://api.deepseek.com · https://api.openai.com/v1 · https://openrouter.ai/api/v1 · http://127.0.0.1:11434/v1(Ollama) 填根域名或带 /v1 都行,程序自动补全
Anthropic Claude 留空即用官方地址 原生 /v1/messages,自动补 max_tokens
Google Gemini 留空即用官方地址 原生 generateContent,Key 走参数
  • API Key 只写进本机 data/settings.json,不经任何中转。
  • 模型 可手填多个,也可「从接口拉取列表」。
  • 「测试连接」会真发一次请求;思考型模型(deepseek-v4 / glm-5 等)会先输出思考内容,界面状态条会显示「模型思考中(N 字)」。
  • 思考型模型如果只吐思考不吐正文,工具会自动加大预算重试一次;仍失败就换个带 flash 的模型。

使用流程

  1. 书架「+ 新建一本」,起名;有想模仿的小说正文就点「✨ 萃取小说风格」。
  2. 粘原文(或导入 txt/md,GBK 自动识别)。
  3. 风格:从库下拉载入 / 粘贴 Markdown / 导入 .md;再贴几句写作示例。
  4. 顶栏选强度、基线、目标字数、分段字数,决定是否「逐段确认」。
  5. 「开始修改」。逐段确认模式下每段停下,确认后点「下一段」或「跑完剩余」。
  6. 用「对比改动」检查;不满意回「和 AI 讨论」,好的意见点「记入记忆」。
  7. 「本稿」里保存、查看历史版本、导出备份、清理数据。

强度档位:轻度润色(只修语病)/ 中度改写(重写句子)/ 深度重写(重构段内节奏)/ 完全重写(只保留剧情骨架)。

目标字数:按比例时,输入 110 表示改稿总字数约为输入的 110%;指定总字数时按原文各段占比分配到每段,提示词里会写「本段目标约 N 字(原文 M 字,需扩写/压缩 X%)」。

萃取小说风格

  1. 新建小说时点「✨ 萃取小说风格」,或已有小说在风格面板点「AI 萃取」。
  2. 粘贴要模仿的正文,或「导入 .txt / .md」;工具自动识别章节,显示「检测到 N 章 · M 字」。
  3. 选取样范围:取样 [20] 章 或勾「全部」,右侧实时显示实际取样量(硬上限 3 万字)。
  4. 「开始萃取」分三步:十维文风分析 → 生成风格 skill → 从样本逐字摘录 2–4 段写作示例。两个结果都可编辑。
  5. 「保存并创建小说」= 存进风格库 + 建书 + 套用;风格库里每份风格带一个 .example.md,下次载入时示例一起回来。

萃取方法参考自 Hermes Agent 技能 xin-novel-style-builder(十维文风萃取),本项目把它适配成工具内的风格格式,实现见 core/style_extract.py,方法论说明见 skill/novel-style-extractor/。

数据、备份与隐私

data/
├── settings.json       全局 API 配置(协议 / 地址 / Key / 模型列表)
├── styles/*.md         风格文件库(同名 .example.md 存配套写作示例)
├── novels/<id>.json    每本小说:配置 + 风格 + 示例 + 记忆 + 对话 + 稿件 + 版本
├── backups/*.json      整本备份(删除小说时自动生成,可随时恢复)
└── last_url.txt        上次启动的地址
  • 所有请求由本机直接发往你填的服务商;工具本身不收集、不上报任何内容。
  • 服务只监听 127.0.0.1,同局域网其他设备访问不到。
  • 每本小说的记忆、对话、稿件互不相通。
  • 删除小说时自动备份到 data/backups/,之后在书架「恢复备份」里点一下就能回到删除前的状态;也可以「导出整本备份」自己存文件,「从文件导入」恢复。
  • 记忆可以单独导出/导入(体积小,只含长期要求)。
  • 从旧版升级时,浏览器里残留的草稿会在首次打开时自动导入成《上次的草稿》。

目录结构

.
├── 启动工具.bat / 打开界面.bat   双击启动 / 重开界面
├── 开始使用.txt                  给不折腾代码的人看的三步上手
├── app.py                        本地 HTTP 服务与接口
├── build_release.py              打 dist/ 发布包(只含运行所需文件)
├── core/
│   ├── llm.py                    三种协议的流式客户端(含 reasoning 回调)
│   ├── prompts.py                提示词模板 / 强度档位 / 记忆整理
│   ├── style_extract.py          风格萃取:章节识别、取样、三段式提示词
│   ├── splitter.py               分段切块 + 目标字数分配
│   └── store.py                  设置 / 风格库 / 小说 / 备份存取
├── web/                          前端(原生 HTML/CSS/JS,无构建)
├── 示例/                         风格 skill 与写作示例样例
├── skill/novel-style-extractor/  萃取方法论(Hermes Agent 技能,可读可改)
├── docs/                         界面截图
├── dist/                         可直接解压使用的发布包
└── data/                         运行时数据(已在 .gitignore 中)

常见问题

“没有找到 Python” —— 装 Python 3.9+,勾选 “Add python.exe to PATH”。

改了代码没生效 —— 前端 Ctrl+F5;后端关掉黑窗口重启。

401 / 无效 Key —— 「测试连接」会显示服务商返回的原文。

404 / not found —— Base URL 少了或多了一层 /v1(写成完整的 .../v1/chat/completions 也支持)。

Claude 报 max_tokens 必填 —— 「最大输出 tokens」为 0 时程序自动填 8192。

萃取或整理时提示“模型只输出了思考内容” —— 换轻量模型,或把「最大输出 tokens」调到 2048 以上;工具已自动重试一次。

改得很慢 —— 逐段串行请求,长文本来就要时间;可调大「分段字数」减少请求次数。

记忆太多会不会拖累提示词 —— 每条记忆都会进 system 提示词,几十条以内没问题;太多就「整理精简」或把不常用的勾掉。

English

A local-first AI rewriting workbench for Chinese novels, running on the Python standard library and a plain browser UI (no pip, no npm, no build step).

Paste a chapter on the left, get a rewrite on the right, driven by a style skill, a few style samples, and a per-novel list of long-term requirements you build up while chatting with the model. Long texts are split into chunks and processed one by one, with step-by-step confirmation, stop/resume, diff view, version history, and full-book backup/restore. Supports OpenAI-compatible, Anthropic, and Gemini endpoints — all keys stay on your machine.

python app.py   # then open http://127.0.0.1:8765

致谢与许可

  • 文风萃取方法参考 Hermes Agent 的 xin-novel-style-builder 技能(十维萃取框架),本项目做了面向“改写别人稿子”的适配。
  • 界面与实现:原生 HTML/CSS/JS + Python 标准库,没有第三方运行时依赖。
  • 许可证:MIT

About

小说优化器 · Novel Optimizer —— 本地运行的 AI 小说改写工作台:风格萃取 / 逐段改写 / 长期记忆 / 整本备份(Windows,零依赖)

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages