Files
AI_NovelGenerator/README.md
T
2025-01-29 22:18:07 +08:00

150 lines
4.9 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.
**自动小说生成工具**
**核心功能:**
**小说设定**(世界观、人物、剧情结构)
**章节生成**(多步生成,确保逻辑连贯)
**角色状态 & 伏笔管理**(追踪人物发展)
**向量检索**(保证长篇小说上下文一致)
**一致性检查**(防止剧情冲突)
**GUI 友好交互**(可配置 & 直观操作)
# **部署与使用指南**
## **1. 环境要求**
在开始之前,请确保你的系统满足以下要求:
- **Python 3.8+**
- **pip 已安装**Python 包管理器)
- **API 访问权限**(支持OpenAI API方式的任何AI,中文推荐使用DeepSeek)
---
## **2. 安装依赖**
**手动安装以下依赖**
```bash
pip install openai langchain chromadb langchain_openai langchain_chroma langgraph typing_extensions
```
---
## **3. 项目结构**
克隆或下载本项目后,你会看到如下结构:
```plaintext
.
├── main.py # 入口文件,运行 GUI
├── ui.py # 图形界面
├── novel_generator.py # 章节生成核心逻辑
├── consistency_checker.py # 一致性检查 (防止剧情冲突)
├── prompt_definitions.py # 预定义的 AI 提示词
├── utils.py # 通用工具函数 (文件操作)
├── config_manager.py # 处理配置信息 (API Key, Base URL)
├── config.json # 用户配置文件 (可选)
└── vectorstore/ # (可选) 存储向量数据库
```
---
## **4. 配置 API Key**
运行前,你需要**配置 API Key** 以便调用 OpenAI 或本地 LLM。
### **方式 1:手动修改 `config.json`**
`config.json` 文件中填入:
```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 直接输入**
- 启动程序后,在 GUI 中输入 `API Key` 并选择 `Base URL`,然后**点击 "保存配置"** 以存储到 `config.json`
---
## **5. 运行程序**
### **方式 1:使用 `Python` 运行**
```bash
python main.py
```
程序启动后,你会看到一个图形界面,方便用户交互。
### **方式 2:打包成可执行文件**
如果你希望**打包成可执行文件**(避免 Python 依赖),可以使用 `PyInstaller`
```bash
pip install pyinstaller
pyinstaller --onefile --windowed main.py
```
这样会在 `dist/` 目录下生成 `main.exe`Windows)或 `main`Linux/macOS)。
---
## **6. 使用指南**
### **步骤 1:设置小说参数**
在 GUI 界面:
1. **输入 API Key & Base URL**(或使用 `config.json`)。
2. **选择模型**(如 `gpt-4o`)。
3. **输入小说主题**(如 "未来世界中的 AI 革命")。
4. **选择小说类型**(如 "科幻"、"奇幻"、"悬疑")。
5. **设置章节数和每章字数**(如 10 章,每章 3000 字)。
6. **选择存储路径**(建议创建 `novels/` 目录)。
### **步骤 2:生成小说设定 & 目录**
点击 **"1. 生成设定 & 目录"**,系统将:
- 生成**世界观设定**`Novel_setting.txt`)。
- 生成**章节目录**`Novel_directory.txt`)。
### **步骤 3:生成章节**
点击 **"2. 生成单章"**,系统将:
- 读取**上一章节内容**`lastchapter.txt`)。
- 通过**向量检索**查找相关背景信息。
- **动态调整角色状态**`character_state.txt`)。
- **生成完整章节**,并保存到 `chapters/chapter_X.txt`
### **步骤 4:一致性检查(可选)**
点击 **"3. 一致性审校"**,系统将:
- 检查**角色行为、剧情逻辑**是否前后矛盾。
- 识别是否有**未解伏笔**,保证故事合理性。
---
## **7. 生成文件管理**
所有生成的文件存储在你选择的目录下:
```plaintext
output_directory/
├── Novel_setting.txt # 小说世界观 & 角色设定
├── Novel_directory.txt # 章节目录
├── lastchapter.txt # 最新章节 (供 AI 参考)
├── character_state.txt # 角色状态 (道具、情感、技能)
├── global_summary.txt # 小说摘要
└── chapters/ # 所有章节
├── chapter_1.txt
├── chapter_2.txt
├── chapter_3.txt
└── ...
```
---
## **8. 可能遇到的问题**
### **1. `Chroma' object has no attribute 'persist'`**
**原因:** `Chroma` 版本问题。
**解决方案:**
```bash
pip uninstall chromadb
pip install chromadb==0.3.21 # 或尝试其他版本
```
如果仍然报错,可以在 `novel_generator.py` 里**注释 `store.persist()`**。
---
### **2. 生成内容不符合预期**
**可能的原因:**
- 主题不够清晰,可以在 `topic` 字段中添加详细设定(如 `“废土世界 + AI 叛乱”`)。
- 角色设定较少,可手动在 `Novel_setting.txt` 里补充。