# AI_BOOK **Repository Path**: Dagonprince/ai_book ## Basic Information - **Project Name**: AI_BOOK - **Description**: 通过小说简介+提示词,借助大模型生成小说的卷,人物性格,故事发展情节,以及小说的大纲,章节 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-11-08 - **Last Updated**: 2026-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 小说生成助手 一个基于 PyQt6 和 AI 大语言模型的智能小说创作工具,帮助用户从零开始创作完整的小说作品。 ## 📋 目录 - [项目简介](#项目简介) - [项目架构](#项目架构) - [功能模块](#功能模块) - [技术栈](#技术栈) - [安装与配置](#安装与配置) - [操作说明](#操作说明) - [文件结构](#文件结构) - [配置文件说明](#配置文件说明) - [常见问题](#常见问题) --- ## 项目简介 AI 小说生成助手是一个功能完整的桌面应用程序,通过 AI 大语言模型辅助用户完成小说的创作流程。从基础设定到最终章节内容生成,提供全流程的创作支持。 ### 主要特点 - 🎯 **全流程支持**:从基础设定到章节写作的完整创作流程 - 🤖 **AI 智能生成**:基于大语言模型的内容生成 - 💾 **数据持久化**:自动保存和加载创作内容 - 🎨 **友好界面**:直观的标签页式界面设计 - ⚙️ **配置管理**:API Key 永久保存,支持修改 --- ## 项目架构 ### 整体架构图 ``` ┌─────────────────────────────────────────────────────────┐ │ NovelGeneratorWindow │ │ (主窗口 - QMainWindow) │ ├─────────────────────────────────────────────────────────┤ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │基础设置Tab│ │大纲生成Tab│ │人物设定Tab│ │章节大纲Tab│ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ ┌────────────────────────────────────────────────────┐ │ │ │ 章节写作Tab │ │ │ └────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ StreamWorker │ │ (后台线程 - QThread) │ │ - 异步调用 AI API │ │ - 流式接收生成内容 │ │ - 信号机制更新 UI │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ APIConfig │ │ (API 配置管理类) │ │ - 管理 API 基础配置 │ │ - 创建 OpenAI 客户端 │ │ - 验证配置完整性 │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ ConfigManager │ │ (配置文件管理类) │ │ - 保存/加载 API Key │ │ - 管理 config.json │ └─────────────────────────────────────────────────────────┘ ``` ### 核心类说明 #### 1. **ConfigManager** - 配置管理类 - **职责**:管理 API Key 的持久化存储 - **功能**: - 从 `config.json` 文件加载 API Key - 保存 API Key 到配置文件 - 提供统一的 API Key 获取接口 #### 2. **APIConfig** - API 配置类 - **职责**:管理 AI API 相关配置 - **功能**: - 定义 API 基础 URL 和模型名称 - 创建 OpenAI 客户端实例 - 验证配置完整性 #### 3. **StreamWorker** - 流式工作线程 - **职责**:在后台线程中处理 AI API 调用 - **功能**: - 异步调用 AI API,避免阻塞 UI - 流式接收生成内容,实时更新界面 - 错误处理和信号发射 #### 4. **NovelGeneratorWindow** - 主窗口类 - **职责**:应用程序主界面和业务逻辑 - **功能**: - 管理 5 个功能标签页 - 处理用户交互 - 协调各模块工作 #### 5. **ApiKeyDialog** - API Key 设置对话框 - **职责**:API Key 的输入和保存 - **功能**: - 显示/隐藏 API Key - 验证输入 - 保存到配置文件 #### 6. **ArticleViewDialog** - 文章查看对话框 - **职责**:查看和编辑生成的章节内容 - **功能**: - 显示完整章节内容 - 支持内容编辑 - 保存修改 #### 7. **NovelTypeDialog** - 小说类型管理对话框 - **职责**:**管理小说类型列表 - **功能**: - 添加/删除小说类型 - 保存到 `novel_types.txt` --- ## 功能模块 ### 1. 基础设置模块 **功能**:设置小说的基本信息 **包含内容**: - 小说名称 - 小说介绍/简介 - 小说频道(男频/女频) - 小说类型(可多选,支持自定义) **操作流程**: 1. 填写小说基本信息 2. 点击"保存基础信息"保存 3. 可直接点击"生成小说大纲"进入下一步 ### 2. 小说大纲生成模块 **功能**:基于基础信息生成完整的小说大纲 **包含内容**: - 10 卷小说的整体大纲 - 每卷的故事情节 **操作流程**: 1. 确保已保存基础信息 2. 点击"生成小说大纲" 3. 等待 AI 生成(流式显示) 4. 可保存大纲到文件 5. 可加载已有大纲文件 ### 3. 人物设定生成模块 **功能**:基于小说大纲生成人物设定 **包含内容**: - 主要人物介绍 - 人物背景设定 - 人物性格特点 **操作流程**: 1. 确保已生成小说大纲 2. 点击"生成人物设定" 3. 等待 AI 生成 4. 可保存/加载人物设定文件 ### 4. 章节大纲生成模块 **功能**:生成指定卷数的详细章节大纲 **包含内容**: - 每卷的卷名 - 每章的章名 - 每章的故事情节概要 **操作流程**: 1. 确保已生成人物设定 2. 输入开始卷数和结束卷数(1-10) 3. 点击"生成章节大纲" 4. 每卷分为 20 章 5. 可保存/加载章节大纲文件 ### 5. 章节写作模块 **功能**:基于章节大纲生成完整的章节内容 **包含内容**: - 每章的完整文本内容(6500-8500 字) - 章节间的连贯性处理 - 内容查看和编辑 **操作流程**: 1. 点击"加载章节大纲" 2. 系统解析并显示所有章节 3. 对每个章节: - 可编辑章节细节 - 点击"生成"生成完整内容 - 点击"查看"查看/编辑生成内容 - 点击"保存"保存到文件 --- ## 技术栈 ### 前端框架 - **PyQt6**:GUI 框架 - `QMainWindow`:主窗口 - `QTabWidget`:标签页 - `QThread`:多线程 - `QDialog`:对话框 ### AI 集成 - **OpenAI SDK**:调用 AI API - 流式响应处理 - 自定义 API 端点支持 ### 数据处理 - **JSON**:配置文件存储 - **文件 I/O**:内容保存和加载 ### Python 版本 - Python 3.8+ --- ## 安装与配置 ### 1. 环境要求 ```bash Python >= 3.8 ``` ### 2. 安装依赖 ```bash pip install PyQt6 openai ``` ### 3. 配置文件设置 首次运行前,需要配置 API Key: 1. 运行程序 2. 点击底部"⚙ 设置 API Key"按钮 3. 输入您的 ARK_API_KEY 4. 点击"确定"保存 API Key 会自动保存到 `config.json` 文件中,下次启动会自动加载。 ### 4. 运行程序 ```bash python novel_generator.py ``` --- ## 操作说明 ### 完整创作流程 #### 第一步:基础设置 1. 在"📝 基础设置"标签页中: - 输入小说名称 - 输入小说介绍/简介 - 选择小说频道(男频/女频) - 选择小说类型(可多选) - 点击"✅ 保存基础信息" 2. (可选)点击"🚀 生成小说大纲"直接进入下一步 #### 第二步:生成小说大纲 1. 切换到"📋 小说大纲"标签页 2. 点击"🚀 生成小说大纲" 3. 等待 AI 生成(内容会流式显示) 4. 生成完成后: - 可点击"💾 保存大纲"保存到文件 - 或点击"📂 加载大纲"加载已有大纲 #### 第三步:生成人物设定 1. 切换到"👥 人物设定"标签页 2. 点击"👥 生成人物设定" 3. 等待 AI 生成 4. 生成完成后可保存/加载 #### 第四步:生成章节大纲 1. 切换到"📖 章节大纲"标签页 2. 输入开始卷数和结束卷数(例如:1 到 5) 3. 点击"📚 生成章节大纲" 4. 等待生成完成 5. 可保存/加载章节大纲 #### 第五步:章节写作 1. 切换到"✍️ 章节写作"标签页 2. 点击"📄 加载章节大纲" 3. 系统会显示所有章节列表 4. 对每个章节: - **编辑细节**:在细节编辑框中修改章节概要 - **生成内容**:点击"✍️ 生成"按钮生成完整章节 - **查看编辑**:点击"👁 查看"按钮查看和编辑生成的内容 - **保存文件**:点击"💾 保存"按钮保存到文件 ### 快捷操作 - **管理小说类型**:在基础设置页面点击"📝 管理类型"按钮 - **修改 API Key**:点击底部"⚙ 设置 API Key"按钮 - **查看状态**:底部状态栏显示 API Key 配置状态和当前操作状态 --- ## 文件结构 ``` ai_book_bak/ │ ├── novel_generator.py # 主程序文件 ├── config.json # API Key 配置文件(自动生成) ├── novel_types.txt # 小说类型列表 │ ├── generate_activation.py # 激活码生成工具(命令行) ├── activation_generator_gui.py # 激活码生成工具(GUI) ├── get_machine_code.py # 机器码获取工具 │ ├── build/ # 构建输出目录 ├── dist/ # 打包输出目录 │ └── AI小说生成助手.exe # 打包后的可执行文件 │ └── word/ # 生成的小说内容保存目录 ├── 天道/ │ ├── 天道_大纲.txt │ ├── 天道_人物设定.txt │ ├── 天道_章节大纲_第1-2卷.txt │ └── ### 第一卷:命格觉醒___第1章:异端降世__.txt └── ... ``` ### 主要文件说明 - **novel_generator.py**:主程序,包含所有核心功能 - **config.json**:配置文件,存储 API Key(首次设置后自动创建) - **novel_types.txt**:小说类型列表,可自定义添加 - **word/**:生成的小说内容保存目录,按小说名称分类 --- ## 配置文件说明 ### config.json API Key 配置文件,格式如下: ```json { "api_key": "your-api-key-here" } ``` **说明**: - 文件位置:程序运行目录 - 自动创建:首次设置 API Key 时自动创建 - 自动加载:程序启动时自动加载 - 安全提示:请勿将配置文件提交到版本控制系统 ### novel_types.txt 小说类型列表文件,每行一个类型: ``` 爽文 修真 穿越 都市 玄幻 仙侠 历史 科幻 言情 悬疑 ``` **说明**: - 可通过界面"管理类型"功能添加/删除 - 支持自定义类型 - 修改后立即生效 --- ## 常见问题 ### 1. API Key 相关问题 **Q: 如何设置 API Key?** A: 点击底部"⚙ 设置 API Key"按钮,输入您的 API Key 并保存。 **Q: API Key 保存在哪里?** A: 保存在程序目录下的 `config.json` 文件中。 **Q: 如何修改 API Key?** A: 再次打开设置对话框,修改后保存即可。 **Q: 程序启动时提示 API Key 未配置?** A: 请先设置 API Key,状态栏会显示配置状态。 ### 2. 生成相关问题 **Q: 生成内容时提示网络错误?** A: 请检查: - 网络连接是否正常 - API Key 是否正确 - 是否需要配置代理 **Q: 生成的内容被截断?** A: 章节内容生成时会控制在 6500-8500 字之间,确保完整性和连贯性。 **Q: 如何保存生成的内容?** A: 每个模块都有"保存"按钮,可以将内容保存为文本文件。 ### 3. 文件操作问题 **Q: 如何加载之前保存的大纲/设定?** A: 在对应的标签页点击"加载"按钮,选择之前保存的文件。 **Q: 生成的文件保存在哪里?** A: 默认保存在程序目录下的 `word/` 文件夹中,按小说名称分类。 **Q: 可以修改已生成的内容吗?** A: 可以,在章节写作页面点击"查看"按钮,可以查看和编辑内容。 ### 4. 其他问题 **Q: 如何添加自定义小说类型?** A: 在基础设置页面点击"📝 管理类型"按钮,可以添加/删除类型。 **Q: 程序运行缓慢?** A: AI 生成内容需要时间,请耐心等待。生成过程中会显示进度提示。 **Q: 支持哪些小说频道和类型?** A: 支持男频和女频,类型可以自定义添加。 --- ## 开发说明 ### 代码结构 ``` novel_generator.py ├── ConfigManager # 配置管理 ├── APIConfig # API 配置 ├── StreamWorker # 后台线程 ├── ApiKeyDialog # API Key 设置对话框 ├── ArticleViewDialog # 文章查看对话框 ├── NovelTypeDialog # 类型管理对话框 └── NovelGeneratorWindow # 主窗口 ├── create_basic_tab() # 基础设置标签页 ├── create_outline_tab() # 大纲生成标签页 ├── create_character_tab() # 人物设定标签页 ├── create_chapter_tab() # 章节大纲标签页 └── create_write_tab() # 章节写作标签页 ``` ### 关键设计模式 1. **单例模式**:ConfigManager 和 APIConfig 使用静态方法 2. **观察者模式**:使用 PyQt 信号槽机制 3. **多线程**:StreamWorker 避免阻塞 UI 4. **MVC 模式**:分离 UI 和业务逻辑 ### 扩展建议 - 支持更多 AI 模型 - 添加章节内容批量生成 - 支持导出为 Word/PDF 格式 - 添加章节内容预览功能 - 支持多语言界面 --- ## 许可证 本项目仅供学习和研究使用。 --- ## 更新日志 ### v1.0.0 - ✅ 实现基础设置功能 - ✅ 实现小说大纲生成 - ✅ 实现人物设定生成 - ✅ 实现章节大纲生成 - ✅ 实现章节内容生成 - ✅ 实现 API Key 持久化保存 - ✅ 实现内容保存和加载功能 - ✅ 实现小说类型管理功能 --- ## 联系方式 ![输入图片说明](https://foruda.gitee.com/images/1762593643427162174/f14959cf_7528805.jpg "屏幕截图") --- **祝您创作愉快!** 📚✨