Phase 7 Task 7: 插件与集成系统
- 创建 plugin_manager.py 模块
- PluginManager: 插件管理主类
- ChromeExtensionHandler: Chrome 插件处理
- BotHandler: 飞书/钉钉/Slack 机器人处理
- WebhookIntegration: Zapier/Make Webhook 集成
- WebDAVSync: WebDAV 同步管理
- 创建完整的 Chrome 扩展代码
- manifest.json, background.js, content.js, content.css
- popup.html/js: 弹出窗口界面
- options.html/js: 设置页面
- 支持网页剪藏、选中文本保存、项目选择
- 更新 schema.sql 添加插件相关数据库表
- plugins: 插件配置表
- bot_sessions: 机器人会话表
- webhook_endpoints: Webhook 端点表
- webdav_syncs: WebDAV 同步配置表
- plugin_activity_logs: 插件活动日志表
- 更新 main.py 添加插件相关 API 端点
- GET/POST /api/v1/plugins - 插件管理
- POST /api/v1/plugins/chrome/clip - Chrome 插件保存网页
- POST /api/v1/bots/webhook/{platform} - 接收机器人消息
- GET /api/v1/bots/sessions - 机器人会话列表
- POST /api/v1/webhook-endpoints - 创建 Webhook 端点
- POST /webhook/{type}/{token} - 接收外部 Webhook
- POST /api/v1/webdav-syncs - WebDAV 同步配置
- POST /api/v1/webdav-syncs/{id}/test - 测试 WebDAV 连接
- POST /api/v1/webdav-syncs/{id}/sync - 触发 WebDAV 同步
- 更新 requirements.txt 添加插件依赖
- beautifulsoup4: HTML 解析
- webdavclient3: WebDAV 客户端
- 更新 STATUS.md 和 README.md 开发进度
This commit is contained in:
95
docs/PHASE7_TASK2_SUMMARY.md
Normal file
95
docs/PHASE7_TASK2_SUMMARY.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# InsightFlow Phase 7 任务 2 开发总结
|
||||
|
||||
## 完成内容
|
||||
|
||||
### 1. 多模态处理模块 (multimodal_processor.py)
|
||||
|
||||
#### VideoProcessor 类
|
||||
- **视频文件处理**: 支持 MP4, AVI, MOV, MKV, WebM, FLV 格式
|
||||
- **音频提取**: 使用 ffmpeg 提取音频轨道(WAV 格式,16kHz 采样率)
|
||||
- **关键帧提取**: 使用 OpenCV 按时间间隔提取关键帧(默认每5秒)
|
||||
- **OCR识别**: 支持 PaddleOCR/EasyOCR/Tesseract 识别关键帧文字
|
||||
- **数据整合**: 合并所有帧的 OCR 文本,支持实体提取
|
||||
|
||||
#### ImageProcessor 类
|
||||
- **图片处理**: 支持 JPG, PNG, GIF, BMP, WebP 格式
|
||||
- **OCR识别**: 识别图片中的文字内容(白板、PPT、手写笔记)
|
||||
- **图片描述**: 预留多模态 LLM 接口(待集成)
|
||||
- **批量处理**: 支持批量图片导入
|
||||
|
||||
#### MultimodalEntityExtractor 类
|
||||
- 从视频和图片处理结果中提取实体和关系
|
||||
- 与现有 LLM 客户端集成
|
||||
|
||||
### 2. 多模态实体关联模块 (multimodal_entity_linker.py)
|
||||
|
||||
#### MultimodalEntityLinker 类
|
||||
- **跨模态实体对齐**: 使用 embedding 相似度计算发现不同模态中的同一实体
|
||||
- **多模态实体画像**: 统计实体在各模态中的提及次数
|
||||
- **跨模态关系发现**: 查找在同一视频帧/图片中共同出现的实体
|
||||
- **多模态时间线**: 按时间顺序展示多模态事件
|
||||
|
||||
### 3. 数据库更新 (schema.sql)
|
||||
|
||||
新增表:
|
||||
- `videos`: 视频信息表(时长、帧率、分辨率、OCR文本)
|
||||
- `video_frames`: 视频关键帧表(帧数据、时间戳、OCR文本)
|
||||
- `images`: 图片信息表(OCR文本、描述、提取的实体)
|
||||
- `multimodal_mentions`: 多模态实体提及表
|
||||
- `multimodal_entity_links`: 多模态实体关联表
|
||||
|
||||
### 4. API 端点 (main.py)
|
||||
|
||||
#### 视频相关
|
||||
- `POST /api/v1/projects/{id}/upload-video` - 上传视频
|
||||
- `GET /api/v1/projects/{id}/videos` - 视频列表
|
||||
- `GET /api/v1/videos/{id}` - 视频详情
|
||||
|
||||
#### 图片相关
|
||||
- `POST /api/v1/projects/{id}/upload-image` - 上传图片
|
||||
- `GET /api/v1/projects/{id}/images` - 图片列表
|
||||
- `GET /api/v1/images/{id}` - 图片详情
|
||||
|
||||
#### 多模态实体关联
|
||||
- `POST /api/v1/projects/{id}/multimodal/link-entities` - 跨模态实体关联
|
||||
- `GET /api/v1/entities/{id}/multimodal-profile` - 实体多模态画像
|
||||
- `GET /api/v1/projects/{id}/multimodal-timeline` - 多模态时间线
|
||||
- `GET /api/v1/entities/{id}/cross-modal-relations` - 跨模态关系
|
||||
|
||||
### 5. 依赖更新 (requirements.txt)
|
||||
|
||||
新增依赖:
|
||||
- `opencv-python==4.9.0.80` - 视频处理
|
||||
- `pillow==10.2.0` - 图片处理
|
||||
- `paddleocr==2.7.0.3` + `paddlepaddle==2.6.0` - OCR 引擎
|
||||
- `ffmpeg-python==0.2.0` - ffmpeg 封装
|
||||
- `sentence-transformers==2.3.1` - 跨模态对齐
|
||||
|
||||
## 系统要求
|
||||
|
||||
- **ffmpeg**: 必须安装,用于视频和音频处理
|
||||
- **Python 3.8+**: 支持所有依赖库
|
||||
|
||||
## 待完善项
|
||||
|
||||
1. **多模态 LLM 集成**: 图片描述功能需要集成 Kimi 或其他多模态模型 API
|
||||
2. **前端界面**: 需要开发视频/图片上传界面和多模态展示组件
|
||||
3. **性能优化**: 大视频文件处理可能需要异步任务队列
|
||||
4. **OCR 引擎选择**: 根据部署环境选择最适合的 OCR 引擎
|
||||
|
||||
## 部署说明
|
||||
|
||||
```bash
|
||||
# 安装系统依赖
|
||||
apt-get update
|
||||
apt-get install -y ffmpeg
|
||||
|
||||
# 安装 Python 依赖
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 更新数据库
|
||||
sqlite3 insightflow.db < schema.sql
|
||||
|
||||
# 启动服务
|
||||
python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000
|
||||
```
|
||||
Reference in New Issue
Block a user