# NovelBot **Repository Path**: zzzhou/NovelBot ## Basic Information - **Project Name**: NovelBot - **Description**: 像最近很火的 Clawbot 一样,这个项目可以一直帮你写小说。在本地持续创作长篇连载,写完直接投稿各大小说平台,争取稿费。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-03-03 - **Last Updated**: 2026-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NovelBot · 全自动长篇小说创作机器人 > 像最近很火的 Clawbot 一样,这个项目可以**一直帮你写小说**。 > 在本地持续创作长篇连载,写完直接投稿各大小说平台,争取稿费。
NovelBot = AI 代笔作者 × 长篇记忆 × 一键导出投稿稿件
快速开始 · 功能特点 · 架构 · 对比 Clawbot · 参与共创
NovelBot 是一个基于大语言模型(如 DeepSeek)的本地小说创作机器人,可以在你的电脑或服务器上**长期运行**,自动规划、创作和管理多部长篇小说。 - 📝 面向“想靠网文赚稿费”的个人创作者 - 🧬 面向想批量孵化 IP / 文库的工作室 - 🧪 面向研究长文本生成、一致性控制的开发者和研究者 你只需要提供一个大致的故事构想,它就能像“AI 代笔作者”一样,日复一日地帮你把一本本长篇写出来。 --- ## 特性总览 - 🚀 **多本小说并行创作** 支持同时规划和创作多部作品,每本都有独立的标题、题材、章节数、故事线。 - 📚 **长篇上下文记忆 + RAG** 自动回顾前文章节、人物与关键情节,降低“前后剧情断裂”的情况。 - 🧠 **剧情事实记忆 + 一致性审核 + 返工循环** 把“母亲是否已去世”“公司是否已经破产”之类的硬设定结构化存进数据库, 再用模型做一致性检查,自动对冲突章节进行二次创作,最大程度减少设定打脸。 - 🧩 **终章意识与收官写作** 能识别“最后一章”,主动以“完结篇”的方式写结局,解开主线悬念并交代角色命运。 - 📊 **可视化控制台** 自带 Web 后台:系统控制、仪表盘、产量统计、日志、查看正文、导出 Word,一目了然。 - 💾 **本地部署,数据自控** 所有小说内容、设定、日志都存储在你自己的数据库中,更适合作为“生产力工具”长期使用。 --- ## 功能特点(详细) ### 小说创作能力 - **多本小说并行创作** - 为每本小说单独配置标题、题材、章节数、故事发展线 - 支持玄幻、科幻、都市、悬疑等任意题材 - **自动章节生成** - 调度器根据你创建的“小说计划”依次生成章节 - 也可以在 Web 界面中手动点击“生成一章” - **终章意识与结局收束** - 当生成到**最后一章**时,模型会被明确要求写成“全书收官章” - 要求:解开主线悬念、交代角色结局、情感升华,而不是继续无止境地“水文” ### 上下文与一致性 - **章节级上下文 RAG** - 每次生成新章节时,系统会回顾前面所有已完成章节 - 对最近章节提取关键片段,结合人物设定、情节节点组成上下文 - **剧情事实记忆(Story Facts)** - 每一章生成完成后,系统会再调用一次模型,从本章中抽取“客观事实设定”,例如: - 某人已去世 / 已破产 / 已离婚 / 身份关系 - 重大事件发生过的时间 / 地点 - 这些事实会写入 MySQL 中的 `story_facts` 表,并按照重要程度分为: - `CRITICAL`:一旦写出就不能自相矛盾(比如“母亲已经去世”、“公司已经破产”) - `NORMAL`:一般设定和背景信息 - **一致性审核 + 返工循环** - 正常生成一章后,再次调用模型,对照“关键事实”做一致性审查: - 如果无冲突:直接采用这一版 - 如果发现冲突: - 输出“冲突描述 + 相关事实” - 把这份“冲突黑名单”塞回给模型,请它**在避免这些错误的前提下重新生成本章** - 典型问题比如: - 第 2 章写母亲已死,第 29 章又写从国外接母亲回国 - 第 2 章写公司已经破产,后面又在正常运转 - 这类设定会被 StoryFacts + 审核环节尽量拦截、纠正 ### 控制与监控 - **Web 控制面板** - 一键控制:开始创作 / 暂停 / 恢复 / 停止 调度器 - 查看调度器当前状态(运行中 / 暂停 / 停止) - **仪表盘与统计** - 小说列表与进度:每本小说的完成章节数、目标章节数、总字数、状态 - 每日写作产量:按天统计章节数与字数 - 全局统计:小说总数、章节总数、累计字数 - **实时创作日志** - 每次生成章节会记录一条日志:小说 ID、章节 ID、字数、耗时等 - 出现错误时,可以在日志区域看到具体原因 ### 作品管理 - **查看全文** - Web 界面中可以按小说查看任意章节的:章节标题、本章小结、正文 - 支持章节下拉选择快速跳转 - **自动章节标题** - 模型生成的“本章小结”会被自动提炼为章节标题,方便列表展示 - **导出 Word** - 整本小说可以一键导出为 `.docx`,适合: - 投稿到各大小说平台 - 本地排版与备份 - 支持中文标题文件名,已处理浏览器下载时的编码问题 - **删除小说** - 在列表中一键删除某本小说(连同其章节与日志),便于清理实验结果 --- ## 适用场景 - 想尝试写网文但时间有限,希望 AI 帮你打底,你再精修润色 - 有一堆故事点子,却很难坚持写完一本长篇 - 想快速做“多本小说实验”,测试哪种题材/人设更受读者欢迎 - 想研究长文本故事生成、记忆机制、一致性控制等课题 --- ## 设计理念 很多自动小说项目只是“证明可以生成一段小说”,而 NovelBot 的目标是**真正能“陪你写完一本书”**。 在设计时我们刻意遵循了几个原则: - 以创作者为中心: UI 和交互围绕“开新书、看进度、导出稿件”设计,而不是围绕“炫技 Demo”。 - 以一致性为底线: 用 Story Facts + 审核 + 返工机制,抵抗大模型在长篇中的“健忘症”和“编新设定”的冲动。 - 以长期运行为常态: 所有逻辑都假设调度器会长期跑在本机或服务器上,能够持续产出、持续统计。 - 保持可拆分: 你可以只用其中一部分能力(比如只用章节生成 + Word 导出),也可以把 NovelBot 嵌入到自己的写作工作流里。 --- ## 架构概览 - **后端** - Python 3.x - FastAPI - SQLAlchemy + MySQL - **前端** - Bootstrap 5 - Chart.js - 原生 JavaScript(无重框架依赖) - **模型接入** - DeepSeek 或其他 OpenAI Chat Completions 兼容接口 - 自带简单的:限流、重试、超时处理 - **主要模块** - `scheduler`:调度器线程,按小说计划生成章节 - `services/novel_service`:核心业务逻辑(RAG 上下文、事实记忆、一致性审核、章节生成) - `services/deepseek_client`:模型调用封装 - `models`:ORM 模型(Novel / Chapter / StoryFact / CreationLog 等) - `web`:管理后台页面与静态资源 --- ## 快速开始(Quick Start) ### 环境准备 - Python 3.10+(建议) - MySQL 5.7+ / 8.x - 操作系统:Windows / macOS / Linux 均可(作者在 Windows 环境下开发) ### 1. 克隆项目 ```bash git clone https://github.com/CanFlyhang/NovelBot.git cd NovelBot ``` ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 配置环境变量(.env) 在项目根目录创建 `.env` 文件,例如: ```env # 应用基础配置 APP_NAME=NovelBot # 数据库 DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=novelbot # 模型相关 DEEPSEEK_API_KEY=your_api_key DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 DEEPSEEK_MODEL=deepseek-chat # 调度参数 MAX_REQUESTS_PER_MINUTE=30 API_REQUEST_TIMEOUT=60 API_MAX_RETRIES=3 SCHEDULER_TICK_SECONDS=10 ``` 根据自己的 MySQL 和模型服务实际情况修改。 ### 4. 初始化数据库 确保你配置的数据库已存在(例如 `novelbot`),然后首次运行时会自动建表: ```bash uvicorn app.main:app --reload ``` ### 5. 打开管理后台 浏览器访问: ```text http://127.0.0.1:8000/ ``` 你将看到: - 左侧:系统控制(开始创作 / 暂停 / 恢复 / 停止)+ 新建小说计划 - 中间:每日产量统计 + 小说列表与进度 - 右侧:实时创作日志 --- ## 使用说明(Usage) ### 1. 新建小说计划 在“新建小说计划”卡片中填写: - 小说标题(必填) - 故事情节发展线:简要描述世界观、主线、主角目标等 - 类型:玄幻 / 科幻 / 都市 / 悬疑等 - 章节数:计划写多少章(例如 50 章) 点击“创建小说计划”后,对应记录会写入数据库,并出现在下方“小说列表与进度”中。 ### 2. 启动自动创作 有两种方式: 1. **后台调度器自动写** - 点击“开始创作”按钮 - 调度器会在后台不断挑选计划中的小说生成下一章 2. **手动推进某一本小说** - 在“小说列表与进度”中找到目标小说 - 点击“生成一章”按钮 ### 3. 查看与导出 - **查看章节正文**: - 点击“查看正文”,弹出章节查看弹窗 - 可通过下拉框选择任意已生成章节 - **导出为 Word**: - 点击“导出 Word” - 浏览器将下载整本小说的 `.docx` 文件,可以用于投稿或排版 --- ## 与 Clawbot 的对比与特点 目前市面上已有类似 Clawbot 这样的长篇小说自动生成项目。 NovelBot 在此基础上重点做了以下强化: - **更偏向“投稿实用”而不是 demo** - 支持导出 Word - 调度与统计围绕“长期写作产出”设计 - **剧情一致性更重视** - 剧情事实记忆 + 一致性审核 + 返工循环 - 尽量减少“人死复活、设定自打脸、真相二次编造”等问题 - **终章意识** - 会主动识别“最后一章”,引导模型写出完整结局,而不是无限拖剧情 - **开放共创** - 代码结构清晰,便于二次开发 - 欢迎基于 NovelBot 打造你自己的“个人写作工厂” 如果你希望把作品投向各大小说网站(起点、番茄、晋江、QQ 阅读等),NovelBot 目标是成为一个**可以真正辅助你量产稿件**的工具,而不是只能“玩玩看”的实验品。 --- ## 演示截图(Screenshots) > 以下为示意占位,你可以替换为自己实际的截图。 - 管理后台主页:小说列表、进度与每日产量