YILING0013/AI_NovelGenerator

GitHub: YILING0013/AI_NovelGenerator

一款集成了状态追踪和语义检索的AI长篇小说自动生成框架,致力于解决多章节创作中的上下文连贯性与剧情矛盾问题。

Stars: 4724 | Forks: 860

# 📖 自动小说生成工具 [中文文档](./README_zh-CN.md) | English
✨ **核心功能** ✨ | 模块 | 主要功能 | |-----------------------|-----------------------------------------| | 🎨 小说设定工坊 | 世界观构建 / 角色设计 / 剧情蓝图 | | 📖 智能章节生成 | 多阶段生成,确保剧情连贯性 | | 🧠 状态追踪系统 | 角色发展轨迹 / 伏笔管理 | | 🔍 语义搜索引擎 | 基于向量的长期上下文一致性 | | 📚 知识库集成 | 支持本地文档引用 | | ✅ 自动校对 | 检测剧情矛盾与逻辑冲突 | | 🖥 可视化工作台 | 涵盖配置 / 生成 / 校对全流程的 GUI |
## 📑 目录 1. [环境准备](#-environment-preparation) 2. [项目结构](#-project-structure) 3. [配置指南](#⚙️-configuration-guide) 4. [运行说明](#🚀-run-instructions) 5. [使用指南](#📘-user-guide) 6. [常见问题](#❓-faq) ## 🛠 环境准备 请确保您的环境满足以下要求: - **Python 3.9+**(推荐 3.10–3.12) - **pip** 包管理器 - 有效的 API 密钥: - 云服务:OpenAI / DeepSeek 等 - 本地服务:Ollama 或其他兼容 OpenAI 的接口 ## 📥 安装 1. **下载项目** - 从 [GitHub](https://github.com) 下载项目 ZIP 或克隆仓库: git clone https://github.com/YILING0013/AI_NovelGenerator 2. **安装构建工具(可选)** - 如果某些包安装失败,请访问 [Visual Studio Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) 下载并安装某些模块所需的 C++ 构建工具。 - 默认情况下安装程序仅包含 MSBuild;请务必在工作负载列表中选择 **C++ 桌面开发**。 3. **安装依赖并运行** - 打开终端并切换到项目目录: cd AI_NovelGenerator - 安装项目依赖: pip install -r requirements.txt - 安装完成后运行主程序: python main.py 如果仍然缺少某些依赖,请手动运行: ``` pip install ``` 进行安装。 ## 🗂 项目结构 ``` novel-generator/ ├── main.py # Entry file, runs the GUI ├── consistency_checker.py # Consistency checks to prevent plot conflicts |—— chapter_directory_parser.py # Directory parsing |—— embedding_adapters.py # Embedding interface wrappers |—— llm_adapters.py # LLM interface wrappers ├── prompt_definitions.py # AI prompt templates ├── utils.py # Utility functions and file operations ├── config_manager.py # Configuration manager (API keys, base URL) ├── config.json # User configuration (optional) ├── novel_generator/ # Core chapter generation logic ├── ui/ # Graphical user interface └── vectorstore/ # (Optional) Local vector DB storage ``` ## ⚙️ 配置指南 ### 📌 基础配置 (`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": "The protagonist of Star Rail travels to Genshin Impact's Teyvat continent, saves it, and develops complex relationships with its characters.", "genre": "Fantasy", "num_chapters": 120, "word_number": 4000, "filepath": "D:/AI_NovelGenerator/filepath" } ``` ### 🔧 配置说明 1. **生成模型配置** - `api_key`:LLM 服务的 API 密钥 - `base_url`:API endpoint(本地服务请使用 Ollama 地址) - `interface_format`:接口模式 - `model_name`:主生成模型(例如,gpt-4, claude-3) - `temperature`:创造性参数(0–1,越高越有创造性) - `max_tokens`:模型最大响应长度 2. **Embedding 模型配置** - `embedding_model_name`:Embedding 模型名称(例如,Ollama 的 nomic-embed-text) - `embedding_url`:服务 endpoint - `embedding_retrieval_k`:要检索的最近邻数量 3. **小说参数** - `topic`:故事核心主题 - `genre`:类型 - `num_chapters`:总章节数 - `word_number`:每章目标字数 - `filepath`:生成文件的保存路径 ## 🚀 运行说明 ### 方法一 — 使用 Python 运行 ``` python main.py ``` 此操作将启动 GUI 以供交互使用。 ### 方法二 — 构建可执行文件 如果您想在没有 Python 的机器上运行此工具,请使用 **PyInstaller** 进行打包: ``` pip install pyinstaller pyinstaller main.spec ``` 打包完成后,可执行文件(例如 Windows 上的 `main.exe`)将出现在 `dist/` 文件夹中。 ## 📘 使用指南 1. **启动应用程序后,填写基本参数:** - **API Key & Base URL**(例如,`https://api.openai.com/v1`) - **模型名称**(例如,`gpt-3.5-turbo`, `gpt-4o`) - **Temperature**(0–1,控制创作差异度) - **主题**(例如,“末日废土中的 AI 起义”) - **类型**(例如,“科幻” / “奇幻” / “都市奇幻”) - **章节数** 和 **每章字数**(例如,10 章 × 约 3000 字) - **保存路径**(为结果创建一个新的输出文件夹) 2. **点击 “Step1. 生成设定”** - 系统将根据主题/类型/章节数生成: - `Novel_setting.txt`:世界观、角色、触发点和伏笔。 - 您可以在生成后查看或编辑这些设定。 3. **点击 “Step2. 生成目录”** - 系统将使用 `Novel_setting.txt` 生成: - `Novel_directory.txt`:章节标题和简短提示。 - 您可以查看并修改章节标题和描述。 4. **点击 “Step3. 生成章节草稿”** - 在生成章节之前,您可以: - 设置章节编号(例如,`1`) - 在 “本章指导” 文本框中提供针对本章的指导 - 当您生成章节时,系统将: - 读取先前的设定、`Novel_directory.txt` 和已定稿的章节 - 使用向量检索召回相关上下文以保持连贯性 - 生成大纲(`outline_X.txt`)和章节文本(`chapter_X.txt`) - 您可以在编辑器面板中查看并编辑草稿。 5. **点击 “Step4. 定稿当前章节”** - 系统将: - 更新全局摘要(`global_summary.txt`) - 更新角色状态(`character_state.txt`) - 更新向量存储(以便后续章节可以使用最新信息) - 更新主要情节点(例如,`plot_arcs.txt`) - 定稿后,您将在 `chapter_X.txt` 中看到定稿文本。 6. **一致性检查(可选)** - 点击 “[可选] 一致性校对” 按钮,扫描最新章节以查找冲突(角色逻辑、剧情矛盾等)。 - 如果检测到冲突,详细的信息将显示在日志区域。 7. **重复步骤 4–6**,直到所有章节均已生成并定稿。 ## ❓ 常见问题 ### 期望值: 第 1 行第 1 列 (char 0) 此错误通常表明 API 未返回有效的 JSON——有时会返回 HTML 错误页面或其他意外内容。 ### HTTP/1.1 504 Gateway Timeout? 请检查 API endpoint 的稳定性和网络连通性。 ### Q3: 如何切换 Embedding 提供商? 在 GUI 的 Embedding 配置字段中输入新的提供商设置。 如果您有更多问题或功能请求,请在项目仓库中提交 issue。
标签:AIGC, AI写作, AI小说生成, AI风险缓解, DeepSeek, DLL 劫持, GUI工作台, LLM评估, NLP, Ollama, OpenAI API, Petitpotam, Python, RAG技术, 世界观构建, 人设设计, 伏笔管理, 内容生成, 创意写作, 向量数据库, 多章节生成, 大纲生成, 大语言模型, 小说创作工具, 无后门, 本地文档检索, 漏洞挖掘, 熵值分析, 状态追踪系统, 知识库集成, 自动校对, 自动衔接上下文, 语义搜索引擎, 逆向工具, 逻辑冲突检测, 长篇小说创作