墨木灵思

Version Python FastAPI React

1. 项目简介

项目概述

墨木灵思是一款基于大语言模型的智能小说创作平台,帮助作者从大纲、角色到章节一气呵成地完成创作,让 AI 成为可靠的写作搭档。

项目起源

长篇网文与原创小说创作往往面临设定繁杂、人物关系难梳理、章节衔接不连贯等问题。墨木灵思将 AI 能力融入创作全流程,把「灵感 → 大纲 → 角色 → 章节」串联为可管理的结构化工作流,降低创作门槛并提升产出效率。

项目定位

维度 说明
目标用户 网文作者、业余写作者、内容创作者、文学爱好者
适用场景 长篇连载、短篇创作、世界观搭建、同人续写、拆书仿写
部署形态 支持 Docker 一键部署,也可本地开发运行

核心价值

  • 用 AI 辅助完成大纲、角色、世界观等前期设定,缩短冷启动时间
  • 多模型灵活切换,适配不同文风与成本需求
  • 角色关系、伏笔、职业体系等结构化管理能力,保持长篇一致性
  • 多用户数据隔离,适合个人或小团队私有化部署

2. 整体架构与技术栈

系统架构

采用前后端分离架构:React 单页应用负责交互,FastAPI 提供 REST APIPostgreSQL 持久化业务数据;生产环境通过 Docker Compose 编排应用与数据库,前端构建产物由后端静态托管,统一对外暴露 HTTP 服务。

flowchart LR
  subgraph Client
    UI[React SPA]
  end
  subgraph Server
    API[FastAPI]
    AI[AI 服务层]
    DB[(PostgreSQL)]
    Vec[ChromaDB / Embedding]
  end
  UI -->|HTTP / API| API
  API --> AI
  API --> DB
  API --> Vec
  AI -->|OpenAI 兼容 API| Ext[外部 LLM]

技术栈

分类 技术 版本 / 说明
后端 Python 3.11
FastAPI 0.121.0
SQLAlchemy + Alembic 2.0.25 / 1.14.0
Uvicorn 0.38.0
前端 React 18.3.1
TypeScript + Vite
Ant Design 5.x
Zustand 5.x
数据库 PostgreSQL 18(推荐)
SQLite 可选(开发 / 轻量场景)
AI 与向量 OpenAI / Anthropic SDK 多模型接入
ChromaDB + Sentence Transformers 长期记忆与语义检索
部署 Docker + Docker Compose 一键编排
GitHub Actions 镜像构建与发布

技术选型说明

  • FastAPI:异步性能好,自带 OpenAPI 文档,适合 AI 类长耗时接口。
  • PostgreSQL:支持多用户、复杂关系与并发,满足生产级数据隔离。
  • React + Ant Design:组件丰富,适合复杂表单与可视化(关系图、时间线等)。
  • Docker Compose:降低部署成本,数据库与应用一键拉起。

3. 项目目录概览

MuMuAINovel/
├── backend/                    # 后端服务
│   ├── app/
│   │   ├── api/               # REST API 路由
│   │   ├── models/            # 数据模型
│   │   ├── services/          # 业务逻辑(含 AI 调用)
│   │   ├── middleware/        # 中间件
│   │   ├── mcp/               # MCP 插件集成
│   │   └── main.py            # 应用入口
│   ├── alembic/               # 数据库迁移
│   ├── scripts/               # 初始化与运维脚本
│   ├── static/                # 前端构建产物(生产)
│   └── requirements.txt
├── frontend/                   # 前端应用
│   ├── src/
│   │   ├── pages/             # 页面
│   │   ├── components/        # 通用组件
│   │   ├── services/          # API 封装
│   │   ├── store/             # 状态管理
│   │   └── theme/             # 主题配置
│   └── package.json
├── images/                     # 文档与截图资源
├── storage/                    # 用户生成资源(如封面)
├── logs/                       # 运行日志
├── docker-compose.yml          # 容器编排
├── Dockerfile                  # 镜像构建
└── README.md
目录 作用
backend/app/api/ 项目、章节、角色、提示词等业务接口
backend/app/services/ AI 生成、润色、向量记忆等核心逻辑
frontend/src/pages/ 书架、项目详情、设置、提示词模板等页面
backend/alembic/ PostgreSQL / SQLite schema 迁移
backend/scripts/ 数据库初始化、入口脚本

4. 核心业务功能

  • 智能创作向导:根据题材与设定,AI 自动生成大纲、角色档案与世界观框架。
  • 多 AI 模型支持:接入 OpenAI、Claude、Gemini 等,支持自定义 Base URL(兼容中转 API)。
  • 项目管理与书架:多项目并行,支持导入导出,便于备份与迁移。
  • 角色与组织管理:人物卡片、关系图谱、组织架构可视化编辑。
  • 职业等级体系:可自定义修仙境界、魔法等级等成长体系。
  • 章节创作与润色:章节生成、续写、重写、字数控制及 diff 对比。
  • 世界观与大纲:结构化维护故事背景与情节脉络。
  • 伏笔管理:追踪未回收伏笔,可视化时间线提醒。
  • 灵感模式:快速生成创作点子与情节灵感。
  • 提示词工坊:浏览、导入社区 Prompt 模板,可视化编辑自有模板。
  • 拆书功能:分析既有作品结构,辅助仿写与续写。
  • 封面生成:基于项目信息 AI 生成封面图。
  • 长期记忆:基于 Embedding 的语义记忆,保持跨章节一致性。
  • 用户与认证:本地账户、邮箱验证、LinuxDO OAuth;多用户数据隔离。
  • 系统设置:SMTP、AI 密钥、主题等可在线配置。

5. 实际应用场景示例

适用行业与领域

  • 网络文学与自媒体连载
  • 游戏、动漫、影视衍生文案
  • 教育培训中的创意写作练习
  • 个人 IP 与世界观孵化

典型场景

场景一:新人作者快速开书
输入题材与基调后,由向导生成大纲与主要角色,再逐章扩写;适合从零起步、需要结构指引的作者。

场景二:长篇连载一致性维护
在数百章规模下,通过角色关系图、伏笔管理与向量记忆,减少人设崩坏与情节穿帮。

场景三:拆书仿写与风格学习
导入参考作品或章节,分析结构后结合自身设定续写,用于练笔或同人向创作。


6. 帮助解决的核心问题

  • 创作冷启动难:自动生成大纲、角色与世界观,减少空白页焦虑。
  • 设定易混乱:关系图、职业体系、伏笔追踪让长篇设定可检索、可维护。
  • AI 调用分散:统一配置多模型与 Prompt,降低切换成本。
  • 协作与部署复杂:Docker 私有化部署,数据留在自有环境。
  • 章节质量不稳定:润色、重写、分析建议一键应用,提升成稿效率。
  • 提示词难以沉淀:模板工坊与可视化编辑,复用优质 Prompt。

7. 快速开始

环境要求

方式 要求
Docker 部署(推荐) Docker 20.10+、Docker Compose 2.0+;至少一个 LLM API Key
本地开发 Python 3.11、Node.js 18+、PostgreSQL 18(或 SQLite);稳定网络(调用外部 AI API)

硬件建议(个人使用)2 核 CPU、2 GB 内存、10 GB 磁盘;生产或小团队建议 4 核 / 8 GB 内存。项目依赖外部 AI API,无需本地 GPU。

安装步骤(Docker

# 1. 获取项目代码
git clone <你的仓库地址>
cd MuMuAINovel

# 2. 配置环境变量
cp backend/.env.example .env
# 编辑 .env:至少配置 AI API Key、数据库密码等

# 3. 确认必要文件存在
# - .env
# - backend/scripts/init_postgres.sql

运行步骤

# 启动全部服务
docker compose up -d

# 查看状态与日志
docker compose ps
docker compose logs -f

访问地址

服务 默认地址
Web 应用 http://localhost:8000
API 文档(Swagger http://localhost:8000/docs
API 文档(ReDoc http://localhost:8000/redoc
PostgreSQL localhost:5432(容器内通过服务名 postgres 访问)

若修改 .envAPP_PORT(例如 10003),访问地址为 http://localhost:10003

默认账号

.env 中启用本地登录时,默认配置示例:

默认值
用户名 admin
密码 admin123

请在生产环境中立即修改默认密码。

本地开发(可选)

后端

cd backend
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 配置 DATABASE_URL 与 AI Key 后启动
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

前端

cd frontend
npm install
npm run dev

生产构建:npm run build,产物由后端 backend/static 托管。

必需配置示例

# 数据库(Docker 场景由 compose 注入,本地需自行填写)
POSTGRES_PASSWORD=your_secure_password

# AI 服务(至少配置一项)
OPENAI_API_KEY=your_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

常见问题

问题 解决方案
启动后无法访问 检查 APP_PORT 映射与防火墙;docker compose ps 确认容器健康
登录后 Cookie 未保存 HTTP 部署时将 SESSION_COOKIE_SECURE=false 写入 .env 并重启
AI 调用失败 核对 API Key、Base URL 及网络代理(HTTP_PROXY / HTTPS_PROXY
数据库连接失败 确认 PostgreSQL 容器已 healthy;检查 DATABASE_URL 用户名密码
自建镜像缺少 Embedding 使用官方镜像或按文档将模型放入 backend/embedding/ 目录

8. 运行示例截图

image-20260518142402652

image-20260518142411086

image-20260518142620791

image-20260518142641345

image-20260518143108652

image-20260518143113951

image-20260518143117651

image-20260518143121175

image-20260518143125197

image-20260518143134898

S
Description
No description provided
Readme 14 MiB
Languages
Python 60.1%
TypeScript 38.8%
Shell 0.5%
CSS 0.4%