基于大语言模型的自动化小说创作系统,支持从大纲到成稿的全流程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- 复制环境变量配置:
cp .env.example .env- 编辑
.env文件,配置API密钥:
# 必需:大模型API配置
ALIBABA_BAILIAN_API_KEY=your-api-key-here
ALIBABA_BAILIAN_OPENAI_ENDPOINT=https://coding.dashscope.aliyuncs.com/v1npm 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系统默认支持局域网访问,无需额外配置。
# 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
- 访问前端界面(http://localhost:5173)
- 点击"创建新项目"
- 填写小说基本信息和创意构思
- 系统自动生成大纲、人物、章节内容
- 进入"全局设置"页面
- 配置各个Agent使用的模型
- 添加自定义模型配置(API endpoint, API key等)
- 测试模型连接
- 实时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[工作流完成 / 导出]
当前工作流采用这几个硬约束:
currentVolumeNumber/currentChapterNumber始终表示当前正在写入的目标卷章- 章节规划结果在落库前会做编号规范化,避免缺号、重号、乱序
- 正文承接使用结构化前情摘要,不再直接拼接上一章原文尾部
- 卷切换只会在“当前卷章节全部完成之后”显式发生
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:e2ecd 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