# NovelGenerator - 智能小说创作助手

> 一个基于 HelloAgents 框架的智能小说辅助创作系统，助力创作者从灵感到完稿的全过程。

## 📝 项目简介

**NovelGenerator** 旨在利用大语言模型（LLM）的强大能力，为小说创作者提供智能化的辅助工具。它不仅仅是一个简单的文本生成器，而是一个能够理解故事结构、保持剧情连贯、并具备上下文记忆能力的创作伙伴。

该项目解决了长篇小说创作中的核心痛点：
- **大纲构建困难**：从模糊的灵感到结构化的大纲，AI 帮你梳理逻辑。
- **剧情连贯性**：在生成后续章节时，自动回顾前文情节和摘要，确保人物行为和剧情发展的合理性。
- **创作效率低**：支持批量生成章节，快速推进故事进度。

## ✨ 核心功能

- [x] **智能大纲生成**：根据用户输入的一句话创意、标题及标签，自动生成包含世界观、人物设定、分卷规划的详细大纲。
- [x] **上下文感知章节生成**：基于大纲和前序章节内容，生成连贯的新章节。支持自动回顾前几章摘要和上一章正文。
- [x] **多章连续创作**：支持一次性生成多个章节，AI 会自动维护剧情发展的连续性。
- [x] **内容管理系统**：
    - 自动保存生成的大纲和章节到本地文件（Markdown格式）。
    - 提供web界面通过 API 接口对内容进行读取、更新和删除。
- [x] **创作记忆机制**：自动提取并维护章节摘要和预测信息，作为后续创作的长期记忆。

## 🛠️ 技术栈

- **核心框架**: HelloAgents框架 - 提供 Agent 编排与工具调用能力，使用SimpleAgent。
- **Web 框架**: FastAPI -以此构建高性能的 RESTful API 服务。
- **数据模型**: Pydantic - 用于数据验证和结构定义。
- **文件存储**: 本地文件系统 (Markdown + JSON) - 方便用户直接查看和编辑生成的内容。
- **大语言模型**: 支持兼容 OpenAI 接口的模型（如 DeepSeek, Qwen 等，通过 .env 配置变量）。

## 🚀 快速开始

### 环境要求

- Python 3.10+

### 安装依赖

pip install -r requirements.txt

### 配置环境

1. 在项目根目录创建 `.env` 文件。
2. 配置你的 LLM 模型信息（参考 HelloAgents 文档或根据实际使用的模型填写）：

```
# .env 示例
LLM_PROVIDER=ollama # 或 openai, qwen 等
LLM_MODEL_ID=qwen2.5-72b-instruct
API_KEY=your_api_key
BASE_URL=http://localhost:11434/v1 # 如果使用本地 Ollama
LLM_TIMEOUT=60
HOST=127.0.0.1
PORT=8000
```

### 运行项目

#### 方式一：启动 API 服务（推荐）

启动后端服务，配合前端界面使用。

```bash
python src/app.py
# 或者
uvicorn src.app:app --reload
```

服务启动后，API 文档可访问：`http://127.0.0.1:8000/docs`


#### 方式二：运行测试脚本

如果你想直接在命令行测试生成效果，可以运行 `main.py`：

```bash
python main.py
```

## 📖 使用指南

1. **启动服务**：按照上述步骤启动 FastAPI 服务。
2. **前端交互**：打开 `frontend/index.html`（可以直接在浏览器打开，或通过简单的 HTTP 服务器托管）。
3. **创作流程**：
    - **创建项目**：输入小说标题和 ID。
    - **生成大纲**：输入你的核心创意（如“一个关于AI程序员穿越到代码世界的故事”），点击生成大纲。
    - **生成章节**：大纲生成确认无误后，进入章节生成页面，输入第一章的简要构思（可选），点击生成。
    - **查看与修改**：生成的章节会显示在列表中，你可以点击阅读，并进行手动修改保存。
![NovelGenerator Demo](data/image.png)
 
## 🎯 项目亮点

- **长文本一致性**：通过智能上下文管理和记忆机制，解决长篇生成中的逻辑崩坏问题。
- **结构化工作流**：还原作家真实创作路径（创意 -> 大纲 -> 章节），而非盲目生成。
- **数据完全掌控**：所有创作内容以 Markdown 本地存储，安全可控，方便二次编辑。
- **所见即所得**：提供直观的 Web 界面，实时预览生成效果，支持手动干预与调整。

## 📂 目录结构

```
NovelGenerator/
├── agents/                 # Agent 核心逻辑
│   ├── outline_agent.py    # 大纲生成 Agent
│   ├── chapter_generate_agent.py # 章节生成 Agent
│   └── prompt.py           # Prompt 模板
├── src/                    # API 服务代码
│   └── app.py              # FastAPI 应用入口
├── data/                   # 前端图片
│   └── image.png
├── frontend/               # 前端界面
│   └── index.html
├── outputs/                # 生成结果存储目录
├── main.py                 # 命令行测试脚本
└── README.md               # 项目文档
└── requirements.txt        # 项目依赖
```

## 🔮 未来计划（待定）

- [ ] 增加回退功能。
- [ ] 增加人物与事件、技能等知识图谱功能。
- [ ] 短篇小说生成功能。
- [ ] 引入更多样的小说风格。
- [ ] 优化前端界面体验。

## 🤝 贡献指南

欢迎提交 Issue 和 Pull Request！

## 📄 许可证

MIT License

## 👤 作者

- GitHub: [@lgs-only](https://github.com/lgs-only)
- Email: liangguangshi123@outlook.com

## 🙏 致谢

感谢Datawhale社区和Hello-Agents项目！
