# Online-Novel-AI-Assistant **Repository Path**: kanonkanon/online-novel-ai-assistant ## Basic Information - **Project Name**: Online-Novel-AI-Assistant - **Description**: 使用ai写小说 - **Primary Language**: Python - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 3 - **Created**: 2025-08-31 - **Last Updated**: 2026-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网文小说AI助手 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg) ![Platform](https://img.shields.io/badge/platform-windows%20%7C%20linux%20%7C%20macos-lightgrey.svg) 网文小说AI助手是一个基于人工智能技术的网文创作辅助工具,旨在帮助作者自动生成高质量的网络小说内容。该工具利用大语言模型(LLM)技术,结合用户的想法与要求,能够自动生成小说大纲、章节内容,并通过AI读者和AI编辑的反馈机制不断优化内容质量。 ## 目录 - [项目特点](#项目特点) - [功能特性](#功能特性) - [技术架构](#技术架构) - [安装指南](#安装指南) - [使用方法](#使用方法) - [配置说明](#配置说明) - [开发指南](#开发指南) - [常见问题](#常见问题) - [贡献指南](#贡献指南) - [许可证](#许可证) ## 项目特点 - **智能化创作**:利用先进的大语言模型技术,自动生成符合要求的小说内容 - **多角色协同**:AI作家、AI读者、AI编辑三个角色协同工作,确保内容质量 - **灵活部署**:支持云端API和本地模型两种运行模式 - **可视化界面**:直观的图形用户界面,操作简单易用 - **质量控制**:内置质量评估和优化机制,确保生成内容符合标准 ## 功能特性 ### 核心功能 1. **小说大纲生成**:根据用户提供的小说题材和要求,自动生成完整的小说大纲 2. **章节内容创作**:基于大纲和用户要求,逐章生成小说内容 3. **AI质量控制**:内置AI读者和AI编辑角色,对生成内容进行评价和审核 4. **多AI协同机制**:AI作家、AI读者、AI编辑三个角色协同工作,确保内容质量 5. **本地模型支持**:支持运行本地大语言模型,保护用户隐私数据 6. **角色管理**:支持小说角色的创建和管理 7. **世界观生成**:可自动生成符合要求的小说世界观设定 ### 技术特色 1. **多模型支持**:支持多种大语言模型,包括云端API模型和本地模型 2. **迭代优化机制**:通过AI读者反馈不断优化生成内容 3. **质量控制流程**:AI编辑对内容进行最终审核,确保质量达标 4. **可视化界面**:基于PyQt5的图形用户界面,操作简便 5. **配置灵活**:支持云端和本地两种运行模式的灵活切换 6. **断点续传**:支持中断后继续生成,避免重复工作 7. **内容导出**:支持将生成的小说内容导出为文本文件 ## 技术架构 ### 系统架构图 ``mermaid graph TD A[用户界面] --> B[主程序模块] B --> C[AI角色系统] B --> D[工作线程模块] B --> E[工具函数模块] B --> F[对话框模块] B --> G[设置加载模块] C --> H[AI作家] C --> I[AI读者] C --> J[AI编辑] C --> K[AI资深作家] D --> L[大纲生成线程] D --> M[章节生成线程] D --> N[章节队列线程] E --> O[内容解析函数] E --> P[数据清理函数] E --> Q[章节提取函数] F --> R[设置对话框] F --> S[本地设置对话框] F --> T[小说设置对话框] ``` ### 核心模块 1. **主程序模块 ([main.py](file:///D:/Online-Novel-AI-Assistant/main.py))** - 程序入口点 - 用户界面管理 - 模块协调与调度 2. **AI角色系统 ([ai_roles.py](file:///D:/Online-Novel-AI-Assistant/ai_roles.py))** - AI作家:负责小说内容创作 - AI读者:负责内容评价和反馈 - AI编辑:负责内容审核和修改 - AI资深作家:负责高级内容创作 3. **工作线程模块 ([workers.py](file:///D:/Online-Novel-AI-Assistant/workers.py))** - 大纲生成线程 - 章节生成线程 - 章节队列管理线程 4. **工具函数模块 ([utils.py](file:///D:/Online-Novel-AI-Assistant/utils.py))** - 内容解析函数 - 数据清理函数 - 章节提取函数 5. **对话框模块 ([dialogs.py](file:///D:/Online-Novel-AI-Assistant/dialogs.py))** - 设置对话框 - 本地设置对话框 - 小说设置对话框 ## 安装指南 ### 系统要求 - 操作系统:Windows 10/11, Linux, macOS - Python版本:3.8或更高版本 - 内存:至少8GB RAM(推荐16GB以上) - 存储空间:至少10GB可用空间(用于存储模型文件) ### 依赖安装 1. 克隆项目代码: ```bash git clone cd Online-Novel-AI-Assistant ``` 2. 安装Python依赖: ```bash pip install PyQt5 dashscope ``` 主要依赖包说明: - PyQt5: 图形界面库,用于构建用户界面 - dashscope: 阿里云百炼平台API接口,用于调用云端大模型 - llama-cpp-python: 本地模型运行库(可选,用于运行本地模型) 注意:如果需要使用本地模型功能,还需要额外安装llama-cpp-python: ```bash pip install llama-cpp-python ``` ### 模型配置 #### 云端模型配置 1. 注册阿里云账号并获取API Key 2. 在程序设置中填入API Key和模型名称 #### 本地模型配置 1. 下载支持的GGUF格式模型文件(如qwen3-8b-q4_k_m.gguf) 2. 将模型文件放置在[models](file:///D:/Online-Novel-AI-Assistant/models/)目录下 3. 在本地设置中启用本地模型并指定模型路径 注意:本地模型文件较大(通常几GB),请确保有足够的存储空间。推荐使用量化版本的模型以减少内存占用。 ## 使用方法 ### 启动程序 ```bash python main.py ``` 首次运行时,程序会自动创建必要的配置文件。 ### 基本操作流程 1. **设置配置** - 点击顶部菜单栏"设置"→"参数设置"配置云端模型 - 或点击"设置"→"本地设置"配置本地模型路径 - 根据需要调整温度参数等模型设置(推荐值0.1-0.5) 2. **创建小说** - 在下拉菜单中选择小说类型(玄幻、仙侠、都市等) - 在"小说内容要求"文本框中输入详细的小说要求 - (可选)点击"生成世界观"按钮生成详细的世界观设定 3. **生成大纲** - 点击"生成大纲"按钮,AI将根据要求生成小说大纲 - 生成的大纲会显示在左侧列表中 - 可以选择大纲中的章节进行后续创作 4. **章节创作** - 点击"开始生成"按钮,AI将逐章生成小说内容 - 系统会自动进行质量控制和优化 - 生成过程会在中间的"AI角色输出窗口"中显示进度 - 最终结果会显示在中间下方的"小说最终结果窗口"中 5. **导出小说** - 点击顶部菜单栏"文件"→"导出小说"选项 - 选择导出格式和保存路径 - 当前支持导出为文本文件格式 ### 高级功能 1. **角色管理** - 在右侧"角色列表"中可以添加和管理小说角色 - 角色信息会在创作过程中被AI参考 - 可以通过勾选角色来指定在创作中重点描述的角色 2. **质量控制** - AI读者会对每章内容进行评分(1-10分) - 评分低于9分的内容会自动重新生成 - AI编辑会对内容进行最终审核 - 用户可以通过"中断生成"按钮停止生成过程 3. **小说设置** - 点击"小说设置"按钮可以设置章节数量和每章字数 - 系统会根据设置自动计算总字数 - 这些设置会影响AI生成内容的长度和详细程度 ## 配置说明 ### 配置文件 1. **settings.json**:云端模型配置文件(本地配置,不会提交到仓库) - temperature:模型温度参数 - 各种AI角色的API Key和模型名称 2. **settings_template.json**:云端模型配置模板文件(用于初始化 settings.json) - 提供 settings.json 的模板结构 - 包含所有必要的配置项和示例值 - 开发者需要复制此文件并重命名为 settings.json,然后填入自己的配置 3. **local_settings.json**:本地模型配置文件 - use_local:是否使用本地模型 - 各种AI角色的本地模型路径 4. **novel_settings.json**:小说设置文件 - 章节数量、每章字数等参数 ### 参数说明 - **温度参数**:控制模型输出的随机性,值越低输出越确定,值越高越随机(推荐0.1-0.5) - **迭代限制**:AI读者不满意时的最大重试次数(默认值为3) - **字数要求**:每章的最低字数要求 - **模型路径**:本地模型文件的完整路径或相对路径 ### 配置示例 **settings.json**示例: ```json { "temperature": 0.1, "writer_key": "your_api_key_here", "writer_model": "qwen-plus", "reader_key": "your_api_key_here", "reader_model": "qwen-plus" } ``` **local_settings.json**示例: ```json { "use_local": true, "writer_local_model": "./models/qwen3-8b-q4_k_m.gguf" } ``` ### 配置文件管理 项目使用 Git 的 `--skip-worktree` 功能来管理 [settings.json](file://d:\gitee\online-novel-ai-assistant\settings.json) 文件: 1. **初始提交**: - [settings.json](file://d:\gitee\online-novel-ai-assistant\settings.json) 作为模板文件已提交到仓库 - 文件中包含示例配置和占位符值 2. **停止跟踪更改**: - 使用 `git update-index --assume-unchanged settings.json` 命令停止跟踪文件更改 - 开发者可以修改文件内容而不会被 Git 跟踪 3. **个人配置**: - 每个开发者可以在 [settings.json](file://d:\gitee\online-novel-ai-assistant\settings.json) 中填入个人API密钥等敏感信息 - 这些更改不会被提交到仓库,保护了个人隐私 4. **注意事项**: - 不要删除或重命名 [settings.json](file://d:\gitee\online-novel-ai-assistant\settings.json) 文件 - 如果需要恢复跟踪,可以使用 `git add settings.json` 1. **首次使用**: ```bash # 从模板创建本地配置文件 cp settings.json ``` 2. **配置个人参数**: - 编辑 `settings.json` 文件 - 替换占位符值为实际的API密钥和其他配置 3. **注意事项**: - `settings.json` 文件已被 `.gitignore` 忽略,不会被提交到仓库 - 任何个人敏感信息(如API密钥)应仅保存在 `settings.json` 中 - 团队成员应各自维护自己的 `settings.json` 文件 ## 开发指南 ### 代码结构 ``` Online-Novel-AI-Assistant/ ├── main.py # 主程序入口 ├── ai_roles.py # AI角色定义 ├── workers.py # 工作线程实现 ├── utils.py # 工具函数 ├── dialogs.py # 对话框界面 ├── path/to/settings_loader.py # 设置加载器 ├── models/ # 本地模型文件目录 ├── llama.cpp/ # llama.cpp源码目录 ├── settings.json # 云端模型配置 ├── local_settings.json # 本地模型配置 ├── novel_settings.json # 小说设置 ├── novel_requirements.txt # 小说内容要求示例 ├── 审核规则.txt # 内容审核规则 └── 小说内容要求.txt # 小说内容要求说明 ``` ### 扩展开发 1. **新增AI角色** - 在[ai_roles.py](file:///D:/Online-Novel-AI-Assistant/ai_roles.py)中继承基础AI类 - 实现特定功能的generate_content方法 2. **自定义工作线程** - 在[workers.py](file:///D:/Online-Novel-AI-Assistant/workers.py)中创建新的Worker类 - 实现特定的run方法 3. **添加新功能模块** - 创建新的Python文件实现功能 - 在[main.py](file:///D:/Online-Novel-AI-Assistant/main.py)中集成新功能 ## 常见问题 ### 模型配置问题 1. **本地模型加载缓慢** - 确保模型文件完整且路径正确 - 检查系统内存是否充足 - 推荐使用量化版本的模型文件以减少内存占用 2. **云端API调用失败** - 检查API Key是否正确配置 - 确认网络连接正常 - 检查阿里云账户余额是否充足 3. **模型加载失败** - 检查模型文件路径是否正确 - 确认模型文件格式是否支持(推荐GGUF格式) - 查看控制台输出的错误信息 ### 内容生成问题 1. **生成内容质量不高** - 调整温度参数(建议0.1-0.5) - 提供更详细的小说要求 - 尝试更换不同的模型 2. **生成内容不符合要求** - 检查小说要求是否明确具体 - 在设置中调整模型参数 - 增加对特定情节或角色的描述 3. **生成过程中断或卡住** - 检查网络连接是否稳定(云端模型) - 确认系统资源是否充足 - 尝试降低每章字数设置 ### 界面操作问题 1. **界面无响应** - 等待当前任务完成,避免频繁操作 - 可以通过"中断生成"按钮停止长时间运行的任务 - 重启程序 2. **生成结果未保存** - 确认点击了"保存"按钮保存大纲 - 检查导出功能是否正确使用 - 查看程序运行目录下是否生成了相关文件 ### 性能优化建议 1. **提高生成速度** - 使用性能更强的硬件(推荐16GB以上内存) - 选择参数量较小的模型 - 降低温度参数值 2. **降低内存占用** - 关闭不必要的应用程序 - 使用量化版本的模型文件 - 减少同时运行的AI角色数量 3. **提高生成质量** - 提供更详细和具体的小说要求 - 增加迭代次数限制 - 使用更强大的模型 ## 贡献指南 欢迎对项目进行贡献!您可以通过以下方式参与: 1. 提交Bug报告 2. 提交功能请求 3. 提交代码改进 4. 完善文档说明 5. 提供测试用例 6. 翻译文档 请遵循标准的Git工作流程: 1. Fork项目仓库 2. 创建功能分支 3. 提交更改 4. 发起Pull Request 代码规范: - 遵循PEP 8 Python代码规范 - 添加必要的注释说明 - 确保代码兼容Python 3.8及以上版本 ## 许可证 本项目采用MIT许可证,详情请参见LICENSE文件。 ## 联系方式 如有任何问题或建议,请通过以下方式联系: - 提交Gitee Issue - 发送邮件至项目维护者邮箱 ## 版本更新日志 ### v1.0.0 - 初始版本发布 - 支持云端和本地模型 - 实现基本的小说生成功能 - 集成AI质量控制机制