用 MuMuAINovel 把 AI 变成你的私人小说工作室:从 0 到 1 的完整落地笔记

核心问题:如何在不写一行 Prompt 的情况下,让 AI 帮你完成世界观、角色、大纲、章节甚至润色的全流程?
一句话答案:把 MuMuAINovel 跑在 Docker 里,填好 API Key,跟着向导点下一步即可——10 分钟后你就能在浏览器里“拖拽式”写小说。


本文欲回答的核心问题

  1. MuMuAINovel 到底是什么?能替我干什么?
  2. 最低成本的跑起来的路径是哪几步?
  3. 生产环境怎样才稳、快、不丢数据?
  4. 真实场景下,向导、角色库、章节编辑三件套的连贯用法长什么样?
  5. 我踩过的坑和复盘——哪些按钮别乱点、哪些环境变量别漏配?

1 产品速描:把“AI 写小说”做成 IDE

1.1 一句话定位

MuMuAINovel = 小说版 Figma + 可本地部署的 Notion + 多模型 AI 后端。
它把“灵感 → 世界观 → 角色 → 大纲 → 章节 → 润色”做成一条可回滚的流水线,所有中间产物都是结构化数据,而非散落在聊天记录里的 Prompt。

1.2 能力矩阵速览

模块 关键动作 默认模型 输出格式 备注
智能向导 5 步表单 → 自动生成大纲/角色/世界观 gpt-4o-mini JSON + Markdown 可回退重新生成
角色管理 增删改、关系图、组织树 同上 结构化字段 支持冲突检测 TODO
章节编辑 创建、重写、润色、继续写 多模型切换 Markdown 实时预览 字数限制后续放开
登录 LinuxDO OAuth + 本地账户 JWT 可多用户隔离
数据 SQLite 单文件 本地持久化 一键备份即拷贝 db

2 10 分钟跑起来:Docker 路径最短闭环

核心问题:我没装 Python/Node,能不能一把梭?
答案:能,只要 Docker 和一把 API Key。

2.1 前置清单

  • Docker ≥ 20.10
  • 任一 AI Key:OpenAI / Gemini / Anthropic(Gemini 免费送 60 QPM,适合白嫖)
  • 2 核 4 G 即可,生成长章节时 CPU 会短暂飙高,内存峰值约 800 MB。

2.2 三步命令

# 1 拉取官方镜像
docker pull mumujie/mumuainovel:latest

# 2 准备环境变量
cat > .env <<EOF
OPENAI_API_KEY=sk-YourKey
DEFAULT_AI_PROVIDER=openai
DEFAULT_MODEL=gpt-4o-mini
LOCAL_AUTH_USERNAME=admin
LOCAL_AUTH_PASSWORD=MakeItStrong
EOF

# 3 启动
docker run -d --name mumu \
  -p 8800:8000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/.env:/app/.env:ro \
  --restart unless-stopped \
  mumujie/mumuainovel:latest

浏览器打开 http://localhost:8800,用刚设置的账号登录即完成。

2.3 作者反思:为什么我建议先用 Docker 而不是源码?

  • 源码开发模式需要 Python 3.11 + Node 18,win/mac 各自踩坑(尤其 Windows 的路径长度限制)。
  • 官方镜像已经打包了前端 dist,后端静态挂载,一条龙省掉 npm run build 的 3 分钟。
  • 一旦数据目录 data/ 被挂载,后续升级镜像只要 docker pull && docker restart,SQLite 文件纹丝不动——真正做到“升级不搬家”。

3 生产环境加固:把玩具变成工具

核心问题:我要放到云服务器给团队用,怎样才稳?
答案:HTTPS + 资源限制 + 定期备份,三步即可。

3.1 Nginx 反向代理样板

server {
    listen 443 ssl http2;
    server_name novel.example.com;
    ssl_certificate /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/key.pem;

    location / {
        proxy_pass http://127.0.0.1:8800;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        # SSE 长连接必须关缓冲
        proxy_buffering off;
    }
}

记得把 .env 里的 FRONTEND_URL 改成 https://novel.example.com,否则 OAuth 回调会掉链子。

3.2 Docker Compose 资源 ceiling

deploy:
  resources:
    limits:
      cpus: '2'
      memory: 2G
    reservations:
      cpus: '0.5'
      memory: 512M

实测 2 核能把 4k 字章节生成时间从 90 s 压到 35 s;再高的核数收益递减,因为 SQLite 写入单线程。

3.3 备份策略

  • 数据库:每天 04:00 cp data/app.db backups/app-$(date +%F).db
  • 镜像:升级前 docker tag mumuainovel:latest mumuainovel:backup-$(date +%F)
  • 恢复:把 db 文件扔回挂载目录,重启容器即可。

4 一条龙实战:从闪念到 10 章正文

核心问题:向导生成的内容会不会太“模板”?
答案:把向导当成“粗筛”,再用章节编辑的“重写/继续写”按钮做精调,就能保留 AI 效率同时注入个人风格。

4.1 场景设定

  • 类型:赛博朋克 + 东方侠义
  • 背景:2047 年粤港澳湾区,脑机接口黑市横行
  • 需求:10 章中篇,主角是退役“记忆杀手”,人物关系复杂。

4.2 向导 5 步表单拆解

  1. 基础信息:标题《剑与防火墙》,字数目标 8 万。
  2. 世界规则:AI 先给出“高压云城”“记忆税”两个关键词;我手动补充“粤语粗口”作为语言风格标记。
  3. 角色种子:AI 抛出 3 主 4 配;我把反派组织“句芒”改成“巨网”,更贴合赛博感。
  4. 大纲节点:自动拆 12 章,我删掉 2 章度假副本,保留 10 章。
  5. 生成确认:点击“创建项目”,后端流式返回,3 分钟完毕。

4.3 角色库二次加工

  • 把“人物关系图”导出 PNG,贴到 Scrivener 做参考。
  • 在“组织树”里给“巨网”再加一层“灰市拍卖”子部门,为后续章节埋伏笔。
  • 利用“备注”字段写入角色口音标签,例如“阿鬼:句尾啦/嘛/咧”,章节生成时模型自动捕捉。

4.4 章节编辑循环

  1. 先让 AI 一次性生成第 1 章草稿(约 3k 字)。
  2. 用“继续写”补到 5k 字,发现节奏拖沓,点击“重写”并在弹出框输入“削减 30% 旁白,增加动作线”。
  3. 润色阶段切换模型到 claude-3-sonnet,温度 0.6,产出更收敛;对比两个版本后挑段落合并。
  4. 把定稿导出 Markdown,扔回本地 Git 仓库,diff 清晰可见每次修改——这是纯 Prompt 聊天无法做到的版本管理。

4.5 作者反思:别把“重写”当万能

  • 连续重写 5 次后,文本会出现“ AI 腔”叠加,表现为重复比喻;我的止损法是:重写 2 次仍不满意就手动改,而不是无限点按钮。
  • 粤语对白经多次重写会被“普通话化”,解决方式是在角色备注里用“对白语言=粤语”锁定,并在润色指令里显式写“保持粤语俚语”。

5 常见踩坑与快速排雷

现象 根因 检查项
页面空白 /api/docs 也 404 容器没把静态文件挂进去 确认镜像 tag 是 latest,且端口映射正确
生成章节报 500 AI Key 超额或 Base URL 被墙 看 logs 是否 openai.RateLimitError;换 Gemini 测一下
登录跳转失败 FRONTEND_URL 与浏览器地址不一致 .env 里协议、端口、域名全写全
数据没了 忘记挂 volume docker inspect mumu 看 Mounts 是否指向本地 data

6 路线图里的彩蛋:未来你会得到什么

输入文件列出的 TODO 最打动我的是“设定追溯与矛盾检测”。
一旦实现,相当于给小说加了一个 Git-blame:

  • 鼠标悬停在“记忆税”一词,自动弹出哪一章首次定义;
  • 若第 7 章把税率写成 15 % 而第 3 章是 20 %,系统标红并给出解决建议。
    这对长篇连载简直是救命功能——我维护过 30 万字手稿,吃书改到怀疑人生。期待作者早日合并 PR。

7 实用摘要 / 操作清单

  1. 先跑 Docker:拉镜像 → 写 .envdocker run → 登录成功。
  2. 生产再加 Nginx HTTPS、资源限制、定时备份。
  3. 创作流程:向导粗生成 → 角色库微调 → 章节“生成→继续写→重写→润色”循环 → Git 存档。
  4. 重写别超过 2 次,防止 AI 腔叠加。
  5. 升级前务必 docker tag 备份镜像,数据文件单独复制一份。

8 One-page Summary

MuMuAINovel 把多模型 AI 封装成一条“小说生产线”:SQLite 存数据、FastAPI 给接口、React 提供向导化交互;Docker 一把拉起,5 分钟出大纲,10 分钟出章节。
核心套路是“先粗后精”——用向导批量生成骨架,再用章节编辑的“重写/继续写”按钮精调。
生产环境只要 HTTPS + 资源限制 + 每日备份,就能把玩具变工具。
未来矛盾检测与设定追溯上线后,长篇吃书问题有望被自动化消灭。


9 可检索 FAQ

  1. MuMuAINovel 支持哪些 AI 模型?
    OpenAI、Gemini、Anthropic,且可用任意 OpenAI 格式中转。

  2. 可以把数据迁到 MySQL 吗?
    目前仅支持 SQLite,多用户隔离靠表级字段,官方暂无 MySQL 迁移脚本。

  3. 章节字数上限多少?
    默认 max_tokens 32 k,约 2 万中文字;后续版本会开放自定义。

  4. Gemini 免费额度够写多长?
    Gemini 60 QPM × 32 k ≈ 每天 115 万字,普通人日更 1 万完全够用。

  5. 升级镜像会丢数据吗?
    只要挂载了 ./data,SQLite 文件在宿主机,升级无损。

  6. 能否离线运行?
    不行,AI 请求必须联网;本地模型需改 ai_service.py 自行接入。

  7. 同一章节多人协作会冲突吗?
    当前无实时协同锁,后保存者覆盖前者;建议分章节认领。

  8. Windows 老报路径过长怎么办?
    用 WSL2 + Docker Desktop,或者直接把项目放在 C:\novel\ 缩短路径。