1- ** 自动小说生成工具**
21
3- ** 核心功能: **
2+ # ** 自动小说生成工具 **
43
5- ✅ ** 小说设定** (世界观、人物、剧情结构)
6- ✅ ** 章节生成** (多步生成,确保逻辑连贯)
7- ✅ ** 角色状态 & 伏笔管理** (追踪人物发展)
8- ✅ ** 向量检索** (保证长篇小说上下文一致)
9- ✅ ** 自定义知识库** (上传本地参考文档)
10- ✅ ** 一致性检查** (防止剧情冲突)
11- ✅ ** GUI 友好交互** (可配置 & 直观操作)
4+ > 一款基于大模型的多功能小说生成器,帮助你快速生成连贯、可控、可审校的长篇故事。
125
13- # ** 部署与使用指南 **
6+ < div align = " center " >
147
15- ## ** 1. 环境要求**
16- 在开始之前,请确保你的系统满足以下要求:
17- - ** Python 3.8+**
18- - ** pip 已安装** (Python 包管理器)
19- - ** API 访问权限** (支持OpenAI API方式的任何AI,中文推荐使用DeepSeek)
8+ | 功能点 | 描述 |
9+ | -------| -----|
10+ | 🚀 ** 小说设定** | 世界观 / 人物 / 剧情结构 |
11+ | 📝 ** 章节生成** | 多步生成,确保逻辑连贯 |
12+ | 👥 ** 角色状态 & 伏笔管理** | 追踪人物发展、重要事件 |
13+ | 🔍 ** 向量检索** | 保证长篇小说上下文一致 |
14+ | 📁 ** 自定义知识库** | 可上传本地参考文档 |
15+ | ✅ ** 一致性检查** | 自动识别剧情冲突或矛盾 |
16+ | 🖥 ** GUI 友好交互** | 所见即所得,配置 & 操作简便 |
17+
18+ </div >
2019
2120---
2221
23- ## ** 2. 安装依赖**
22+ ## ** 目录**
23+ 1 . [ 环境要求] ( #环境要求 )
24+ 2 . [ 安装依赖] ( #安装依赖 )
25+ 3 . [ 项目结构] ( #项目结构 )
26+ 4 . [ 配置 API Key] ( #配置-api-key )
27+ 5 . [ 运行程序] ( #运行程序 )
28+ 6 . [ 使用指南] ( #使用指南 )
29+ 7 . [ 生成文件管理] ( #生成文件管理 )
30+ 8 . [ 常见问题] ( #常见问题 )
2431
25- ** 进入项目目录,执行** :
26- ``` bash
27- pip install -r requirements.txt
28- ```
29- ### 安装语句切分模型punkt(可选,默认程序运行后会自动加载)
30- ** Python环境终端输入** :
31- ``` bash
32- python
33- import nltk
34- nltk.download(' punkt' )
35- ```
32+ ---
33+
34+ ## ** 环境要求**
35+ 在开始之前,请确保你的系统满足以下条件:
36+ - 推荐** Python 3.10+**
37+ - 已安装 ** pip** (Python 包管理器)
38+ - 拥有 ** API Key** (如 OpenAI 或 DeepSeek)或 ** 支持OpenAI调用方式的本地接口**
3639
37- 等待下载完成(很小,下载很快的)
40+ ---
3841
39- ** 至此,环境配置完成。**
42+ ## ** 安装依赖**
43+ 1 . 在项目根目录下,打开终端或命令行
44+ 2 . 执行以下命令安装所有依赖:
45+ ``` bash
46+ pip install -r requirements.txt
47+ ```
48+ 3 . (可选)若需要手动安装 ` nltk ` 的 ` punkt ` 数据包:
49+ ``` bash
50+ python
51+ >>> import nltk
52+ >>> nltk.download(' punkt' )
53+ ```
4054
4155---
4256
43- ## ** 3. 项目结构**
44- 克隆或下载本项目后,你会看到如下结构:
45- ``` plaintext
57+ ## ** 项目结构**
58+ 克隆或下载本项目后,你将看到如下目录结构:
59+
60+ ```
4661.
47- ├── main.py # 入口文件,运行 GUI
48- ├── ui.py # 图形界面
49- ├── novel_generator.py # 章节生成核心逻辑
50- ├── consistency_checker.py # 一致性检查 (防止剧情冲突)
51- ├── prompt_definitions.py # 预定义的 AI 提示词
52- ├── utils.py # 通用工具函数 (文件操作)
53- ├── config_manager.py # 处理配置信息 (API Key, Base URL)
54- ├── config.json # 用户配置文件 (可选)
55- └── vectorstore/ # (可选) 存储向量数据库
62+ ├── main.py # 入口文件, 运行 GUI
63+ ├── ui.py # 图形界面
64+ ├── novel_generator.py # 章节生成核心逻辑
65+ ├── consistency_checker.py # 一致性检查, 防止剧情冲突
66+ |—— chapter_directory_parser.py #格式化目录
67+ ├── prompt_definitions.py # 定义 AI 提示词
68+ ├── utils.py # 常用工具函数, 文件操作
69+ ├── config_manager.py # 管理配置 (API Key, Base URL)
70+ ├── config.json # 用户配置文件 (可选)
71+ └── vectorstore/ # (可选) 本地向量数据库存储
5672```
5773
74+ > ` vectorstore/ ` 文件夹将在程序运行后自动生成,存储向量检索的缓存数据。
75+
5876---
5977
60- ## ** 4. 配置 API Key**
61- 运行前,你需要 ** 配置 API Key** 以便调用 OpenAI 或本地 LLM。
78+ ## ** 配置 API Key**
79+ 你可以通过以下方式指定或修改 API Key:
6280
63- ### ** 方式 1:手动修改 ` config.json ` **
64- 在 ` config.json ` 文件中填入 :
81+ ### 方式 1:** 修改 ` config.json ` **
82+ 打开 ` config.json ` ,将对应字段替换为你的配置 :
6583``` json
6684{
6785 "api_key" : " your_openai_api_key" ,
@@ -75,93 +93,119 @@ nltk.download('punkt')
7593}
7694```
7795
78- ### ** 方式 2:通过 GUI 直接输入**
79- - 启动程序后,在 GUI 中输入 ` API Key ` 并选择 ` Base URL ` ,然后** 点击 "保存配置"** 以存储到 ` config.json ` 。
96+ ### 方式 2:** 通过 GUI 输入**
97+ 1 . 运行 ` main.py ` 后会弹出图形界面
98+ 2 . 在界面输入 ` API Key ` 、` Base URL ` 、模型名称、Temperature 等
99+ 3 . 点击 ** “保存配置”** 按钮,自动生成或更新 ` config.json `
80100
81101---
82102
83- ## ** 5. 运行程序**
84- ### ** 方式 1:使用 ` Python ` 运行**
103+ ## ** 运行程序**
104+
105+ ### ** 方式 1:使用 Python 解释器**
85106``` bash
86107python main.py
87108```
88- 程序启动后,你会看到一个图形界面,方便用户交互 。
109+ 执行后,GUI 将会启动,你可以在图形界面中进行各项操作 。
89110
90- ### ** 方式 2:打包成可执行文件**
91- 如果你希望** 打包成可执行文件** (避免 Python 依赖),可以使用 ` PyInstaller ` :
92- ``` bash
93- pip install pyinstaller
94- pyinstaller --onefile --windowed main.py
95- ```
96- 这样会在 ` dist/ ` 目录下生成 ` main.exe ` (Windows)或 ` main ` (Linux/macOS)。
111+ ### ** 方式 2:打包为可执行文件**
112+ 如果你想在无 Python 环境的机器上使用本工具,可以使用 ** PyInstaller** 进行打包:
97113
98- 或者使用提供的` main.spec ` ,执行以下打包指令:
99114``` bash
115+ pip install pyinstaller
100116pyinstaller main.spec
101117```
118+ 打包完成后,会在 ` dist/ ` 目录下生成可执行文件(如 Windows 下的 ` main.exe ` )。
102119
103120---
104121
105- ## ** 6. 使用指南**
106- ### ** 步骤 1:设置小说参数**
107- 在 GUI 界面:
108- 1 . ** 输入 API Key & Base URL** (或使用 ` config.json ` )。
109- 2 . ** 选择模型** (如 ` gpt-4o ` )。
110- 3 . ** 输入小说主题** (如 "未来世界中的 AI 革命")。
111- 4 . ** 选择小说类型** (如 "科幻"、"奇幻"、"悬疑")。
112- 5 . ** 设置章节数和每章字数** (如 10 章,每章 3000 字)。
113- 6 . ** 选择存储路径** (建议创建 ` novels/ ` 目录)。
114-
115- ### ** 步骤 2:生成小说设定 & 目录**
116- 点击 ** "1. 生成设定 & 目录"** ,系统将:
117- - 生成** 世界观设定** (` Novel_setting.txt ` )。
118- - 生成** 章节目录** (` Novel_directory.txt ` )。
119-
120- ### ** 步骤 3:生成章节**
121- 点击 ** "2. 生成单章"** ,系统将:
122- - 读取** 上一章节内容** (` lastchapter.txt ` )。
123- - 通过** 向量检索** 查找相关背景信息。
124- - ** 动态调整角色状态** (` character_state.txt ` )。
125- - ** 生成完整章节** ,并保存到 ` chapters/chapter_X.txt ` 。
126-
127- ### ** 步骤 4:一致性检查(可选)**
128- 点击 ** "3. 一致性审校"** ,系统将:
129- - 检查** 角色行为、剧情逻辑** 是否前后矛盾。
130- - 识别是否有** 未解伏笔** ,保证故事合理性。
122+ ## ** 使用指南**
123+
124+ 1 . ** 启动后,先完成基本参数设置:**
125+ - ** API Key & Base URL** (如 ` https://api.openai.com/v1 ` )
126+ - ** 模型名称** (如 ` gpt-3.5-turbo ` 、` gpt-4o ` 等)
127+ - ** Temperature** (0~ 1,决定文字创意程度)
128+ - ** 主题(Topic)** (如 “废土世界的 AI 叛乱”)
129+ - ** 类型(Genre)** (如 “科幻”/“魔幻”/“都市幻想”)
130+ - ** 章节数** 、** 每章字数** (如 10 章,每章约 3000 字)
131+ - ** 保存路径** (建议创建一个新的输出文件夹)
132+
133+ 2 . ** 点击「1. 生成设定 & 目录」**
134+ - 系统将基于主题、类型等生成:
135+ - ` Novel_setting.txt ` :** 世界观 & 整体设定**
136+ - ` Novel_directory.txt ` :** 章节目录** (含标题、简要提示)
137+ - 可以在生成后的文件中查看、修改或补充世界观设定和目录标题。
138+
139+ 3 . ** 点击「2. 生成章节草稿」**
140+ - 在生成章节之前,你可以:
141+ - ** 设置章节号** (如要写第 1 章,就填 ` 1 ` )
142+ - ** 在“本章指导”输入框** 中,填写对本章剧情的任何期望或指导
143+ - 点击按钮后,系统将:
144+ - 自动读取前文与 ` Novel_directory.txt ` 的标题与简述
145+ - 调用向量检索回顾剧情,确保上下文连贯
146+ - 生成本章大纲 (` outline_X.txt ` ) 及正文 (` chapter_X.txt ` )
147+ - 生成完成后,可在左侧查看本章草稿内容。
148+
149+ 4 . ** 手动检查 & 编辑** (可选)
150+ - 你可以在文本编辑器中修改 ` chapter_X.txt ` 的内容,使之更符合个人审美或剧情要求。
151+
152+ 5 . ** 点击「3. 定稿当前章节」**
153+ - 系统将:
154+ - ** 更新全局摘要** (` global_summary.txt ` )
155+ - ** 更新角色状态** (` character_state.txt ` ,包含人物发展、物品变动、剧情线索等)
156+ - ** 更新向量检索库** ,保证后续章节能够调用最新信息。
157+
158+ 6 . ** 一致性检查(可选)**
159+ - 点击「4. 一致性审校」进行冲突检测,比如** 角色逻辑、剧情前后矛盾** 等。
160+ - 若有冲突,会在日志区输出详细说明。
161+
162+ 7 . ** 重复第 3~ 5 步** 直到所有章节完成!
131163
132164---
133165
134- ## ** 7. 生成文件管理**
135- 所有生成的文件存储在你选择的目录下:
136- ``` plaintext
166+ ## ** 生成文件管理**
167+
168+ 在你指定的输出文件夹中,程序会自动生成并维护以下文件/目录:
169+
170+ ```
137171output_directory/
138- ├── Novel_setting.txt # 小说世界观 & 角色设定
139- ├── Novel_directory.txt # 章节目录
140- ├── lastchapter.txt # 最新章节 (供 AI 参考)
141- ├── character_state.txt # 角色状态 (道具、情感、技能)
142- ├── global_summary.txt # 小说摘要
143- └── chapters/ # 所有章节
144- ├── chapter_1.txt
145- ├── chapter_2.txt
146- ├── chapter_3.txt
147- └── ...
172+ ├── Novel_setting.txt # 世界观 & 整体设定
173+ ├── Novel_directory.txt # 小说章节目录
174+ ├── character_state.txt # 角色状态/物品/伏笔等追踪
175+ ├── global_summary.txt # 整体剧情摘要 (用于后续上下文)
176+ ├── outlines/ # 存放各章大纲 (outline_1.txt 等)
177+ ├── chapters/ # 存放每一章成稿 (chapter_1.txt 等)
178+ └── vectorstore/ # 向量检索数据库 (可清空重置)
148179```
149180
181+ - ** ` character_state.txt ` ** :记录角色的动机、能力、持有物品等关键信息
182+ - ** ` global_summary.txt ` ** :每次定稿后都会更新,保证剧情可被后续章节引用
183+ - ** ` chapters/ ` ** :每一章的正文会独立保存,方便你随时手动修改
184+
150185---
151186
152- ## ** 8. 可能遇到的问题**
153- ### ** 1. ` Chroma' object has no attribute 'persist' ` **
154- ** 原因:** ` Chroma ` 版本问题。
155- ** 解决方案:**
156- ``` bash
157- pip uninstall chromadb
158- pip install chromadb==0.3.21 # 或尝试其他版本
159- ```
160- 如果仍然报错,可以在 ` novel_generator.py ` 里** 注释 ` store.persist() ` ** 。
187+ ## ** 常见问题**
188+
189+ #### 1. ** ` Chroma' object has no attribute 'persist' ` 错误**
190+
191+ - ** 原因** :Chroma 库版本不匹配
192+ - ** 解决办法** :
193+ ``` bash
194+ pip uninstall chromadb
195+ pip install chromadb==0.3.21
196+ ```
197+ 或者在 ` novel_generator.py ` 中找到 ` store.persist() ` 并注释掉,如果你的版本不支持此方法。
198+
199+ ---
200+
201+ #### 2. ** 生成内容与预期不符**
202+
203+ - ** 可能原因** :
204+ 1 . 主题或类型过于宽泛,模型难以把握重点
205+ 2 . 角色和世界观设定不够详细,可在 ` Novel_setting.txt ` 中增补更多细节
206+ - ** 建议** :
207+ - 在 GUI 的“本章指导”输入框中填写更明确的剧情走向或重点描述,让模型更好地理解和发挥
161208
162209---
163210
164- ### ** 2. 生成内容不符合预期**
165- ** 可能的原因:**
166- - 主题不够清晰,可以在 ` topic ` 字段中添加详细设定(如 ` “废土世界 + AI 叛乱” ` )。
167- - 角色设定较少,可手动在 ` Novel_setting.txt ` 里补充。
211+ 若你还有其他问题或需求,欢迎在项目 Issues 中提出。
0 commit comments