SkillAgentSearch skills...

MuMuAINovel

一款基于 AI 的智能小说创作助手,帮助你轻松创作精彩故事

Install / Use

/learn @xiamuceer-j/MuMuAINovel
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MuMuAINovel 📚✨

<div align="center">

Version Python FastAPI React License

基于 AI 的智能小说创作助手

特性快速开始配置说明项目结构

</div>
<div align="center">

💬 加入交流群

欢迎扫码加入 QQ 交流群,一起交流 AI 小说创作心得、反馈问题、获取最新动态!

<img src="frontend/public/qq.jpg" alt="QQ交流群二维码" width="300" /> </div>
<div align="center">

💖 支持项目

如果这个项目对你有帮助,欢迎通过以下方式支持开发:

☕ 请我喝杯咖啡

🌐 MuMuのAPI站点

在 MuMu の API 站点充值满 50 元及以上,也可以获得下方赞助专属权益。

🎁 赞助专属权益

| 权益 | 说明 | |------|------| | 📋 优先需求响应 | 您的功能需求和问题反馈将获得优先处理 | | 🚀 Windows一键启动 | 获取免安装 EXE 程序,双击即可使用 | | 💬 专属技术支持 | 加入赞助者内部群,获得远程协助和配置指导 |

☕ 赞助 / API 站点充值档位

| 金额 | 描述 | |------|------| | ¥5 | 🌶️ 一包辣条 | | ¥10 | 🍱 一顿拼好饭 | | ¥20 | 🧋 一杯咖啡 | | ¥50 | 🍖 一次烧烤 | | ¥99 | 🍲 一顿海底捞 |

您的支持是我持续开发的动力!🙏

</div>

✨ 特性

  • 🤖 多 AI 模型 - 支持 OpenAI、Gemini、Claude 等主流模型
  • 📝 智能向导 - AI 自动生成大纲、角色和世界观
  • 👥 角色管理 - 人物关系、组织架构可视化管理
  • 📖 章节编辑 - 支持创建、编辑、重新生成和润色
  • 🌐 世界观设定 - 构建完整的故事背景
  • 🔐 多种登录 - LinuxDO OAuth 或本地账户登录
  • 💾 PostgreSQL - 生产级数据库,多用户数据隔离
  • 🐳 Docker 部署 - 一键启动,开箱即用

📸 项目预览

<details> <summary>多图预警</summary> <div align="center">

登录界面

登录界面

登录界面

主界面

主界面

主界面(暗色)

项目管理

项目管理

项目管理

赞助我 💖

赞助我

赞助我

</div> </details>

📋 TODO List

✅ 已完成功能

  • [x] 灵感模式 - 创作灵感和点子生成
  • [x] 自定义写作风格 - 支持自定义 AI 写作风格
  • [x] 数据导入导出 - 项目数据的导入导出
  • [x] Prompt 调整界面 - 可视化编辑 Prompt 模板
  • [x] 章节字数限制 - 用户可设置生成字数
  • [x] 思维链与章节关系图谱 - 可视化章节逻辑关系
  • [x] 根据分析一键重写 - 根据分析建议重新生成
  • [x] Linux DO 自动创建账号 - OAuth 登录自动生成账号
  • [x] 职业等级体系 - 自定义职业和等级系统,支持修仙境界、魔法等级等多种体系
  • [x] 角色/组织卡片导入导出 - 单独导出角色和组织卡片,支持跨项目数据共享
  • [x] 伏笔管理 - 智能追踪剧情伏笔,提醒未回收线索,可视化伏笔时间线
  • [x] 提示词工坊 - 社区驱动的 Prompt 模板分享平台,一键导入优质提示词
  • [x] 拆书功能 - 目前呼声比较高的功能,一键拆书,给当年的ta一个圆满的结局

📝 规划中功能

......

💡 欢迎提交 Issue 或 Pull Request!

💻 硬件配置要求

最低配置(个人使用/开发环境)

| 组件 | 要求 | |------|------| | CPU | 2 核 | | 内存 | 2 GB RAM | | 存储 | 10 GB 可用空间 | | 网络 | 稳定互联网连接(用于调用 AI API) |

推荐配置(小型团队/生产环境)

| 组件 | 要求 | |------|------| | CPU | 4 核 | | 内存 | 8 GB RAM | | 存储 | 20 GB SSD | | 网络 | 稳定互联网连接 |

高并发配置(80-150 用户)

| 组件 | 要求 | |------|------| | CPU | 8 核 | | 内存 | 16 GB RAM | | 存储 | 50 GB+ SSD | | 网络 | 高带宽连接 |

📌 说明

  • Embedding 模型:约 400 MB 磁盘空间,运行时加载到内存
  • PostgreSQL:默认配置使用 256 MB shared_buffers,1 GB effective_cache_size
  • Docker 部署:建议预留额外 1-2 GB 内存给容器运行时
  • 本项目主要依赖外部 AI API(OpenAI/Claude/Gemini),不需要本地 GPU

🚀 快速开始

前置要求

  • Docker 和 Docker Compose
  • 至少一个 AI 服务的 API Key(OpenAI/Gemini/Claude)

Docker Compose 部署(推荐)

# 1. 克隆项目
git clone https://github.com/xiamuceer-j/MuMuAINovel.git
cd MuMuAINovel

# 2. 配置环境变量(必需)
cp backend/.env.example .env
# 编辑 .env 文件,填入必要配置(API Key、数据库密码等)

# 3. 确保文件准备完整
# ⚠️ 重要:确保以下文件存在
# - .env(配置文件,必需挂载到容器)
# - backend/scripts/init_postgres.sql(数据库初始化脚本)

# 4. 启动服务
docker-compose up -d

# 5. 访问应用
# 打开浏览器访问 http://localhost:8000

📌 注意事项

  1. .env 文件挂载: docker-compose.yml 会自动将 .env 挂载到容器,确保文件存在
  2. 数据库初始化: init_postgres.sql 会在首次启动时自动执行,安装必要的PostgreSQL扩展
  3. 自行构建: 如需从源码构建,请先下载 embedding 模型文件(加群获取

使用 Docker Hub 镜像(推荐新手)

# 1. 拉取最新镜像(已包含模型文件)
docker pull mumujie/mumuainovel:latest

# 2. 创建 docker-compose.yml(点击下方展开查看完整配置)
<details> <summary>📄 点击展开 docker-compose.yml 完整配置</summary>
services:
  postgres:
    image: postgres:18-alpine
    container_name: mumuainovel-postgres
    environment:
      POSTGRES_DB: ${POSTGRES_DB:-mumuai_novel}
      POSTGRES_USER: ${POSTGRES_USER:-mumuai}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-123456}
      POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
      TZ: ${TZ:-Asia/Shanghai}
    volumes:
      - postgres_data:/var/lib/postgresql
      - ./backend/scripts/init_postgres.sql:/docker-entrypoint-initdb.d/init.sql:ro
    ports:
      - "${POSTGRES_PORT:-5432}:5432"
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mumuai} -d ${POSTGRES_DB:-mumuai_novel}"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s
    networks:
      - ai-story-network
    command:
      - postgres
      - -c
      - max_connections=${POSTGRES_MAX_CONNECTIONS:-200}
      - -c
      - shared_buffers=${POSTGRES_SHARED_BUFFERS:-256MB}
      - -c
      - effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-1GB}
      - -c
      - maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB}
      - -c
      - checkpoint_completion_target=${POSTGRES_CHECKPOINT_COMPLETION_TARGET:-0.9}
      - -c
      - wal_buffers=${POSTGRES_WAL_BUFFERS:-16MB}
      - -c
      - default_statistics_target=${POSTGRES_DEFAULT_STATISTICS_TARGET:-100}
      - -c
      - random_page_cost=${POSTGRES_RANDOM_PAGE_COST:-1.1}
      - -c
      - effective_io_concurrency=${POSTGRES_EFFECTIVE_IO_CONCURRENCY:-200}
      - -c
      - work_mem=${POSTGRES_WORK_MEM:-4MB}
      - -c
      - min_wal_size=${POSTGRES_MIN_WAL_SIZE:-1GB}
      - -c
      - max_wal_size=${POSTGRES_MAX_WAL_SIZE:-4GB}

  mumuainovel:
    image: mumujie/mumuainovel:latest
    container_name: mumuainovel
    depends_on:
      postgres:
        condition: service_healthy
    ports:
      - "${APP_PORT:-8000}:8000"
    volumes:
      - ./logs:/app/logs
      - ./.env:/app/.env:ro
      - ./storage/generated_covers:/app/backend/storage/generated_covers
    environment:
      # 应用配置
      - APP_NAME=${APP_NAME:-MuMuAINovel}
      - APP_VERSION=${APP_VERSION:-1.0.0}
      - APP_HOST=${APP_HOST:-0.0.0.0}
      - APP_PORT=8000
      - DEBUG=${DEBUG:-false}
      # 数据库配置
      - DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-mumuai}:${POSTGRES_PASSWORD:-123456}@postgres:5432/${POSTGRES_DB:-mumuai_novel}
      - DB_HOST=postgres
      - DB_PORT=5432
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-123456}
      # PostgreSQL 连接池配置
      - DATABASE_POOL_SIZE=${DATABASE_POOL_SIZE:-30}
      - DATABASE_MAX_OVERFLOW=${DATABASE_MAX_OVERFLOW:-20}
      - DATABASE_POOL_TIMEOUT=${DATABASE_POOL_TIMEOUT:-60}
      - DATABASE_POOL_RECYCLE=${DATABASE_POOL_RECYCLE:-1800}
      - DATABASE_POOL_PRE_PING=${DATABASE_POOL_PRE_PING:-True}
      - DATABASE_POOL_USE_LIFO=${DATABASE_POOL_USE_LIFO:-True}
      # 代理配置(可选)
      - HTTP_PROXY=${HTTP_PROXY:-}
      - HTTPS_PROXY=${HTTPS_PROXY:-}
      - NO_PROXY=${NO_PROXY:-localhost,127.0.0.1}
      # AI 服务配置
      - OPENAI_API_KEY=${OPENAI_API_KEY:-}
      - OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1}
      - GEMINI_API_KEY=${GEMINI_API_KEY:-}
      - GEMINI_BASE_URL=${GEMINI_BASE_URL:-}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
      - ANTHROPIC_BASE_URL=${ANTHROPIC_BASE_URL:-}
      - DEFAULT_AI_PROVIDER=${DEFAULT_AI_PROVIDER:-openai}
      - DEFAULT_MODEL=${DEFAULT_MODEL:-gpt-4o-mini}
      - DEFAULT_TEMPERATURE=${DEFAULT_TEMPERATURE:-0.7}
      - DEFAULT_MAX_TOKENS=${DEFAULT_MAX_TOKENS:-32000}
      # LinuxDO OAuth 配置
      - LINUXDO_CLIENT_ID=${LINUXDO_CLIENT_ID:-11111}
      - LINUXDO_CLIENT_SECRET=${LINUXDO_CLIENT_SECRET:-11111}
      - LINUXDO_REDIRECT_URI=${LINUXDO_REDIRECT_URI:-http://localhost:8000/api/auth/linuxdo/callback}
      - FRONTEND_URL=${FRONTEND_URL:-http://localhost:8000}
      # 本地账户登录配置
      - LOCAL_AUTH_ENABLED=${LOCAL_AUTH_ENABLED:-true}
      - LOCAL_AUTH_USERNAME=${LOCAL_AUTH_USERNAME:-admin}
      - LOCAL_AUTH_PASSWORD=${LOCAL_AUTH_PASSWORD:-admin123}
      - LOCAL_AUTH_DISPLAY_NAME=${LOCAL_AUTH_DISPLAY_NAME:-本地管理员}
      # 会话配置
      - SESSION_EXPIRE_MINUTES=${SESSION_EXPIRE_MINUTES:-120}
      - SESSION_REFRESH_THRESHOLD_MINUTES=${SESSION_REFRESH_THRESHOLD_MINUTES:-30}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
    networks:
      - ai-story-network

volumes:
  postgres_data:
    driver: local

networks:
  ai-story-network:
    driver: bridge
</details>
# 3. 启动服务
docker-compose up -d

# 4. 查看日志
docker-compose logs -f

# 5. 更新到最新版本
docker-compose pull
docker-compose up -d

💡 提示: Docker Hub 镜像已包含所有依赖和模型文件,无需额外下载

本地开发 / 从源码构建

前置准备

# ⚠️ 重要:如果从源码构建,需要先下载 embedding 模型文件
# 模型文件较大(约 400MB),需放置到以下目录:
# backend/embedding/models--sentence-transformers--paraphrase-multilingual-MiniLM-L12-v2/
#
# 📥 获取方式:
# - 加入项目 QQ 群或 Linux DO 讨论区获取下载链接
# - 群号:见项目主页
# - Linux DO:https://linux.do/t/topic/1100112

后端

cd backend
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

# 配置 .env 文件
cp .env.example .env
# 编辑 .env 填入必要配置

# 启动 PostgreSQL(可使用 Docker)
docker run -d --name postgres \
  -e POSTGRES_PASSWORD=your_password \
  -e POSTGRES_DB=mumuai_novel \
  -p 5432:5432 \
  postgres:18-alpine

# 启动后端
python -m uvicorn app.main:app --host localhost --port 8000 --reload

前端

cd frontend
npm install
npm run dev  # 开发模式
npm run build  # 生产构建

⚙️ 配置说明

必需配置

创建 .env 文件:

# PostgreSQL 数据库(必需)
DATABASE_URL=postgresql+asyncpg://mumuai:your_password@postgres:5432/mumuai_novel
POSTGRES_PASSWORD=your_secure_password

# AI 服务
OPENAI_API_KEY=your_openai_key
OPENAI_BASE_URL=https://api.openai.com/v1
DEFAULT_AI_PROVIDER=openai
DEFAULT_MODEL=gpt-4o-mini

# 本地账户登录
LOCAL_AUTH_ENABLED=true
LOCAL_AUTH_

Related Skills

View on GitHub
GitHub Stars2.1k
CategoryDevelopment
Updated37m ago
Forks421

Languages

Python

Security Score

95/100

Audited on Apr 9, 2026

No findings