# 项目架构分析与清理计划 > 更新时间: 2024-12-10 ## 目录结构概览 ``` TravelContentCreator/ ├── api/ # ✅ 活跃 - FastAPI 路由 ├── domain/ # ✅ 活跃 - 核心业务逻辑 ├── poster_v2/ # ✅ 活跃 - 新海报系统 ├── prompts/ # ✅ 活跃 - Prompt 模板 ├── core/ # ⚠️ 部分失效 - 旧核心模块 ├── poster/ # ⚠️ 部分失效 - 旧海报系统 ├── _archived/ # 🗃️ 已归档 - 废弃代码 ├── libs/ # ✅ 第三方 - MediaCrawler ├── assets/ # ✅ 资源 - 字体/图片 ├── result/ # 📁 输出 - 测试结果 ├── scripts/ # ✅ 脚本 - 测试脚本 ├── docs/ # ✅ 文档 └── 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/*` | ✅ |