- 创建 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 开发进度
3.4 KiB
3.4 KiB
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+: 支持所有依赖库
待完善项
- 多模态 LLM 集成: 图片描述功能需要集成 Kimi 或其他多模态模型 API
- 前端界面: 需要开发视频/图片上传界面和多模态展示组件
- 性能优化: 大视频文件处理可能需要异步任务队列
- OCR 引擎选择: 根据部署环境选择最适合的 OCR 引擎
部署说明
# 安装系统依赖
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