Skip to content

xiamuceer-j/MuMuAINovel

Repository files navigation

MuMuAINovel 📚✨

Version Python FastAPI React License

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

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


💖 支持项目

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

☕ 请我喝杯咖啡

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


✨ 特性

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

📸 项目预览

多图预警

登录界面

登录界面

主界面

主界面

项目管理

项目管理

赞助我 💖

赞助我

📋 TODO List

✅ 已完成功能

  • 灵感模式 - 创作灵感和点子生成
  • 自定义写作风格 - 支持自定义 AI 写作风格
  • 数据导入导出 - 项目数据的导入导出
  • Prompt 调整界面 - 可视化编辑 Prompt 模板
  • 章节字数限制 - 用户可设置生成字数
  • 思维链与章节关系图谱 - 可视化章节逻辑关系
  • 根据分析一键重写 - 根据分析建议重新生成
  • Linux DO 自动创建账号 - OAuth 登录自动生成账号
  • 职业等级体系 - 自定义职业和等级系统,支持修仙境界、魔法等级等多种体系

📝 规划中功能

  • 角色/组织卡片导入导出 - 单独导出角色和组织卡片,支持跨项目数据共享
  • 伏笔管理 - 智能追踪剧情伏笔,提醒未回收线索,可视化伏笔时间线
  • 提示词工坊 - 社区驱动的 Prompt 模板分享平台,一键导入优质提示词

💡 欢迎提交 Issue 或 Pull Request!

🚀 快速开始

前置要求

  • 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. 配置 .env 文件
cp backend/.env.example .env
# 编辑 .env 填入配置

# 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_USERNAME=admin
LOCAL_AUTH_PASSWORD=your_password

可选配置

# LinuxDO OAuth
LINUXDO_CLIENT_ID=your_client_id
LINUXDO_CLIENT_SECRET=your_client_secret
LINUXDO_REDIRECT_URI=http://localhost:8000/api/auth/callback

# PostgreSQL 连接池(高并发优化)
DATABASE_POOL_SIZE=30
DATABASE_MAX_OVERFLOW=20

中转 API 配置

支持所有 OpenAI 兼容格式的中转服务:

# New API 示例
OPENAI_API_KEY=sk-xxxxxxxx
OPENAI_BASE_URL=https://api.new-api.com/v1

# 其他中转服务
OPENAI_BASE_URL=https://your-proxy-service.com/v1

🐳 Docker 部署详情

服务架构

  • postgres: PostgreSQL 18 数据库

    • 端口: 5432
    • 数据持久化: postgres_data volume
    • 初始化脚本: backend/scripts/init_postgres.sql(自动挂载)
    • 优化配置: 支持 80-150 并发用户
  • mumuainovel: 主应用服务

    • 端口: 8000
    • 日志目录: ./logs
    • 配置挂载: .env 文件
    • 自动等待数据库就绪
    • 健康检查: 每 30 秒检测一次

重要文件说明

文件 说明 是否必需
.env 环境配置(API Key、数据库密码等) ✅ 必需
docker-compose.yml 服务编排配置 ✅ 必需
backend/scripts/init_postgres.sql PostgreSQL 扩展安装脚本 ✅ 自动挂载
backend/embedding/models--*/ Embedding 模型文件 ⚠️ 自建需要

注意: 使用 Docker Hub 镜像时,模型文件已包含在镜像中,无需额外下载

常用命令

# 启动服务
docker-compose up -d

# 查看状态
docker-compose ps

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

# 重启服务
docker-compose restart

# 查看资源使用
docker stats

数据持久化

  • ./postgres_data - PostgreSQL 数据库文件
  • ./logs - 应用日志文件

端口配置

修改 docker-compose.yml 中的端口映射:

ports:
  - "8800:8000"  # 宿主机:容器

📁 项目结构

MuMuAINovel/
├── backend/                 # 后端服务
│   ├── app/
│   │   ├── api/            # API 路由
│   │   ├── models/         # 数据模型
│   │   ├── services/       # 业务逻辑
│   │   ├── middleware/     # 中间件
│   │   ├── database.py     # 数据库连接
│   │   └── main.py         # 应用入口
│   ├── scripts/            # 工具脚本
│   └── requirements.txt    # Python 依赖
├── frontend/               # 前端应用
│   ├── src/
│   │   ├── pages/         # 页面组件
│   │   ├── components/    # 通用组件
│   │   ├── services/      # API 服务
│   │   └── store/         # 状态管理
│   └── package.json
├── docker-compose.yml      # Docker Compose 配置
├── Dockerfile             # Docker 镜像构建
└── README.md

🛠️ 技术栈

后端: FastAPI • PostgreSQL • SQLAlchemy • OpenAI/Claude/Gemini SDK

前端: React 18 • TypeScript • Ant Design • Zustand • Vite

📖 使用指南

  1. 登录系统 - 使用本地账户或 LinuxDO 账户
  2. 创建项目 - 选择"使用向导创建"
  3. AI 生成 - 输入基本信息,AI 自动生成大纲和角色
  4. 编辑完善 - 管理角色关系,生成和编辑章节

API 文档

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

贡献者

感谢所有为本项目做出贡献的开发者!

📝 许可证

本项目采用 GNU General Public License v3.0

GPL v3 意味着:

  • ✅ 可自由使用、修改和分发
  • ✅ 可用于商业目的
  • 📝 必须开源修改版本
  • 📝 必须保留原作者版权
  • 📝 衍生作品必须使用 GPL v3 协议

🙏 致谢

📧 联系方式


如果这个项目对你有帮助,请给个 ⭐️ Star!

Made with ❤️

Star History

Star History Chart

History

Alt

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published