本地大模型 · 结构化记忆 · 长篇小说写作台
一台「你掌舵、模型划桨」的长篇小说创作机器:你只用一句话定方向,模型一次写出整章, 流水线负责长期记忆、连续性检查和上下文组织——越写越连贯,而不是越写越乱。
- 🖥️ 桌面应用,开箱即用 — 装好安装包,填一个模型地址就能写,无需 Python、无需 clone 仓库。
- 🧠 结构化长期记忆 — 人物、伏笔、时间线、事件、章节摘要自动维护,专治长篇「写崩」。
- ✍️ 一句话生成整章 — 给一句 idea,模型起草完整章节;idea 永远是最高优先级。
- 🔍 连续性审查 — 内置「编辑」帮你揪信息超前、设定漂移、伏笔遗漏、AI 腔。
- 🎨 好看又顺手 — 中 / 英双语,浅 / 深 / 暖三套主题,2026 现代界面。
- 📂 文件型,简单稳定 — 全是 YAML / JSON / Markdown,无数据库,可读可备份可手改。
- 🔌 接本地推理 — OpenAI 兼容接口,llama.cpp / vLLM 等皆可;可配 LoRA 文风。
📣 项目持续维护中,欢迎到 Issues 反馈,我会根据反馈及时修复和更新。
app/ 是基于 Tauri(Rust + React) 的桌面应用。引擎已用 Rust 原生重写,
终端用户只需要两样东西:
- 安装包
Sodarie Novel_<版本>_x64-setup.exe - 一个 OpenAI 兼容的模型服务地址(自备本地推理服务,如 llama.cpp / vLLM)
首次启动会自动在用户数据目录建好项目并写入模板。
从 Releases 下载对应平台安装包:Windows *-setup.exe · macOS *.dmg(arm64 / x64)· Linux *.AppImage / *.deb。
- 安装并打开 Sodarie Novel。
- 进入 设置,填写 LLM Base URL(须含
http://,多数本地服务在/v1下,例如http://127.0.0.1:18180/v1)与模型名称。 - 回到 章节工作台,新建
ch001→ 写一句 idea → 生成。开写!✨
第一次用?应用内左侧「📖 使用指南」有详细中英文教程,照着走五分钟上手。
| 区域 | 作用 |
|---|---|
| ✍️ 章节工作台 | 选章 / 新建 → 一句 idea + 目标字数 → 生成 / 重新生成 → 正文可编辑保存 → 一致性检查 / 更新记忆 / 重置 |
| 📋 报告 | 界面内渲染生成报告、一致性报告、记忆更新报告 |
| 🧠 记忆库 | 编辑 story bible、角色、大纲、伏笔、风格库,降低手写 YAML 门槛 |
| ⚙️ 设置 | 项目目录、LLM 地址 / 密钥 / 模型;中英文 & 主题切换 |
| 📖 使用指南 | 内置详细中英文操作教程 |
环境:Node.js 18+ 与 npm、Rust 工具链(rustc / cargo)。
cd app
npm install
npm run tauri dev # 开发模式
npm run tauri build # 打包安装器(NSIS)flowchart LR
A["准备记忆库<br/>世界观·人物·大纲"] --> B["写一句<br/>chapter idea"]
B --> C["生成整章"]
C --> D["审阅 / 改 /<br/>重新生成"]
D --> E["一致性检查"]
E --> F["更新长期记忆"]
F --> B
核心心法:idea 决定这章写什么,记忆库决定这章和前文对不对得上。
| 文件 | 作用 |
|---|---|
memory/story_bible.yaml |
故事圣经:世界观、主题、写作规则、禁止模式 |
memory/characters.yaml |
角色档案:状态、knows、secrets、关系、限制 |
outlines/book_outline.yaml |
全书方向、结构与章节规划 |
memory/foreshadowing.yaml |
伏笔追踪:active / resolved 双态 |
memory/style_bank.jsonl |
文风样例(每行一条 {id, text}),模型据此模仿笔调 |
memory/events.jsonl · timeline.jsonl · chapter_summaries.jsonl |
自动维护的事件 / 时间线 / 摘要账本 |
memory/relationships.json |
人物关系图(节点 + 边) |
chapters/<id>/chapter.md · outputs/reports/ |
每章正文 · 各类报告 |
events / timeline / summaries / relationships由「更新记忆」自动写入,一般不用手改。
已发布多套中文小说文风 LoRA(基于 Qwen3),按题材分别微调,可按需搭配使用:
| 题材 | 模型 |
|---|---|
| 现实主义 | chinese-realistic-fiction-lora-v1 |
| 犯罪悬疑 | chinese-crime-fiction-lora-v2 |
| 民俗恐怖 | chinese-folk-horror-lora-v2 |
| 仙侠 | chinese-xianxia-lora-v2 |
全部模型主页:https://huggingface.co/yuxinlu1
LoRA 权重不放进 GitHub 仓库;仓库只放代码、文档和配置模板。
桌面应用之外,scripts/*.py 提供等价的命令行流程(需 Python 3.10+ 与 openai、pyyaml)。
展开命令行用法
# 1. 生成一章
python scripts/generate_chapter_local.py --chapter ch001 --idea "第一章:主角回到故乡,发现父亲留下的一封信,决定调查多年前的旧事。" --target-words 4000 --overwrite
# 2. 一致性检查
python scripts/check_consistency.py --chapter ch001
# 3. 更新长期记忆
python scripts/update_memory_after_chapter.py --chapter ch001
# 4. 重置某章(默认只删正文/报告;加 --include-memory 连带过滤摘要/事件/时间线)
python scripts/reset_chapter.py --chapter ch001generate_chapter_local.py 常用参数:
--idea/--idea-file:二选一--target-words:目标中文字数,默认 4000--overwrite:允许覆盖已有chapter.md--no-context:不读取长期记忆,只按 idea 生成--dry-run:只构建 prompt 和报告,不调用 LLM
面向本地写作与本地推理。公开仓库时请注意(.gitignore 已默认排除大部分):
- ❌ 不提交
.env、接口密钥、访问令牌等凭证 - ❌ 不提交本地模型 / LoRA 适配器文件
- ❌ 不提交私稿
chapters/、生成产物outputs/、本地设置.ui-settings.json - ❌ 不提交训练数据原文或未授权文本
- 文件型记忆系统
- 整章一次生成
- 章节后记忆更新
- 完整章节一致性检查
- 第一版中文小说 LoRA 发布到 Hugging Face
- 桌面应用(Tauri,Rust 引擎,中英双语 + 主题切换)
- 检索增强记忆(RAG)
- 多 LoRA 文风库
- 一键导出书稿
📣 持续维护中。 用着有问题、有想法,欢迎在 Issues 提反馈——我会根据大家的反馈及时修复和更新。
也欢迎直接发 PR,尤其是 prompt 优化、流水线脚本、一致性检查、本地模型兼容性等方向。
LoRA 文风权重:https://huggingface.co/yuxinlu1
License:MIT © 2026 DuckTraDo。
Made by DuckTraDo · 用 ☕ 与本地大模型写就

