TravelContentCreator/docs/ARCHITECTURE_CLEANUP.md

220 lines
8.0 KiB
Markdown
Raw Normal View History

# 项目架构分析与清理计划
> 更新时间: 2024-12-10
## 目录结构概览
```
TravelContentCreator/
├── api/ # ✅ 活跃 - FastAPI 路由
├── domain/ # ✅ 活跃 - 核心业务逻辑
├── poster_v2/ # ✅ 活跃 - 新海报系统
├── prompts/ # ✅ 活跃 - Prompt 模板
├── core/ # ✅ 精简 - AI + 配置
├── libs/ # ✅ 工具库 - MediaCrawler + utils
├── assets/ # ✅ 资源 - 字体/图片
├── scripts/ # ✅ 脚本 - 测试脚本
├── docs/ # ✅ 文档
├── _archived/ # 🗃️ 已归档 - 可删除
├── result/ # 📁 输出 - 可清理
└── data/ # 📁 数据 - 临时文件
```
---
## 模块状态
### ✅ 活跃模块 (正在使用)
| 模块 | 路径 | 说明 |
|-----|------|------|
| **API 路由** | `api/routers/` | aigc, prompt, reference, hotspot |
| **AIGC 引擎** | `domain/aigc/engines/` | topic_generate, content_generate, poster_smart_v2 |
| **Prompt 管理** | `domain/prompt/` | PromptRegistry, ReferenceManager |
| **热点爬虫** | `domain/hotspot/` | 百度、Bing、日历、小红书 |
| **海报 V2** | `poster_v2/` | 5 种布局Fabric JSON 输出 |
| **AI Agent** | `core/ai/` | AIAgent, AIModelConfig |
| **配置** | `core/config_loader.py` | 统一配置加载 |
### ⚠️ 部分失效模块 (需评估)
| 模块 | 路径 | 状态 | 建议 |
|-----|------|------|------|
| `core/content_service.py` | 旧内容服务 | 已被 V2 引擎取代 | 可删除 |
| `core/integration_service.py` | 旧集成服务 | 依赖数据库 | 可删除 |
| `core/media_manager.py` | 媒体管理 | 部分使用 | 保留 |
| `core/models.py` | 数据模型 | 部分使用 | 评估 |
| `core/cookie_manager.py` | Cookie | 未使用 | 可删除 |
| `core/document_adapter.py` | 文档适配 | 未使用 | 可删除 |
| `core/xhs_adapter.py` | 小红书适配 | 未使用 | 可删除 |
| `poster/` | 旧海报系统 | 已被 poster_v2 取代 | 可删除 |
### 🗃️ 已归档模块 (_archived/)
| 模块 | 说明 | 建议 |
|-----|------|------|
| `database_service.py` | 数据库服务 | 已不再使用 |
| `integration.py` | 旧集成 | 已不再使用 |
| `tweet.py` | 推文生成 | 已不再使用 |
| `xhs_spider/` | 旧爬虫 | 已被 MediaCrawler 取代 |
---
## API 路由状态
### ✅ 活跃路由
```python
# api/main.py
app.include_router(aigc.router, prefix="/api/v2") # AIGC 引擎
app.include_router(reference.router, prefix="/api/v2") # 参考文献
app.include_router(hotspot.router, prefix="/api/v2") # 热点数据
app.include_router(prompt.router, prefix="/api/v1") # Prompt 管理
```
### ❌ 已禁用路由
```python
# 以下路由依赖已删除的模块,已在 main.py 中注释
# app.include_router(tweet.router)
# app.include_router(poster.router)
# app.include_router(document.router)
# app.include_router(data.router)
# app.include_router(integration.router)
# app.include_router(content_integration.router)
```
---
## 引擎状态
### ✅ 可用引擎
| 引擎 ID | 类 | 版本 | 状态 |
|--------|-----|------|------|
| `topic_generate` | TopicGenerateEngineV2 | 2.0.0 | ✅ |
| `content_generate` | ContentGenerateEngineV2 | 2.1.0 | ✅ |
| `poster_smart_v2` | PosterSmartEngineV2 | 2.0.0 | ✅ |
### ⚠️ 旧引擎 (可清理)
| 引擎 | 文件 | 说明 |
|-----|------|------|
| `poster_generate` | `poster_generate_v2.py` | 旧海报,依赖 poster/ |
| `poster_generate_v3` | `poster_generate_v3.py` | 中间版本 |
| `poster_smart_v1` | `poster_smart_v1.py` | poster_smart_v2 前身 |
---
## 存储占用
| 目录 | 大小 | 说明 |
|-----|------|------|
| `assets/` | 215MB | 字体、图片资源 |
| `libs/` | 39MB | MediaCrawler |
| `result/` | 22MB | 测试输出,可清理 |
| `data/` | 8.1MB | 临时数据 |
| `static/` | 4.1MB | 静态文件 |
| `tests/` | 3.8MB | 测试文件 |
---
## 清理计划
### Phase 1: 立即可删除
```bash
# 旧海报系统 (已被 poster_v2 取代)
rm -rf poster/
# 旧核心模块 (未使用)
rm core/content_service.py
rm core/integration_service.py
rm core/cookie_manager.py
rm core/document_adapter.py
rm core/xhs_adapter.py
# 清理测试输出
rm -rf result/poster_smart_test/
rm -rf result/poster_v2_test/
```
### Phase 2: 评估后删除
```bash
# 评估 core/models.py 是否仍被引用
grep -r "from core.models" --include="*.py"
grep -r "from core import models" --include="*.py"
# 评估旧引擎是否仍被调用
grep -r "poster_generate_v2" --include="*.py"
grep -r "poster_smart_v1" --include="*.py"
```
### Phase 3: 归档目录清理
```bash
# _archived 已是归档目录,可保留或完全删除
# 如果确认不需要,可以删除
rm -rf _archived/
```
---
## 依赖关系图
```
┌─────────────────────────────────────────────────────────────┐
│ API Layer │
│ api/routers/aigc.py → EngineExecutor → Engines │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Engine Layer │
│ │
│ topic_generate_v2 ─────┐ │
│ content_generate_v2 ───┼──→ PromptRegistry │
│ poster_smart_v2 ───────┘ │ │
│ │ ▼ │
│ │ domain/prompt/ │
│ │ │ │
│ ▼ ▼ │
│ poster_v2/ ReferenceManager │
│ (5 layouts) (titles.yaml, contents.yaml) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Core Layer │
│ │
│ core/ai/ai_agent.py ───→ OpenAI API │
│ core/config_loader.py ─→ config/app_config.yaml │
└─────────────────────────────────────────────────────────────┘
```
---
## 推荐清理顺序
1. **备份** - `git tag v2.0-pre-cleanup`
2. **删除 poster/** - 旧海报系统
3. **清理 core/** - 未使用的服务
4. **删除旧引擎** - poster_generate_v2, v3, poster_smart_v1
5. **清理 result/** - 测试输出
6. **评估 _archived/** - 确认后删除
---
## 当前可用功能总结
| 功能 | 入口 | 状态 |
|-----|------|------|
| 选题生成 | `POST /api/v2/aigc/execute` | ✅ |
| 内容生成 | `POST /api/v2/aigc/execute` | ✅ |
| 海报生成 | `POST /api/v2/aigc/execute` | ✅ |
| Prompt 管理 | `/api/v1/prompt/*` | ✅ |
| 参考文献 | `/api/v2/reference/*` | ✅ |
| 热点数据 | `/api/v2/hotspot/*` | ✅ |
| 配置查询 | `/api/v2/aigc/config/*` | ✅ |