bcd13b8ca388d49973f865d33d3fe6e5bd90c339
自动小说生成工具
一款基于大模型的多功能小说生成器,帮助你快速生成连贯、可控、可审校的长篇故事。
| 功能点 | 描述 |
|---|---|
| 🚀 小说设定 | 世界观 / 人物 / 剧情结构 |
| 📝 章节生成 | 多步生成,确保逻辑连贯 |
| 👥 角色状态 & 伏笔管理 | 追踪人物发展、重要事件 |
| 🔍 向量检索 | 保证长篇小说上下文一致 |
| 📁 自定义知识库 | 可上传本地参考文档 |
| ✅ 一致性检查 | 自动识别剧情冲突或矛盾 |
| 🖥 GUI 友好交互 | 所见即所得,配置 & 操作简便 |
目录
环境要求
在开始之前,请确保你的系统满足以下条件:
- 推荐Python 3.10+
- 已安装 pip(Python 包管理器)
- 拥有 API Key(如 OpenAI 或 DeepSeek)或 支持OpenAI调用方式的本地接口
安装依赖
- 在项目根目录下,打开终端或命令行
- 执行以下命令安装所有依赖:
pip install -r requirements.txt - (可选)若需要手动安装
nltk的punkt_tab数据包:python >>> import nltk >>> nltk.download('punkt_tab')
项目结构
克隆或下载本项目后,你将看到如下目录结构:
.
├── main.py # 入口文件, 运行 GUI
├── ui.py # 图形界面
├── novel_generator.py # 章节生成核心逻辑
├── consistency_checker.py # 一致性检查, 防止剧情冲突
|—— chapter_directory_parser.py #格式化目录
├── prompt_definitions.py # 定义 AI 提示词
├── utils.py # 常用工具函数, 文件操作
├── config_manager.py # 管理配置 (API Key, Base URL)
├── config.json # 用户配置文件 (可选)
└── vectorstore/ # (可选) 本地向量数据库存储
vectorstore/文件夹将在程序运行后自动生成,存储向量检索的缓存数据。
配置 API Key
你可以通过以下方式指定或修改 API Key:
方式 1:修改 config.json
打开 config.json,将对应字段替换为你的配置:
{
"api_key": "your_openai_api_key",
"base_url": "https://api.openai.com/v1",
"model_name": "gpt-4o",
"topic": "未来科技",
"genre": "科幻",
"num_chapters": 10,
"word_number": 3000,
"filepath": "output_directory"
}
方式 2:通过 GUI 输入
- 运行
main.py后会弹出图形界面 - 在界面输入
API Key、Base URL、模型名称、Temperature 等 - 点击 “保存配置” 按钮,自动生成或更新
config.json
运行程序
方式 1:使用 Python 解释器
python main.py
执行后,GUI 将会启动,你可以在图形界面中进行各项操作。
方式 2:打包为可执行文件
如果你想在无 Python 环境的机器上使用本工具,可以使用 PyInstaller 进行打包:
pip install pyinstaller
pyinstaller main.spec
打包完成后,会在 dist/ 目录下生成可执行文件(如 Windows 下的 main.exe)。
使用指南
-
启动后,先完成基本参数设置:
- API Key & Base URL(如
https://api.openai.com/v1) - 模型名称(如
gpt-3.5-turbo、gpt-4o等) - Temperature(0~1,决定文字创意程度)
- 主题(Topic)(如 “废土世界的 AI 叛乱”)
- 类型(Genre)(如 “科幻”/“魔幻”/“都市幻想”)
- 章节数、每章字数(如 10 章,每章约 3000 字)
- 保存路径(建议创建一个新的输出文件夹)
- API Key & Base URL(如
-
点击「1. 生成设定 & 目录」
- 系统将基于主题、类型等生成:
Novel_setting.txt:世界观 & 整体设定Novel_directory.txt:章节目录(含标题、简要提示)
- 可以在生成后的文件中查看、修改或补充世界观设定和目录标题。
- 系统将基于主题、类型等生成:
-
点击「2. 生成章节草稿」
- 在生成章节之前,你可以:
- 设置章节号(如要写第 1 章,就填
1) - 在“本章指导”输入框中,填写对本章剧情的任何期望或指导
- 设置章节号(如要写第 1 章,就填
- 点击按钮后,系统将:
- 自动读取前文与
Novel_directory.txt的标题与简述 - 调用向量检索回顾剧情,确保上下文连贯
- 生成本章大纲 (
outline_X.txt) 及正文 (chapter_X.txt)
- 自动读取前文与
- 生成完成后,可在左侧查看本章草稿内容。
- 在生成章节之前,你可以:
-
手动检查 & 编辑(可选)
- 你可以在文本编辑器中修改
chapter_X.txt的内容,使之更符合个人审美或剧情要求。
- 你可以在文本编辑器中修改
-
点击「3. 定稿当前章节」
- 系统将:
- 更新全局摘要(
global_summary.txt) - 更新角色状态(
character_state.txt,包含人物发展、物品变动、剧情线索等) - 更新向量检索库,保证后续章节能够调用最新信息。
- 更新全局摘要(
- 系统将:
-
一致性检查(可选)
- 点击「4. 一致性审校」进行冲突检测,比如角色逻辑、剧情前后矛盾等。
- 若有冲突,会在日志区输出详细说明。
-
重复第 3~5 步 直到所有章节完成!
生成文件管理
在你指定的输出文件夹中,程序会自动生成并维护以下文件/目录:
output_directory/
├── Novel_setting.txt # 世界观 & 整体设定
├── Novel_directory.txt # 小说章节目录
├── character_state.txt # 角色状态/物品/伏笔等追踪
├── global_summary.txt # 整体剧情摘要 (用于后续上下文)
├── outlines/ # 存放各章大纲 (outline_1.txt 等)
├── chapters/ # 存放每一章成稿 (chapter_1.txt 等)
└── vectorstore/ # 向量检索数据库 (可清空重置)
character_state.txt:记录角色的动机、能力、持有物品等关键信息global_summary.txt:每次定稿后都会更新,保证剧情可被后续章节引用chapters/:每一章的正文会独立保存,方便你随时手动修改
常见问题
1. Chroma' object has no attribute 'persist' 错误
- 原因:Chroma 库版本不匹配
- 解决办法:
或者在
pip uninstall chromadb pip install chromadb==0.3.21novel_generator.py中找到store.persist()并注释掉,如果你的版本不支持此方法。
2. 生成内容与预期不符
- 可能原因:
- 主题或类型过于宽泛,模型难以把握重点
- 角色和世界观设定不够详细,可在
Novel_setting.txt中增补更多细节
- 建议:
- 在 GUI 的“本章指导”输入框中填写更明确的剧情走向或重点描述,让模型更好地理解和发挥
若你还有其他问题或需求,欢迎在项目 Issues 中提出。
Languages
Python
100%