Files
AI_NovelGenerator/README.md
T
pandarongandGitHub 62a1c01d06 Update README.md
修改说明,增加安装步骤
2025-02-06 21:01:59 +08:00

227 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📖 自动小说生成工具
## 2025/2/5说明
>当前**dev-2**分支采用了**雪花写作法、角色弧光理论、悬念三要素模型**的预设,尚在完善中,但就测试质量来说,小说质量会高于当前main分支效果。
<div align="center">
**核心功能**
| 功能模块 | 关键能力 |
|-------------------|----------------------------------|
| 🎨 小说设定工坊 | 世界观架构 / 角色设定 / 剧情蓝图 |
| 📖 智能章节生成 | 多阶段生成保障剧情连贯性 |
| 🧠 状态追踪系统 | 角色发展轨迹 / 伏笔管理系统 |
| 🔍 语义检索引擎 | 基于向量的长程上下文一致性维护 |
| 📚 知识库集成 | 支持本地文档参考 |
| ✅ 自动审校机制 | 检测剧情矛盾与逻辑冲突 |
| 🖥 可视化工作台 | 全流程GUI操作,配置/生成/审校一体化 |
</div>
> 一款基于大语言模型的多功能小说生成器,助您高效创作逻辑严谨、设定统一的长篇故事
---
## 📑 目录导航
1. [环境准备](#-环境准备)
2. [项目架构](#-项目架构)
3. [配置指南](#⚙️-配置指南)
4. [运行说明](#🚀-运行说明)
5. [使用教程](#📘-使用教程)
6. [疑难解答](#❓-疑难解答)
---
## 🛠 环境准备
确保满足以下运行条件:
- **Python 3.10+** 运行环境
- **pip** 包管理工具
- 有效API密钥:
- 云端服务:OpenAI / DeepSeek 等
- 本地服务:Ollama 等兼容 OpenAI 的接口
---
## 📥 安装说明
1. **下载项目**
- 通过 [GitHub](https://github.com) 下载项目 ZIP 文件,或使用以下命令克隆本项目:
```bash
git clone https://github.com/your-repo/project-name.git](https://github.com/YILING0013/AI_NovelGenerator
```
2. **安装编译工具**
- 访问 [Visual Studio Build Tools](https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/) 下载并安装编译工具。
- 安装时,默认只包含 MSBuild 工具,需手动勾选左上角列表栏中的 **C++ 桌面开发** 选项。
3. **安装依赖并运行**
- 打开终端,进入项目源文件目录:
```bash
cd AI_NovelGenerator
```
- 安装项目依赖:
```bash
pip install -r requirements.txt
```
- 安装完成后,运行主程序:
```bash
python main.py
```
## 🗂 项目架构
```
novel-generator/
├── main.py # 入口文件, 运行 GUI
├── ui.py # 图形界面
├── novel_generator.py # 章节生成核心逻辑
├── consistency_checker.py # 一致性检查, 防止剧情冲突
|—— chapter_directory_parser.py # 目录解析
|—— embedding_ollama.py # Ollama 本地服务的 Embedding 接口
├── prompt_definitions.py # 定义 AI 提示词
├── utils.py # 常用工具函数, 文件操作
├── config_manager.py # 管理配置 (API Key, Base URL)
├── config.json # 用户配置文件 (可选)
└── vectorstore/ # (可选) 本地向量数据库存储
```
---
## ⚙️ 配置指南
### 📌 基础配置(config.json
```json
{
"api_key": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXX",
"base_url": "https://api.openai.com/v1",
"interface_format": "OpenAI",
"model_name": "gpt-4o-mini",
"embedding_url": "https://api.openai.com/v1",
"embedding_model_name": "text-embedding-ada-002",
"temperature": 0.70,
"topic": "星穹铁道主角星穿越到原神提瓦特大陆,拯救提瓦特大陆,并与其中的角色展开爱恨情仇的小说",
"genre": "玄幻",
"num_chapters": 10,
"word_number": 2000,
"filepath": "C:/Users/Documents/test"
}
```
### 🔧 配置说明
1. **生成模型配置**
- `api_key`: 大模型服务的API密钥
- `base_url`: API终端地址(本地服务填Ollama等地址)
- `interface_format`: 接口模式
- `model_name`: 主生成模型名称(如gpt-4, claude-3等)
- `temperature`: 创意度参数(0-1,越高越有创造性)
2. **Embedding模型配置**
- `embedding_model_name`: 模型名称(如Ollama的nomic-embed-text
- `embedding_url`: 服务地址
3. **小说参数配置**
- `topic`: 核心故事主题
- `genre`: 作品类型
- `num_chapters`: 总章节数
- `word_number`: 单章目标字数
- `filepath`: 生成文件存储路径
---
## 🚀 运行说明
### **方式 1:使用 Python 解释器**
```bash
python main.py
```
执行后,GUI 将会启动,你可以在图形界面中进行各项操作。
### **方式 2:打包为可执行文件**
如果你想在无 Python 环境的机器上使用本工具,可以使用 **PyInstaller** 进行打包:
```bash
pip install pyinstaller
pyinstaller main.spec
```
打包完成后,会在 `dist/` 目录下生成可执行文件(如 Windows 下的 `main.exe`)。
---
## 📘 使用教程
1. **启动后,先完成基本参数设置:**
- **API Key & Base URL**(如 `https://api.openai.com/v1`
- **模型名称**(如 `gpt-3.5-turbo`、`gpt-4o` 等)
- **Temperature** (0~1,决定文字创意程度)
- **主题(Topic)**(如 “废土世界的 AI 叛乱”)
- **类型(Genre)**(如 “科幻”/“魔幻”/“都市幻想”)
- **章节数**、**每章字数**(如 10 章,每章约 3000 字)
- **保存路径**(建议创建一个新的输出文件夹)
2. **点击「Step1. 生成设定」**
- 系统将基于主题、类型、章节数等信息,生成:
- `Novel_setting.txt`:包含世界观、角色信息、雷点暗线等。
- 可以在生成后的 `Novel_setting.txt` 中查看或修改设定内容。
3. **点击「Step2. 生成目录」**
- 系统会根据已完成的 `Novel_setting.txt` 内容,为全部章节生成:
- `Novel_directory.txt`:包括每章标题和简要提示。
- 可以在生成后的文件中查看、修改或补充章节标题和描述。
4. **点击「Step3. 生成章节草稿」**
- 在生成章节之前,你可以:
- **设置章节号**(如写第 1 章,就填 `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. embedding模型需要显示指定接口和模型名称;
> 2. 使用**本地Ollama**的**Embedding**时需提前启动Ollama服务:
> ```bash
> ollama serve # 启动服务
> ollama pull nomic-embed-text # 下载/启用模型
> ```
> 3. 切换不同Embedding模型后建议清空vectorstore目录
> 4. 云端Embedding需确保对应API权限已开通
---
## ❓ 疑难解答
### Q1: 如何验证Embedding服务是否正常?
```python
# 测试脚本 test_embedding.py
from core.embedding import get_embedder
embedder = get_embedder()
test_text = "这是一个测试句子"
vector = embedder.embed_query(test_text)
print(f"向量维度: {len(vector)}") # 正常应输出预设维度数
```
### Q2: 本地Embedding响应缓慢怎么办?
- 检查模型是否已下载到本地
- 尝试较小尺寸的Embedding模型
- 增加Ollama服务的运行内存
### Q3: 如何切换不同的Embedding提供商?
在GUI界面中对应输入即可。
---
如有更多问题或需求,欢迎在**项目 Issues** 中提出。