Skip to content

Hurricane0698/novelwriter

Repository files navigation

🔥 从全盘失控到精准拿捏,真正属于人类作家的长篇小说 AI 引擎 🔥

让代码死磕世界观设定,让 AI 释放创作欲,让你——永远掌握最终决定权。

一个专为长篇小说创作 / 续写打造的超级协作平台。 它绝不止于"续写下一段",而是用底层严密运转的世界模型(实体、关系、体系)与隐形的认知逻辑工作流,让你的世界观固若金汤。

One Click Install GHCR Image Self Host BYOK First License

Stars FastAPI React 19

痛点与破局:为什么你总觉得 AI 续写“差点意思”?

市面上的写作工具总在吹嘘“一键生成百万字”。但作为一个真正的网文作者或长篇创作者,你一定经历过这些令人崩溃的时刻

  • 设定崩塌:写到第二十章,主角突然忘了自己的底牌,甚至搞错了反派的名字。
  • 千人一面:AI 写出来的配角说话全是一个味儿,缺乏灵魂。
  • 越写越懵:为了让 AI 懂前面的剧情,你不得不每天都在“给大模型写小传”。
  • 丧失主权:成了 AI 的“打字员”,看着它无脑狂奔,却不知道怎么把它拽回你构思的轨道。

长篇小说的核心壁垒,从来不是“码字速度”,而是“世界观的一致性与故事逻辑”。

NovelWriter (NovWr) 为此而生。我们直接摒弃了“把几十万字硬塞给模型赌运气”的粗暴做法。它不是来“替你写小说”的,而是为你打造一个全知全能的随身副手(Copilot):帮你精准记住每一重人物羁绊、体系法则,让你能将全部心力倾注在最核心的剧情激荡中!



NovWr Studio 创作工作台
▲ Studio 创作工作台实拍 — 左栏章节导航 · 中央沉浸式阅读 · 右侧简洁辅助区与研究入口


🚀 核心杀手锏:不止是生成,更是“世界治理”

1. 🌍 永不崩塌的世界架构引擎

丢掉那些无意义的超大上下文拼接!NovWr 在底层构建了一套动态生长的实体关系网。 每次提笔,系统会自动精准提取此时此刻最需要的设定片段(出场人物、当地势力、当前境界)注入给 AI。告别设定漂移,角色智力永远在线。

2. ⚔️ 双剑合璧:Studio 挥洒创意,Atlas 掌控法则

长篇创作是感性与理性的交舞,我们为你准备了两个极尽优雅的操作台:

  • Studio(创作现场):最沉浸的写作前线。秒出多版本草稿,同屏极速穿插比对,捕捉最绝妙的灵感火花。
  • Atlas(世界图谱):上帝视角的设定指挥中心。结构化管理万千实体与羁绊,随时审查设定冲突,一键降维打击“伏笔漏洞”。

3. 🛡️ Absolute Control: 只读不写的克制护卫

Novel Copilot 拒绝越俎代庖。它遵循极其克制的「Find -> Open -> Read」认知流: 它像最资深的网文责编,只在你需要时去浩如烟海的库中翻阅、归纳、呈递建议卡片。是否采纳、往哪修改,最终的拍板权,百分百握在你的手里。

4. 🔒 BYOK & 极致隐私:你的心血,神圣不可侵犯

小说是作者的命脉,数据安全绝不允许妥协:

  • 全容器化自部署(Self-Host 优先):一键 Docker 起飞,数据永远留在你的硬盘里或私有服务器上。
  • 自由引擎插拔:OpenAI、Gemini、DeepSeek,或是你自己的本地微调模型……只要接口兼容,皆可为你所用!

⚡ 终极功能矩阵

⚡ 硬核模块 🎯 带来的颠覆性体验
World Model (世界模型) 抛弃乱糟糟的备忘录,实体/关系/体系统一建模,将厚重的设定化为精细的知识网。
多重时空平行生成 输入一条指令,吐出 N 种走向。快速对比试错,挑选最戳中读者的那一种可能。
设定萃取逆向工程 丢入已有设定集或正文,AI 会自动反向提取并建立你的世界模型,冷启动如丝般顺滑!
关系热推演 聪明地感知上下文,根据当前章节智能加载该出场的人与物,减少记忆负担。
Atlas 治理面板 可视化管理成百上千的设定项,修复逻辑漏洞比改 Bug 更有成就感。
Copilot 渐进式启发 摆脱呆板的对话流,基于场景主动给出“草稿检查”与“灵感补全”卡片。
全局设定预检 API 健康度、流式输出、JSON模式兼容预检,将报错拦截在灵感迸发之前。

🗺️ 典型大师极速流

  1. 创世:在 Library 建个新世界,或是拿内置的《西游记》示例先练练手。
  2. 基建:用 “从设定集生成”“从章节提取” 快速搭起主角的小团伙和初期世界观。
  3. 推演:切到 Studio,敲下下集预告,让 AI 飞速跑出几个版本的续写草稿。
  4. 决策:选一个底子最好的,稍作笔削,拍板定稿。
  5. 布道:回到 Atlas,把新出场的神器和反派大头目沉淀到关系网里。
  6. 循环:灵感断层?召唤 Copilot 获取破局建议。

🎯 谁最需要它?

  • 👉 正在连载长篇网文 / 轻小说 / 史诗奇幻 / 同人,手握宏大世界观的执剑人。
  • 👉 觉得“大模型写得是挺好,就是老忘事,得天天当保姆”的创作者。
  • 👉 坚信 AI 只是工具,灵魂必须由自己主导 的纯粹作家。
  • 👉 极其看重隐私,拒绝把千万字心血上传给不知名 SaaS 平台的极客。

如果你想要的是个“敲个书名就能自动水几百万字”的垃圾制造机,请关掉页面。 但如果你渴望的是一个为你扫清设定障碍、维持惊人一致性、拉满创作效能的终极武器,欢迎入伙。


🚀 快速开始 (Quick Start)

一键安装(推荐)

需要本机已安装 Docker;不需要 Git

curl -fsSL https://raw.githubusercontent.com/Hurricane0698/novelwriter/master/install.sh | bash

安装脚本会自动:

  • 安装 uv(若本机尚未安装)
  • 安装 novwr CLI
  • 初始化默认目录 ~/.novwr
  • 拉取并启动官方 Docker 镜像

常用命令:

novwr init
novwr run
novwr doctor
novwr upgrade
novwr uninstall

默认安装目录为 ~/.novwr。如果只是想用,看到这里就够了

备选路径:Docker(熟悉 Docker 的用户)

git clone https://github.com/Hurricane0698/novelwriter.git
cd novelwriter
cp .env.example .env
# 编辑 .env,填入您的 LLM API 配置
docker compose up -d

部署完成后,通过浏览器访问:

http://localhost:8000

如何选

  • 绝大多数用户:选上面的“一键安装”
  • 你已经熟悉 Docker / 想手动控制目录与 compose:选“手动 Docker”
  • 你要二次开发:看下面的“本地开发”

Selfhost 说明

  • 运行模式:默认以 selfhost 模式启动,前后端已集成。为了安全起见,默认仅监听 127.0.0.1:8000
  • 初始化:首次启动时,系统会自动创建默认管理员账号,并内置《西游记》示例项目以供试用。
  • 必要条件:需准备可用的大模型 API Key(兼容 OpenAI 接口标准)。
  • 兼容性检查:可在设置页面使用“测试连接”功能,验证 API 连通性、流式响应及 JSON Mode 支持。
  • 官方镜像ghcr.io/hurricane0698/novelwriter:latest

🛠️ 本地开发 (Development)

如需进行二次开发,推荐使用 uv 管理 Python 环境。

后端 (Backend)

scripts/setup_python_env.sh
cp .env.example .env
# 编辑 .env
scripts/uv_run.sh uvicorn app.main:app --reload --port 8000

项目使用 pyproject.toml + uv.lock + repo-local .venv 作为唯一 Python 依赖真相源,默认 Python 版本见 .python-version

运行后端单元测试:

scripts/uv_run.sh pytest tests/

前端 (Frontend)

cd web
npm install
npm run dev

前端开发服务器运行在:http://localhost:5173


⚙️ 环境变量配置

变量名 是否必填 说明
OPENAI_API_KEY LLM API 密钥
OPENAI_BASE_URL API 请求地址(如使用代理或中转服务)
OPENAI_MODEL 默认使用的模型 ID
JWT_SECRET_KEY 生产必填 用于身份验证的 JWT 签名密钥
DATABASE_URL 数据库连接地址,默认使用 SQLite

更多详细配置请参考 .env.example


🧬 技术栈 (Tech Stack)

维度 技术选型
后端 FastAPI · SQLAlchemy · SQLite / PostgreSQL
前端 React 19 · TypeScript · Tailwind CSS · React Query
AI 集成 OpenAI SDK / Compatible API
基础设施 Docker · Docker Compose

📂 项目结构 (Project Structure)

app/              # FastAPI 后端核心代码
  api/            # 路由与接口定义
  core/           # 核心业务逻辑(生成引擎、上下文构建)
  models.py       # 数据库模型 (SQLAlchemy)
  config.py       # 配置管理
web/              # React 前端代码
  src/pages/      # 页面组件
  src/components/ # 通用 UI 组件
data/             # 预置数据与资源文件
tests/            # 后端测试用例
scripts/          # 开发维护工具脚本

🌍 公开仓库说明

本项目为私有仓库的稳定版发布分支,主要用于功能发布与社区反馈。


🤝 反馈与协作

  • 情报提交:请携带版本号、部署模式、使用的模型供应商、清晰的复现路径及错误日志/截图。
  • 功能建议:欢迎描述您的实际创作场景与当前的具体痛点,以便我们评估新功能的价值。
  • PR 提交:常规修复欢迎直接提交 PR。重大架构改动建议先通过 Issue 进行对齐。

如果您觉得本项目对您的创作有帮助,欢迎点个 Star ⭐。每一份支持都是我们持续迭代的动力!


⚖️ 开源协议

本项目采用 AGPLv3 开源协议。

🔗 友情链接

Linux.do

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors