
在 AI 创作日益普及的今天,从短文本到长篇内容,生成式模型正在改变内容生产的边界。
AI_NovelGenerator 就是一款专为中文写作者设计的全流程自动化小说生成系统,结合 LLM(大语言模型)与向量检索技术,帮助用户高效创作逻辑严谨、设定统一、剧情连贯的长篇故事。

它不仅是一个“自动写文”工具,更是一套完整的AI 辅助写作工作流,覆盖世界观构建、角色设定、章节生成、状态追踪与一致性审校。
- GitHub:https://github.com/YILING0013/AI_NovelGenerator
- 网盘下载:https://pan.quark.cn/s/dae691ab377e?pwd=wfGW
核心功能一览
| 模块 | 功能说明 |
|---|---|
| 🎨 小说设定工坊 | 自动生成世界观、人物设定、剧情主线与暗线伏笔 |
| 📖 智能章节生成 | 分阶段生成大纲 → 草稿 → 定稿,保障叙事连贯性 |
| 🧠 状态追踪系统 | 实时记录角色成长轨迹、情感变化与关键事件 |
| 🔍 语义检索引擎 | 基于向量数据库维护长程上下文一致性 |
| 📚 知识库集成 | 支持导入本地文档作为背景参考 |
| ✅ 自动审校机制 | 检测剧情矛盾、时间错乱、人设崩塌等逻辑冲突 |
| 🖥️ 可视化工作台 | 图形界面操作,无需编程即可完成全流程管理 |
该工具特别适合:
- 网络小说创作者
- 游戏剧本开发者
- AI 写作研究者
- 需要批量生成叙事内容的内容团队
技术架构概览
项目采用模块化设计,各组件职责清晰,便于扩展与调试:
AI_NovelGenerator/
├── main.py # 主入口,启动 GUI
├── config_manager.py # 配置管理(API 密钥、模型参数)
├── prompt_definitions.py # 所有提示词模板定义
├── utils.py # 工具函数(文件读写、日志等)
├── consistency_checker.py # 剧情一致性检测模块
├── chapter_directory_parser.py # 章节目录解析器
├── llm_adapters.py # 统一封装 OpenAI / Ollama 等 LLM 接口
├── embedding_adapters.py # 向量化接口适配层
├── novel_generator/ # 章节生成核心逻辑
├── ui/ # PyQt5 构建的图形界面
└── vectorstore/ # 本地向量数据库存储(可选)
所有生成过程均通过提示工程驱动,并结合外部记忆机制(vectorstore)实现跨章节信息同步。
环境准备
✅ 系统要求
- Python 版本:
3.9+(推荐使用3.10–3.12) - 包管理工具:
pip - 外部依赖:
- 若使用云端模型(如 GPT-4、DeepSeek),需提供有效 API Key
- 若使用本地模型(如 Ollama),需提前安装并运行服务
💡 推荐环境配置
# 使用 conda 创建独立环境(可选但推荐)
conda create -n novelgen python=3.11
conda activate novelgen
安装步骤
1. 克隆项目
git clone https://github.com/YILING0013/AI_NovelGenerator
cd AI_NovelGenerator
2. 安装依赖
pip install -r requirements.txt
⚠️ Windows 用户注意:若遇到 C++ 编译错误,请安装 Visual Studio Build Tools,并在安装时勾选「C++ 桌面开发」组件。
3. (可选)打包为可执行文件
如需在无 Python 环境的电脑上运行,可使用 PyInstaller 打包:
pip install pyinstaller
pyinstaller main.spec
完成后将在 dist/ 目录生成 main.exe(Windows)或对应平台的可执行程序。
配置说明(config.json)
项目支持通过 config.json 文件预设参数,简化重复设置。
{
"api_key": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"base_url": "https://api.openai.com/v1",
"interface_format": "OpenAI",
"model_name": "gpt-4o-mini",
"temperature": 0.7,
"max_tokens": 4096,
"embedding_api_key": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"embedding_interface_format": "OpenAI",
"embedding_url": "https://api.openai.com/v1",
"embedding_model_name": "text-embedding-ada-002",
"embedding_retrieval_k": 4,
"topic": "星穹铁道主角星穿越到原神提瓦特大陆,拯救提瓦特大陆,并与其中的角色展开爱恨情仇的小说",
"genre": "玄幻",
"num_chapters": 120,
"word_number": 4000,
"filepath": "D:/AI_NovelGenerator/filepath"
}
参数详解
生成模型配置
| 字段 | 说明 |
|---|---|
api_key | LLM 服务商的 API 密钥(OpenAI、DeepSeek 等) |
base_url | API 地址(本地可用 http://localhost:11434/v1) |
model_name | 主模型名称(如 gpt-4o, qwen-max, llama3) |
temperature | 创意度(0~1),越高越发散,建议 0.7–0.9 |
max_tokens | 单次响应最大 token 数量 |
Embedding 模型配置
| 字段 | 说明 |
|---|---|
embedding_model_name | 向量模型名(如 nomic-embed-text, text-embedding-ada-002) |
embedding_url | 向量服务地址 |
embedding_retrieval_k | 每次检索返回最相似的 k 条上下文 |
小说参数配置
| 字段 | 说明 |
|---|---|
topic | 故事核心主题 |
genre | 类型(科幻、玄幻、都市、悬疑等) |
num_chapters | 总章节数 |
word_number | 每章目标字数(单位:汉字) |
filepath | 输出文件保存路径 |
使用流程(GUI 操作指南)
启动主程序后,进入图形化界面,按以下五步完成小说创作:
Step 1:填写基础配置
在 GUI 中输入或确认以下信息:
- API Key 和 Base URL
- 模型名称(支持任意兼容 OpenAI 接口的模型)
- Temperature(建议 0.7–0.8)
- 主题(Topic)与类型(Genre)
- 章节数、每章字数
- 本地输出路径(建议新建专用文件夹)
点击「保存配置」以持久化设置。
Step 2:生成小说设定(Novel Setting)
点击「Step1. 生成设定」
系统将调用 LLM 生成:
- 世界观架构(地理、势力、规则)
- 主要角色档案(姓名、性格、动机)
- 核心剧情蓝图(开端、发展、高潮、结局)
- 雷点与禁忌设定(避免后续冲突)
输出文件:Novel_setting.txt
✅ 支持手动修改后再进入下一步
Step 3:生成章节目录(Directory)
点击「Step2. 生成目录」
系统根据 Novel_setting.txt 自动生成全书章节结构:
- 每章标题
- 简要剧情提示(prompt for generation)
输出文件:Novel_directory.txt
✅ 可编辑调整顺序或补充细节
Step 4:生成章节草稿
点击「Step3. 生成章节草稿」
输入目标章节号(如第 5 章),并可选择性填写:
- 「本章指导」:添加特定剧情期望(如“本章必须出现反派登场”)
系统会自动执行以下流程:
- 读取前期设定文件
- 从
vectorstore中检索相关上下文(角色状态、前情提要) - 调用 LLM 生成本章大纲(
outline_X.txt) - 基于大纲生成正文初稿(
chapter_X.txt)
左侧文本框将实时显示生成结果,支持查看与编辑。
Step 5:定稿当前章节
点击「Step4. 定稿当前章节」
系统将:
- 更新全局摘要(
global_summary.txt) - 记录角色最新状态(
character_state.txt) - 将本章内容存入向量数据库(用于后续检索)
- 更新剧情弧线与伏笔列表(
plot_arcs.txt)
✅ 至此,该章节正式纳入“已定稿”体系,成为后续章节的上下文依据。
(可选)一致性审校
点击「[可选] 一致性审校」
系统会对最新章节进行逻辑扫描,检测:
- 角色行为是否违背其设定
- 时间线是否错乱
- 地点切换是否合理
- 是否遗漏重要伏笔回收
发现问题将在日志区高亮提示,辅助人工修正。
向量检索配置提示
为了保证长篇小说的上下文一致性,本工具引入了基于向量的语义检索机制:
使用方式
- 在配置中指定 Embedding 模型和服务地址
- 第一次运行时自动生成
vectorstore/目录 - 每次“定稿”后,系统自动将章节内容编码并存入数据库
不同场景配置建议
| 场景 | 配置方法 |
|---|---|
| 使用云端服务(OpenAI) | 设置 embedding_url=https://api.openai.com/v1 + 对应 API Key |
| 使用本地 Ollama | 确保已启动服务:ollama serve下载模型: ollama pull nomic-embed-text设置 embedding_url=http://localhost:11434/v1 |
| 更换模型 | 修改 embedding_model_name 并清空 vectorstore/ 目录(避免向量不匹配) |
常见问题解答(FAQ)
❓ Q1: 报错 Expecting value: line 1 column 1 (char 0)
原因:API 请求未正常返回 JSON,可能收到 HTML 错误页或其他非预期响应。
解决:
- 检查 API Key 是否正确
- 确认
base_url格式无多余空格 - 查看网络连接是否稳定
❓ Q2: 出现 HTTP/1.1 504 Gateway Timeout
原因:请求超时,常见于服务器响应慢或网络延迟高。
解决:
- 切换更稳定的 API 服务节点
- 降低单章字数以减少生成耗时
- 检查本地防火墙或代理设置
❓ Q3: 如何切换不同的 Embedding 提供商?
在 GUI 界面中直接修改以下字段:
Embedding API KeyEmbedding URLEmbedding Model Name
例如:
- OpenAI:
text-embedding-ada-002 - Ollama:
nomic-embed-text - 百度千帆:
bge-large-en
切换后建议删除 vectorstore/ 文件夹重新初始化。
设计理念与优势总结
| 优势 | 说明 |
|---|---|
| ✅ 流程标准化 | 五步法引导创作,降低使用门槛 |
| ✅ 上下文可控 | 向量检索 + 状态文件双保险,防止“失忆式写作” |
| ✅ 本地化支持 | 可对接 Ollama、LocalAI 等本地模型,保护隐私 |
| ✅ 易于扩展 | 模块解耦,可替换提示词、模型、向量化方案 |
| ✅ 开源透明 | 全部代码公开,无隐藏数据收集行为 |
注意事项
- 本工具生成内容为 AI 辅助产出,不代表最终作品质量,仍需人工润色与把关。
- 长篇小说生成对算力要求较高,建议使用高性能模型(如 GPT-4、Claude 3)以获得最佳效果。
- 若使用免费或低配模型,可能出现情节跳跃、逻辑断裂等问题,属正常现象。
数据统计
相关导航


TIPO-Agent

image2prompt

Picture Me

打滑作业平台

DengeAI - Video Prompt Generator

enableAppleAI






