|
|
@@ -30,32 +30,63 @@ DeepCast 旨在解决现代人在海量碎片化信息中难以获取深度知
|
|
|
|
|
|
```
|
|
|
.
|
|
|
-├─ backend/ # 后端服务(FastAPI + 研究智能体)
|
|
|
-│ ├─ src/ # 业务源码
|
|
|
-│ │ ├─ agent.py # 研究流程编排器
|
|
|
-│ │ ├─ config.py # 配置与环境变量加载
|
|
|
-│ │ ├─ main.py # FastAPI 入口
|
|
|
-│ │ ├─ models.py # 数据模型
|
|
|
-│ │ ├─ prompts.py # 任务/报告/脚本提示词
|
|
|
-│ │ ├─ utils.py # 工具函数
|
|
|
-│ │ └─ services/ # 业务服务
|
|
|
-│ │ ├─ search.py # 搜索与多源检索
|
|
|
-│ │ ├─ summarizer.py # 任务总结
|
|
|
-│ │ ├─ reporter.py # 报告生成
|
|
|
-│ │ ├─ script_generator.py # 播客脚本生成
|
|
|
-│ │ ├─ audio_generator.py # TTS 语音生成
|
|
|
-│ │ └─ audio_synthesizer.py # 音频合成
|
|
|
-│ ├─ output/ # 输出目录
|
|
|
-│ │ ├─ notes/ # 任务笔记与报告沉淀
|
|
|
-│ │ └─ audio/ # 生成的音频文件
|
|
|
-│ ├─ scripts/ # 开发与验证脚本
|
|
|
-│ ├─ env.example # 环境变量示例
|
|
|
-│ └─ pyproject.toml # Python 项目配置
|
|
|
-├─ frontend/ # 前端(Vue 3 + Vite)
|
|
|
-│ ├─ src/ # 前端源码
|
|
|
-│ └─ index.html # 入口页面
|
|
|
-├─ docs/ # 文档与设计说明
|
|
|
-└─ README.md # 项目说明
|
|
|
+├─ backend/ # 后端服务(FastAPI + 研究智能体)
|
|
|
+│ ├─ src/ # 核心业务源码
|
|
|
+│ │ ├─ main.py # FastAPI 入口 & SSE 流式接口
|
|
|
+│ │ ├─ agent.py # DeepResearchAgent 核心编排器
|
|
|
+│ │ ├─ config.py # 配置中心(环境变量 / LLM / TTS)
|
|
|
+│ │ ├─ models.py # Pydantic 数据模型(TodoItem, SummaryState 等)
|
|
|
+│ │ ├─ prompts.py # 所有 Agent 的系统提示词模板
|
|
|
+│ │ ├─ utils.py # 通用工具函数
|
|
|
+│ │ └─ services/ # 解耦的业务服务层
|
|
|
+│ │ ├─ planner.py # 研究规划(课题拆解为 TodoItem)
|
|
|
+│ │ ├─ search.py # 混合搜索(Tavily + SerpApi)
|
|
|
+│ │ ├─ summarizer.py # 单任务搜索结果摘要
|
|
|
+│ │ ├─ reporter.py # 综合研究报告生成
|
|
|
+│ │ ├─ script_generator.py # 报告 → 双人对谈脚本
|
|
|
+│ │ ├─ audio_generator.py # TTS 逐句语音合成
|
|
|
+│ │ ├─ audio_synthesizer.py # FFmpeg 多段音频拼接
|
|
|
+│ │ ├─ notes.py # 笔记持久化 & 索引管理
|
|
|
+│ │ ├─ text_processing.py # 文本清洗与预处理
|
|
|
+│ │ └─ tool_events.py # 工具调用事件处理
|
|
|
+│ ├─ scripts/ # 开发 & 验证脚本
|
|
|
+│ │ ├─ verify_ecnu_llm.py # 验证 LLM 连通性
|
|
|
+│ │ ├─ verify_ecnu_tts.py # 验证 TTS 服务
|
|
|
+│ │ ├─ verify_ffmpeg.py # 检查 FFmpeg 可用性
|
|
|
+│ │ ├─ verify_search.py # 测试搜索 API
|
|
|
+│ │ ├─ test_agent_workflow.py # 端到端工作流测试
|
|
|
+│ │ └─ test_audio_generator.py # 音频生成单元测试
|
|
|
+│ ├─ output/ # 运行时输出(.gitignore)
|
|
|
+│ │ ├─ notes/ # Markdown 笔记 + notes_index.json
|
|
|
+│ │ └─ audio/ # 逐句 MP3 + 最终 podcast_*.mp3
|
|
|
+│ ├─ env.example # 环境变量模板
|
|
|
+│ ├─ pyproject.toml # Python 项目元数据 & 依赖
|
|
|
+│ └─ requirements.txt # pip 依赖清单
|
|
|
+├─ frontend/ # 前端应用(Vue 3 + Vite + TypeScript)
|
|
|
+│ ├─ src/
|
|
|
+│ │ ├─ App.vue # 根组件(主界面)
|
|
|
+│ │ ├─ main.ts # Vue 应用入口
|
|
|
+│ │ ├─ style.css # 全局样式(Tailwind CSS)
|
|
|
+│ │ └─ services/
|
|
|
+│ │ └─ api.ts # SSE 流式通信(fetch + ReadableStream)
|
|
|
+│ ├─ index.html # HTML 入口
|
|
|
+│ ├─ vite.config.ts # Vite 构建 & 代理配置
|
|
|
+│ ├─ tsconfig.json # TypeScript 配置
|
|
|
+│ └─ package.json # 前端依赖 & 脚本
|
|
|
+├─ .github/ # GitHub 配置
|
|
|
+│ └─ copilot-instructions.md # Copilot 编码指引
|
|
|
+└─ README.md # 本文件
|
|
|
+```
|
|
|
+
|
|
|
+### 数据流转路径
|
|
|
+
|
|
|
+```
|
|
|
+用户输入主题
|
|
|
+ → PlanningService(smart_llm)→ TodoItem[] 任务列表
|
|
|
+ → [并行工作线程] SearchTool → SummarizationService(fast_llm)
|
|
|
+ → ReportingService(smart_llm)→ report.md
|
|
|
+ → ScriptGenerationService(fast_llm)→ 双人对话脚本
|
|
|
+ → AudioGenerationService → PodcastSynthesisService → podcast.mp3
|
|
|
```
|
|
|
|
|
|
## 🚀 快速开始
|