# 知识库维护系统 - 整体流程图 ## 1. 用户交互流程(接收链接) ```mermaid flowchart TD A[用户发送链接] --> B{技能1: 链接解析} B --> C{类型判断} C -->|单个内容| D[直接解析] C -->|列表类型| E[询问用户] E --> F[处理范围选择] F --> G[订阅选项选择] G --> H[写入订阅配置] D --> I[写入收件箱 pending/] H --> I I --> J[返回用户: 已收录] ``` ## 2. 定时任务/手动触发流程 ```mermaid flowchart TD A[定时任务触发
或手动触发] --> B[技能5: 工作流编排] B --> C[扫描收件箱] C --> D{pending/ 目录} D -->|有待处理| E[获取待处理列表] D -->|无| F[检查订阅更新] E --> G[技能2: 获取元数据] G --> H[更新状态: metadata_ready] H --> I[技能3: 获取内容] I --> J[更新状态: content_ready] J --> K[技能4: 深度分析] K --> L[归档到 archive/] L --> M[更新订阅追踪] M --> N[继续处理下一个] F --> O{有订阅?} O -->|是| P[检测更新] P --> Q[新增内容加入 pending/] Q --> R[更新订阅时间] O -->|否| S[跳过] N --> T{还有待处理?} T -->|是| E T -->|否| U[生成汇报文件] U --> V[完成] ``` ## 3. 完整主流程(简化版) ```mermaid flowchart TD subgraph 用户交互 A[用户发送链接] --> B[技能1: link-parser] B --> C{内容类型} C -->|单个| D[直接处理] C -->|列表| E[询问用户选项] E --> F[保存订阅配置] D --> G[写入收件箱 pending/] F --> G end subgraph 定时处理 H[定时/手动触发] --> I[技能5: kb-workflow] I --> J[扫描收件箱] J --> K[技能2: metadata-fetcher] K --> L[技能3: content-fetcher] L --> M[技能4: deep-analyzer] M --> N[归档] N --> O[更新订阅] O --> P[生成汇报] end G --> H style A fill:#e1f5fe style I fill:#fff3e0 style K fill:#f3e5f5 style L fill:#e8f5e9 style M fill:#fce4ec ``` ## 4. 各平台技能调用关系 ```mermaid flowchart LR subgraph 技能1 LP[link-parser] end subgraph 技能2[元数据获取] BM[bilibili-metadata] YM[ youtube-metadata] ZM[ zhihu-metadata] end subgraph 技能3[内容获取] BC[bilibili-content] OC[ocr-processor] end subgraph 技能4 DA[deep-analyzer] end LP -->|解析结果| BM LP -->|解析结果| YM LP -->|解析结果| ZM BM -->|元数据| BC BC -->|低分视频| OC OC -->|OCR结果| DA BM -->|元数据| DA ``` ## 5. 数据流转 ```mermaid flowchart LR subgraph 输入 URL[用户链接] end subgraph 收件箱 P[pending/] M[metadata/] C[content/] end subgraph 输出 A[archive/YYYY/MM/] R[report.json] end URL -->|技能1| P P -->|技能2| M M -->|技能3| C C -->|技能4| A A -.->|统计| R style P fill:#fffde7 style M fill:#e3f2fd style C fill:#e8f5e9 style A fill:#f3e5f5 ``` ## 6. 状态流转 ```mermaid stateDiagram-v2 [*] --> pending: 链接收录 pending --> metadata: 技能2完成 metadata --> content: 技能3完成 content --> analyzed: 技能4完成 analyzed --> archived: 归档完成 archived --> [*] pending --> skipped: 跳过 metadata --> failed: 元数据获取失败 content --> failed: 内容获取失败 analyzed --> failed: 分析失败 failed --> retry: 重试 retry --> pending retry --> metadata retry --> content ```