refactor: 重构 deep_analyzer 一次性调用 AI 生成完整报告
This commit is contained in:
@@ -35,6 +35,12 @@
|
||||
2. 记录修改内容到 SkillBug.md
|
||||
3. 考虑使用 monkey patch 或环境变量等非侵入式方案
|
||||
|
||||
## 知识库工作流(2026-02-13)
|
||||
- **deep_analyzer.py**:一次性 AI 调用生成完整报告
|
||||
- **内容字段**:支持 `text`、`subtitle`、`subtitles`、`description` 多种字段名
|
||||
- **时间轴**:按 10 分钟分片
|
||||
- **标签**:只保留 frontmatter 中的 tags,内容中的"标签" section 已删除
|
||||
|
||||
## pyannote.audio 兼容性问题(2026-02-13)
|
||||
- **问题**: pyannote 4.0.4 与 torch 2.10+ 存在兼容性问题
|
||||
- **症状**:
|
||||
|
||||
+43
-77
@@ -1,88 +1,54 @@
|
||||
# 2026-02-13
|
||||
# 2026-02-13 工作日志
|
||||
|
||||
## kb-deep-analyzer 技能改进
|
||||
## 完成事项
|
||||
|
||||
### 批处理模式
|
||||
- 改为分批并发处理(3+3+3+1),避免同时启动所有AI请求
|
||||
- `analyze()` 方法支持 `on_batch_complete` 回调
|
||||
- `batch_size` 参数控制每批数量(默认3)
|
||||
### deep_analyzer.py 重构
|
||||
- 改为一次性 AI 调用生成完整报告
|
||||
- 修复内容读取:支持 `text`、`subtitle`、`subtitles`、`description` 多种字段
|
||||
- 时间轴分片策略:按 10 分钟分片
|
||||
- 删除内容中的"标签" section,只保留 frontmatter 的 tags
|
||||
|
||||
### 流式写入功能
|
||||
- 新增 `StreamingWriter` 类,支持多线程并发写入文档不同位置
|
||||
- `initialize_document()` 预先创建带占位符的文档结构
|
||||
- `write_batch()` 每批完成后写入对应位置
|
||||
### 报告格式
|
||||
```
|
||||
---
|
||||
title: "xxx"
|
||||
date: xxx
|
||||
duration: xxx
|
||||
author: xxx
|
||||
bvid: xxx
|
||||
platform: bilibili
|
||||
url: xxx
|
||||
tags: ["tag1", "tag2", ...]
|
||||
---
|
||||
|
||||
### 文档格式优化
|
||||
- `date` 改为视频发布日期(从 pubtime 提取)
|
||||
- frontmatter 添加 `url` 字段
|
||||
- 删除"建议行动"章节
|
||||
- 删除 `{% if timeline %}` 和最后的分析时间
|
||||
- 新格式更简洁
|
||||
## 标题
|
||||
[AI 自总结标题]
|
||||
|
||||
### 提交记录
|
||||
- `94370f2` - feat: 改为批处理模式
|
||||
- `c8ddc1e` - feat: 添加流式写入器
|
||||
- `518f8e4` - fix: 优化文档格式
|
||||
- `c276df2` - feat(kb-workflow): 添加严格失败判断逻辑
|
||||
## 摘要
|
||||
[200-400字]
|
||||
|
||||
## 严格失败判断规则(15:19 添加)
|
||||
## 主要主题
|
||||
- 主题1
|
||||
- 主题2
|
||||
...
|
||||
|
||||
### kb-deep-analyzer 更新
|
||||
- 新增判断逻辑:只有 AI 真正完成分析才算成功
|
||||
- 判断条件:
|
||||
- `summary` 不能以"共"开头(降级处理的默认内容)
|
||||
- `main_topics` 不能为空
|
||||
- `key_insights` 不能为空
|
||||
- `full_analysis` 必须有值
|
||||
- 失败时返回 `success: false` 并退出码 1
|
||||
## 关键见解
|
||||
- 见解1
|
||||
- 见解2
|
||||
...
|
||||
|
||||
### kb-workflow 更新
|
||||
- 新增"严格失败处理原则"章节
|
||||
- 明确:深度分析失败 = 整个流程失败
|
||||
- 禁止降级处理或使用模板"假装成功"
|
||||
## 时间轴
|
||||
### 第 1 部分 (00:00 - 10:00)
|
||||
[详细分析]
|
||||
|
||||
## 知识库添加:BV1W4f9B6EdC(第二次处理)
|
||||
### 第 2 部分 (10:00 - 20:00)
|
||||
[详细分析]
|
||||
...
|
||||
```
|
||||
|
||||
### 处理结果
|
||||
- **标题**: 爱泼斯坦案惊天动地?美式司法:"没事,已经结束了"【逸语道破】
|
||||
- **作者**: 沈逸老师
|
||||
- **时长**: 32:38
|
||||
- **Whisper**: ✅ 完成(8043字符,971段)
|
||||
- **深度分析**: ❌ 卡住超时
|
||||
- **归档**: ❌ 未执行
|
||||
## 待办
|
||||
- 无
|
||||
|
||||
### 执行记录
|
||||
1. 环境变量检查 ✅
|
||||
2. 链接解析 ✅ (BV1W4f9B6EdC)
|
||||
3. 元数据提取 ✅
|
||||
4. 视频下载 ✅
|
||||
5. Whisper 识别 ✅ (15:29 完成)
|
||||
6. 深度分析 ❌ (15:29 开始,20分钟后仍卡住,终止)
|
||||
|
||||
### 发现的问题
|
||||
1. **参数名不匹配错误**
|
||||
- 错误: `name 'on_batch_complete' is not defined`
|
||||
- 修复: 统一使用 `on_segment_complete` 作为内部参数名
|
||||
|
||||
2. **batch_size 未定义**
|
||||
- 错误: `name 'batch_size' is not defined`
|
||||
- 修复: 在 `_analyze_chunks_concurrent()` 签名中添加 `batch_size: int = 3`
|
||||
|
||||
3. **深度分析卡住**
|
||||
- 症状: 进程运行但无输出,20分钟后仍卡住
|
||||
- 原因: 可能是批处理模式逻辑问题或 API 调用卡住
|
||||
- 状态: 需要排查
|
||||
|
||||
## 技能状态
|
||||
| 步骤 | 技能 | 状态 |
|
||||
|------|------|------|
|
||||
| 链接解析 | kb-link-parser | ✅ |
|
||||
| 元数据提取 | kb-bilibili-metadata | ✅ |
|
||||
| 字幕下载 | kb-bilibili-content | ✅ |
|
||||
| 语音识别 | kb-whisper | ✅ |
|
||||
| 深度分析 | kb-deep-analyzer | ❌ 卡住 |
|
||||
|
||||
## 待解决问题
|
||||
- [ ] 排查深度分析卡住原因
|
||||
- [ ] 验证严格失败判断逻辑是否正确工作
|
||||
- [ ] 重新测试完整知识库流程
|
||||
## 备注
|
||||
- AI 模型:glm-4.7
|
||||
- 内容长度:约 8000 字符输入,生成详细分析报告
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user