Skip to content

MarsQiu007/novel-flow

Repository files navigation

Novel Flow - AI驱动的小说创作系统

基于大语言模型的自动化小说创作系统,支持从大纲到成稿的全流程AI辅助创作。

✨ 特性

  • 🎯 智能大纲生成 - 自动生成小说大纲、世界观设定和人物关系
  • 📝 多Agent协作 - 13个专业Agent分工协作,确保内容质量
  • 🔄 自动化工作流 - 从大纲到章节的完整创作流程
  • 🎨 Web UI界面 - 直观的可视化操作界面
  • 🌐 局域网访问 - 支持局域网内多设备访问
  • 💾 数据持久化 - SQLite数据库存储所有创作内容
  • 🔧 灵活配置 - 支持多种大模型配置和自定义参数

🚀 快速开始

环境要求

  • Node.js 18+ 或 Bun
  • Python 3.10+
  • SQLite 3

安装依赖

# 安装前端依赖
cd frontend
bun install

# 安装后端依赖
cd ../backend
bun install

# 安装Python依赖
cd ../agents
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

配置

  1. 复制环境变量配置:
cp .env.example .env
  1. 编辑 .env 文件,配置API密钥:
# 必需:大模型API配置
ALIBABA_BAILIAN_API_KEY=your-api-key-here
ALIBABA_BAILIAN_OPENAI_ENDPOINT=https://coding.dashscope.aliyuncs.com/v1

启动服务

方式一:跨平台开发启动(推荐)

npm install
npm run dev

访问地址:

方式二:命令行后台管理

# 后台启动前后端
npm run services:start

# 查看状态
npm run services:status

# 查看日志
npm run services:logs -- all

# 网络诊断
npm run network:check

# 本地接口与代理校验
npm run verify:local

# 停止服务
npm run services:stop

方式三:手动启动

# 启动后端
cd backend
bun run src/index.ts

# 新终端启动前端
cd frontend
bun run dev

🌐 局域网访问

系统默认支持局域网访问,无需额外配置。

查看本机IP

# Linux/macOS
hostname -I

# Windows
ipconfig

从其他设备访问

使用同一局域网内的设备访问:

  • 前端:http://你的IP地址:5173
  • 后端:http://你的IP地址:3000

防火墙配置

如果无法访问,请检查防火墙:

# Linux (ufw)
sudo ufw allow 3000/tcp
sudo ufw allow 5173/tcp

# Linux (firewalld)
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --add-port=5173/tcp --permanent
sudo firewall-cmd --reload

详细的网络配置请参考 docs/network-configuration.md

📖 使用指南

创建新项目

  1. 访问前端界面(http://localhost:5173)
  2. 点击"创建新项目"
  3. 填写小说基本信息和创意构思
  4. 系统自动生成大纲、人物、章节内容

配置模型

  1. 进入"全局设置"页面
  2. 配置各个Agent使用的模型
  3. 添加自定义模型配置(API endpoint, API key等)
  4. 测试模型连接

查看进度

  • 实时WebSocket更新创作进度
  • 查看各Agent状态和质量评分
  • 支持暂停和恢复

🏗️ 架构

novel-flow/
├── frontend/          # Vue 3 + Vite前端
├── backend/           # Bun + Express后端
│   ├── routes/       # API路由
│   ├── workflow/     # 工作流引擎
│   └── services/     # 服务层
└── agents/           # Python AI Agent系统
    └── src/agents/   # 各个Agent实现

工作流程

flowchart TD
  A[用户输入 / 项目参数] --> B[大纲生成 A]
  B --> C[阵营设计 B]
  C --> D[人物设计 C]
  D --> E[卷规划 D\n产出全书卷列表]
  E --> F[当前卷章节规划 E\n按 currentVolumeNumber 规划]
  F --> G[世界刷新 F]
  G --> H[人物刷新 G]
  H --> I[正文生成 H\n按 currentVolumeNumber + currentChapterNumber 落库]
  I --> J{当前卷章节是否完成?}
  J -- 否 --> F
  J -- 是 --> K{全书章节是否完成?}
  K -- 否 --> E
  K -- 是 --> L[工作流完成 / 导出]
Loading

当前工作流采用这几个硬约束:

  • currentVolumeNumber / currentChapterNumber 始终表示当前正在写入的目标卷章
  • 章节规划结果在落库前会做编号规范化,避免缺号、重号、乱序
  • 正文承接使用结构化前情摘要,不再直接拼接上一章原文尾部
  • 卷切换只会在“当前卷章节全部完成之后”显式发生

🔧 API文档

后端API

  • POST /api/projects - 创建新项目
  • GET /api/projects/:id - 获取项目信息
  • GET /api/settings - 获取全局设置
  • PUT /api/settings - 更新设置
  • GET /api/models - 获取可用模型列表
  • POST /api/models - 添加模型配置
  • POST /api/models/:id/test - 测试模型连接
  • POST /api/filesystem/browse - 浏览目录

完整API文档请参考 docs/api.md

🛠️ 开发

开发环境设置

# 安装开发依赖
npm install

# 启动开发服务器
npm run dev

运行测试

# E2E测试
npm run test:e2e

构建生产版本

cd frontend
bun run build

📝 配置选项

环境变量

变量名 说明 默认值
HOST 服务器监听地址 0.0.0.0
PORT 后端端口 3000
DATABASE_PATH 数据库路径 ./data/novel-flow.db
CORS_ORIGIN CORS允许的来源 *
ALIBABA_BAILIAN_API_KEY 阿里百炼API密钥 -
ALIBABA_BAILIAN_OPENAI_ENDPOINT API端点 -

更多配置请参考 .env.example

🤝 贡献

欢迎提交Issue和Pull Request!

📄 许可证

MIT License

🙏 致谢

  • Vue.js - 前端框架
  • Express - 后端框架
  • LangChain - Agent框架
  • Socket.io - 实时通信

Made with ❤️ by the Novel Flow Team

About

一个按照工作流程来创建小说的工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors