业务场景
随着网络文学、剧本创作、短篇故事、互动叙事和 IP 内容生产需求不断增长,创作者在构思、设定、写作、修改和整理作品时往往会面临以下问题:
创作前期需要反复整理故事背景、人物关系、世界观规则和章节大纲,信息分散且维护成本高。
长篇小说创作周期较长,容易出现前后设定不一致、章节衔接不顺、人物性格漂移等问题。
单纯使用通用 AI 对话工具生成内容时,项目资料无法系统沉淀,生成结果也难以直接回写到章节、角色和设定库中。
创作者需要在构思、生成、编辑、导出之间频繁切换工具,影响创作效率。
本项目面向小说作者、网文创作者、剧本策划、内容运营人员和 AI 写作学习者,提供一个本地化的 AI 小说创作工作台。用户可以围绕一个小说项目集中管理故事简介、章节、角色、世界观设定,并通过 AI 辅助生成大纲、正文、角色设定和世界观内容,最终导出为常见文本或电子书格式。
典型使用场景包括:
新书立项 用户创建小说项目,录入题材、风格、目标字数、故事简介和初始大纲,为后续创作建立统一资料库。
长篇小说持续创作 用户按章节维护正文和章节大纲,系统自动统计字数,并支持 AI 对单章内容进行生成、扩写和改写。
角色与世界观沉淀 用户将角色设定、人物背景、能力体系、社会结构、历史文化等资料集中管理,减少设定遗忘和前后矛盾。
AI 辅助创作 用户基于已有项目上下文调用 AI,生成整部小说思路、章节大纲、单章正文、角色卡和世界观设定,并通过流式输出实时查看生成过程。
作品整理与交付 创作完成后,用户可以将项目内容导出为 TXT、Markdown 或 EPUB,用于阅读、备份、投稿或继续排版。
功能介绍
1. 小说项目管理
系统支持创建、查看、编辑和删除小说项目。每个项目包含标题、题材、写作风格、目标字数、项目状态、故事简介、故事大纲等基础信息。
项目列表会展示章节数量、总字数、角色数量、更新时间等关键指标,方便用户快速了解每部作品的创作进度。
2. 小说概览编辑
项目详情页提供概览编辑能力,用户可以维护小说的核心信息,包括:
小说标题
题材类型
写作风格
目标字数
创作状态
故事简介
故事大纲
前端支持自动保存,用户输入停止一段时间后自动调用后端接口写入数据库,降低手动保存成本。
3. 章节管理
章节模块支持完整的章节创作流程:
新增章节
编辑章节标题
编辑章节大纲
编辑章节正文
自动统计章节字数
手动保存和自动保存
删除章节
调整章节顺序
AI 生成单章正文
AI 扩写已有章节
AI 按要求改写章节
在 AI 生成章节时,系统会结合项目设定、角色资料、世界观资料以及上一章内容,提升章节之间的连贯性。
4. 角色管理
角色模块用于维护小说中的人物设定,支持录入和编辑:
角色姓名
角色类型
性别
年龄
性格特点
外貌描写
背景经历
能力设定
人物关系
备注信息
系统还支持 AI 生成角色设定。用户可以输入角色提示和角色类型,由 AI 生成完整角色描述,再将结果加入项目资料中。
5. 世界观管理
世界观模块用于沉淀小说背景设定,支持按类别管理内容。当前包含以下类别:
地理环境
历史背景
文化风俗
魔法体系
科技设定
社会结构
规则法则
用户可以新增、编辑、筛选和删除世界观设定,也可以通过 AI 根据项目题材和用户提示生成对应类别的设定内容。
6. AI 创作助手
AI 创作助手是系统的核心能力之一,支持以下生成任务:
生成整部小说方案
生成章节大纲
生成单章正文
扩写章节内容
改写章节内容
生成角色设定
生成世界观设定
生成过程采用 SSE 流式响应,AI 输出会逐段显示在页面上,用户可以实时查看结果、停止生成、复制内容或将结果应用到项目中。
7. 生成历史记录
系统会记录最近的 AI 生成历史,包括:
生成动作
使用的 AI 提供商
使用的模型
提示词摘要
生成结果摘要
创建时间
该功能便于用户回溯历史生成内容,也方便后续分析提示词效果和生成质量。
8. AI 模型配置
系统提供 AI 配置管理能力,用户可以在设置页面维护模型配置:
提供商名称
API Base URL
API Key
模型名称
是否启用
当前后端采用 OpenAI Chat Completions 兼容协议,因此只要模型服务兼容 OpenAI 接口格式,就可以通过自定义接口地址和模型名接入。
9. 多格式导出
作品支持导出为以下格式:
TXT:适合纯文本阅读和简单备份。
Markdown:适合进一步编辑、排版和版本管理。
EPUB:适合电子书阅读器或标准电子书场景。
导出内容会整合小说标题、简介、角色设定、世界观设定和章节正文。
项目实现
1. 技术栈
后端技术:
Python
Flask
Flask-SQLAlchemy
SQLite
flask-cors
OpenAI Python SDK
ebooklib
前端技术:
HTML
CSS
原生 JavaScript
Fetch API
Server-Sent Events
数据存储:
SQLite 数据库文件:instance/novel.db
ORM 模型:SQLAlchemy
AI 接入:
使用 OpenAI Python SDK
采用 OpenAI Chat Completions 兼容接口
支持自定义 API Base URL、API Key 和模型名称
通过流式接口返回生成结果
2. 系统架构
项目采用轻量级前后端协同架构:
浏览器前端
|
| Fetch / SSE
v
Flask 路由层
|
| 调用业务服务
v
AIService / OpenAIProvider
|
| OpenAI 兼容接口
v
大语言模型服务
Flask 路由层
|
| SQLAlchemy ORM
v
SQLite 数据库
整体结构分为以下层次:
前端展示层 位于 templates/ 和 static/ 目录,负责页面渲染、用户交互、表单编辑、接口调用和流式内容展示。
接口路由层 位于 routes/ 目录,负责处理项目、章节、角色、世界观、AI 生成、导出和设置等 HTTP 请求。
业务服务层 位于 services/ 目录,负责 AI 提供商封装、提示词构建和模型调用。
数据模型层 位于 models/ 目录,通过 SQLAlchemy 定义项目、章节、角色、世界观、生成日志和 AI 配置等数据模型。
本地数据层 使用 SQLite 保存业务数据,适合本地部署、学习演示和轻量化个人创作场景。
3. 目录结构
aiwg/
├── app.py # Flask 应用入口
├── config.py # 应用配置
├── requirements.txt # Python 依赖
├── instance/
│ └── novel.db # SQLite 数据库
├── models/ # 数据库模型
│ ├── project.py
│ ├── chapter.py
│ ├── character.py
│ ├── worldview.py
│ ├── generation_log.py
│ └── ai_config.py
├── routes/ # 后端接口
│ ├── project.py
│ ├── chapter.py
│ ├── character.py
│ ├── worldview.py
│ ├── generate.py
│ ├── export.py
│ └── settings.py
├── services/ # AI 调用与业务服务
│ ├── ai_service.py
│ ├── ai_provider.py
│ └── openai_provider.py
├── templates/
│ └── index.html # SPA 页面入口
└── static/
├── css/
│ └── style.css # 页面样式
└── js/
├── api.js # 前端接口封装
├── app.js # 前端路由与应用入口
└── components/ # 功能组件
4. 后端实现
后端使用 Flask 应用工厂模式进行初始化。app.py 负责创建 Flask 应用、加载配置、初始化数据库、开启跨域支持、注册蓝图并创建数据表。
接口按照业务模块拆分为多个蓝图:
project.py:项目增删改查
chapter.py:章节增删改查和排序
character.py:角色增删改查
worldview.py:世界观增删改查
generate.py:AI 生成相关接口
export.py:TXT、Markdown、EPUB 导出
settings.py:AI 模型配置管理
所有业务数据通过 SQLAlchemy 模型写入 SQLite。模型之间以项目为核心建立关联关系,一个项目可以包含多个章节、角色、世界观设定和生成日志。
5. 前端实现
前端采用原生 HTML、CSS 和 JavaScript 实现轻量级单页应用。Flask 返回统一的 index.html,页面加载后由 app.js 根据浏览器路径渲染不同组件。
主要前端组件包括:
project-list.js:项目列表
project-editor.js:项目详情编辑器
chapter-editor.js:章节编辑
character-panel.js:角色管理
worldview-panel.js:世界观管理
generate-panel.js:AI 创作助手
export-panel.js:导出面板
logs-panel.js:生成历史
settings-panel.js:AI 设置
api.js 对 Fetch 请求进行统一封装,前端组件通过统一 API 调用后端接口,减少重复代码。
6. AI 生成实现
AI 生成流程如下:
用户点击生成按钮
|
v
前端调用 /api/generate/* 接口
|
v
后端查询项目、章节、角色、世界观上下文
|
v
AIService 构建系统提示词和用户提示词
|
v
OpenAIProvider 调用 OpenAI 兼容模型接口
|
v
后端通过 SSE 持续返回生成片段
|
v
前端实时显示生成内容
|
v
生成完成后写回数据库并记录日志
该设计使用户不需要等待完整内容生成结束,就能实时看到 AI 输出,提高了长文本生成时的交互体验。
7. 数据模型设计
系统核心数据表包括:
projects:小说项目表,保存标题、题材、风格、目标字数、简介、大纲和状态。
chapters:章节表,保存章节标题、大纲、正文、排序、字数和状态。
characters:角色表,保存角色姓名、类型、性别、年龄、性格、背景、外貌、能力和关系。
worldviews:世界观表,保存设定类别、标题、内容和排序。
generation_logs:生成日志表,保存 AI 生成动作、模型、提示词和结果摘要。
ai_configs:AI 配置表,保存模型提供商、模型名、API 地址、API Key 和启用状态。
项目是核心实体,章节、角色、世界观和生成日志都与项目关联。删除项目时,相关章节、角色、世界观和日志会随之删除。
8. 导出实现
导出功能由 routes/export.py 实现:
TXT 导出将项目内容拼接为纯文本,通过内存字节流返回给浏览器。
Markdown 导出按标题、简介、角色、世界观和章节结构生成 Markdown 文本。
EPUB 导出使用 ebooklib 创建标准电子书结构,包含目录导航和章节正文。
浏览器端通过临时下载链接触发文件下载,用户可以直接获得对应格式的作品文件。
9. 项目特点
轻量化:使用 Flask、SQLite 和原生 JavaScript,部署和理解成本较低。
模块清晰:后端按业务蓝图拆分,前端按功能组件拆分。
创作链路完整:覆盖项目管理、章节创作、角色设定、世界观设定、AI 生成和导出。
AI 集成灵活:支持 OpenAI 兼容模型服务,可配置不同 API 地址和模型名称。
交互体验较好:AI 生成采用流式输出,适合长文本生成场景。
适合扩展:后续可增加用户系统、权限控制、结构化角色解析、章节自动拆分、云端同步和团队协作等能力。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论