Phase 7 Task 4: 协作与共享模块

- 创建 collaboration_manager.py 协作管理模块
  - CollaborationManager: 协作管理主类
  - 项目分享链接管理 - 支持只读/评论/编辑/管理员权限
  - 评论和批注系统 - 支持实体、关系、转录文本评论
  - 变更历史追踪 - 记录所有数据操作变更
  - 团队成员管理 - 支持多角色权限控制

- 更新 schema.sql 添加协作相关数据库表
  - project_shares: 项目分享表
  - comments: 评论表
  - change_history: 变更历史表
  - team_members: 团队成员表

- 更新 main.py 添加协作相关 API 端点
  - 项目分享相关端点
  - 评论和批注相关端点
  - 变更历史相关端点
  - 团队成员管理端点

- 更新 README.md 和 STATUS.md
This commit is contained in:
OpenClaw Bot
2026-02-24 00:13:09 +08:00
parent d040cb7657
commit c557cc52c4
5 changed files with 1978 additions and 312 deletions

459
STATUS.md
View File

@@ -1,21 +1,20 @@
# InsightFlow 开发状态
**最后更新**: 2026-02-21 06:05
**最后更新**: 2026-02-24 00:00
## 当前阶段
Phase 5: 高级功能 - **已完成 ✅**
Phase 6: 企业级功能 - **规划中 📋**
Phase 7: 协作与共享 - **已完成 ✅**
## 部署状态
- **服务器**: 122.51.127.111:18000 ✅ 运行中
- **Neo4j**: 122.51.127.111:7474 (HTTP), 122.51.127.111:7687 (Bolt) ⏸️ 待部署
- **Git 版本**: f38e060 - Phase 5: Enhance Neo4j graph visualization
- **Neo4j**: 122.51.127.111:7474 (HTTP), 122.51.127.111:7687 (Bolt) ✅ 运行中
- **Git 版本**: 待推送
## 已完成
### Phase 1-3 (已完成 ✅)
### Phase 1-6 (已完成 ✅)
- FastAPI 项目框架搭建
- SQLite 数据库设计
- 阿里云听悟 ASR 集成
@@ -28,171 +27,211 @@ Phase 6: 企业级功能 - **规划中 📋**
- 实体列表展示
- 转录文本中实体高亮显示
- 图谱与文本联动
- Agent 助手
- 知识溯源
- 知识推理与问答增强
- 实体属性扩展
- 时间线视图
- Neo4j 图数据库集成
- 导出功能
- API 开放平台
### Phase 4 - Agent 助手 (已完成 ✅)
- ✅ 创建 llm_client.py - Kimi API 客户端
- 支持流式/非流式聊天
- 带置信度的实体提取
- RAG 问答功能
- Agent 指令解析
- 实体演变分析
- ✅ 更新 db_manager.py - 新增方法
- `get_relation_with_details()` - 获取关系详情
- `get_entity_with_mentions()` - 获取实体及提及
- `search_entities()` - 搜索实体
- `update_entity()` - 更新实体
- `get_project_summary()` - 项目摘要
- `get_transcript_context()` - 转录上下文
- ✅ 更新 main.py - Agent API 端点
- `POST /api/v1/projects/{id}/agent/query` - RAG 问答
- `POST /api/v1/projects/{id}/agent/command` - 指令执行
- `GET /api/v1/projects/{id}/agent/suggest` - 智能建议
- `GET /api/v1/relations/{id}/provenance` - 关系溯源
- `GET /api/v1/entities/{id}/details` - 实体详情
- `GET /api/v1/entities/{id}/evolution` - 实体演变分析
- `GET /api/v1/projects/{id}/entities/search` - 实体搜索
- `PATCH /api/v1/entities/{id}` - 更新实体
- ✅ 更新 workbench.html - Agent 面板 UI
- 可折叠的 Agent 助手面板
- 聊天界面
- 实体悬停卡片
- 关系溯源弹窗
- ✅ 更新 app.js - 前端功能
- Agent 聊天功能
- 指令执行(合并实体、编辑定义)
- RAG 问答
- 实体卡片悬停显示
- 关系点击溯源
- 低置信度实体标黄
### Phase 7 - 任务 1: 工作流自动化 (已完成 ✅)
- ✅ 创建 workflow_manager.py - 工作流管理模块
- WorkflowManager: 主管理类
- WorkflowTask: 工作流任务定义
- WebhookNotifier: Webhook 通知器支持飞书、钉钉、Slack
- 定时任务调度APScheduler
- 自动分析新上传文件的工作流
- 自动实体对齐和关系发现
- 工作流配置管理
- ✅ 更新 schema.sql - 添加工作流相关数据库表
- workflows: 工作流配置表
- workflow_tasks: 任务执行记录表
- webhook_configs: Webhook 配置表
- workflow_logs: 工作流执行日志
- ✅ 更新 main.py - 添加工作流相关 API 端点
- GET/POST /api/v1/workflows - 工作流管理
- GET/POST /api/v1/webhooks - Webhook 配置
- GET /api/v1/workflows/{id}/logs - 执行日志
- POST /api/v1/workflows/{id}/trigger - 手动触发
- GET /api/v1/workflows/{id}/stats - 执行统计
- POST /api/v1/webhooks/{id}/test - 测试 Webhook
- ✅ 更新 requirements.txt - 添加 APScheduler 依赖
### Phase 4 - 知识溯源 (已完成 ✅)
-点击关系连线显示来源文档
- ✅ 实体详情显示所有提及位置
- ✅ 证据文本展示
### Phase 7 - 任务 2: 多模态支持 (已完成 ✅)
-创建 multimodal_processor.py - 多模态处理模块
- VideoProcessor: 视频处理器(提取音频 + 关键帧 + OCR
- ImageProcessor: 图片处理器OCR + 图片描述)
- MultimodalEntityExtractor: 多模态实体提取器
- 支持 PaddleOCR/EasyOCR/Tesseract 多种 OCR 引擎
- 支持 ffmpeg 视频处理
- ✅ 创建 multimodal_entity_linker.py - 多模态实体关联模块
- MultimodalEntityLinker: 跨模态实体关联器
- 支持 embedding 相似度计算
- 多模态实体画像生成
- 跨模态关系发现
- 多模态时间线生成
- ✅ 更新 schema.sql - 添加多模态相关数据库表
- videos: 视频表
- video_frames: 视频关键帧表
- images: 图片表
- multimodal_mentions: 多模态实体提及表
- multimodal_entity_links: 多模态实体关联表
- ✅ 更新 main.py - 添加多模态相关 API 端点
- POST /api/v1/projects/{id}/upload-video - 上传视频
- POST /api/v1/projects/{id}/upload-image - 上传图片
- GET /api/v1/projects/{id}/videos - 视频列表
- GET /api/v1/projects/{id}/images - 图片列表
- GET /api/v1/videos/{id} - 视频详情
- 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 - 跨模态关系
- ✅ 更新 requirements.txt - 添加多模态依赖
- opencv-python: 视频处理
- pillow: 图片处理
- paddleocr/paddlepaddle: OCR 引擎
- ffmpeg-python: ffmpeg 封装
- sentence-transformers: 跨模态对齐
### Phase 4 - 术语卡片悬停 (已完成 ✅)
-鼠标悬停实体显示卡片
- ✅ 卡片包含:名称、定义、提及次数、关系数
### Phase 7 - 任务 7: 插件与集成 (已完成 ✅)
-创建 plugin_manager.py - 插件管理模块
- PluginManager: 插件管理主类
- ChromeExtensionHandler: Chrome 扩展 API 处理
- 令牌创建、验证、撤销
- 网页内容导入
- BotHandler: 飞书/钉钉机器人处理
- 会话管理
- 消息接收和发送
- 音频文件处理
- WebhookIntegration: Zapier/Make Webhook 集成
- 端点创建和管理
- 事件触发
- 认证支持
- WebDAVSync: WebDAV 同步管理
- 同步配置管理
- 连接测试
- 项目数据同步
- ✅ 更新 schema.sql - 添加插件相关数据库表
- plugins: 插件配置表
- plugin_configs: 插件详细配置表
- bot_sessions: 机器人会话表
- webhook_endpoints: Webhook 端点表
- webdav_syncs: WebDAV 同步配置表
- chrome_extension_tokens: Chrome 扩展令牌表
- ✅ 更新 main.py - 添加插件相关 API 端点
- GET/POST /api/v1/plugins - 插件管理
- POST /api/v1/plugins/chrome/tokens - 创建 Chrome 扩展令牌
- GET /api/v1/plugins/chrome/tokens - 列出自令牌
- DELETE /api/v1/plugins/chrome/tokens/{id} - 撤销令牌
- POST /api/v1/plugins/chrome/import - 导入网页内容
- POST /api/v1/plugins/bot/feishu/sessions - 创建飞书会话
- POST /api/v1/plugins/bot/dingtalk/sessions - 创建钉钉会话
- GET /api/v1/plugins/bot/{type}/sessions - 列出会话
- POST /api/v1/plugins/bot/{type}/webhook - 接收机器人消息
- POST /api/v1/plugins/bot/{type}/sessions/{id}/send - 发送消息
- POST /api/v1/plugins/integrations/zapier - 创建 Zapier 端点
- POST /api/v1/plugins/integrations/make - 创建 Make 端点
- GET /api/v1/plugins/integrations/{type} - 列出集成端点
- POST /api/v1/plugins/integrations/{id}/test - 测试端点
- POST /api/v1/plugins/integrations/{id}/trigger - 手动触发
- POST /api/v1/plugins/webdav - 创建 WebDAV 同步
- GET /api/v1/plugins/webdav - 列出同步配置
- POST /api/v1/plugins/webdav/{id}/test - 测试连接
- POST /api/v1/plugins/webdav/{id}/sync - 执行同步
- ✅ 更新 requirements.txt - 添加插件依赖
- webdav4: WebDAV 客户端
- urllib3: URL 处理
- ✅ 创建 Chrome 扩展基础代码
- manifest.json: 扩展配置
- background.js: 后台脚本(右键菜单、同步)
- content.js: 内容脚本(页面提取)
- content.css: 内容样式
- popup.html/js: 弹出窗口
- options.html/js: 设置页面
- README.md: 扩展说明文档
### Phase 4 - 置信度提示 (已完成 ✅)
-LLM 提取返回置信度分数
- ✅ 低置信度实体在文本中标黄
### Phase 7 - 任务 3: 数据安全与合规 (已完成 ✅)
-创建 security_manager.py - 安全模块
- SecurityManager: 安全管理主类
- 审计日志系统 - 记录所有数据操作
- 端到端加密 - AES-256-GCM 加密项目数据
- 数据脱敏 - 支持手机号、邮箱、身份证等敏感信息脱敏
- 数据访问策略 - 基于用户、角色、IP、时间的访问控制
- 访问审批流程 - 敏感数据访问需要审批
- ✅ 更新 schema.sql - 添加安全相关数据库表
- audit_logs: 审计日志表
- encryption_configs: 加密配置表
- masking_rules: 脱敏规则表
- data_access_policies: 数据访问策略表
- access_requests: 访问请求表
- ✅ 更新 main.py - 添加安全相关 API 端点
- GET /api/v1/audit-logs - 查询审计日志
- GET /api/v1/audit-logs/stats - 审计统计
- POST /api/v1/projects/{id}/encryption/enable - 启用加密
- POST /api/v1/projects/{id}/encryption/disable - 禁用加密
- POST /api/v1/projects/{id}/encryption/verify - 验证密码
- GET /api/v1/projects/{id}/encryption - 获取加密配置
- POST /api/v1/projects/{id}/masking-rules - 创建脱敏规则
- GET /api/v1/projects/{id}/masking-rules - 获取脱敏规则
- PUT /api/v1/masking-rules/{id} - 更新脱敏规则
- DELETE /api/v1/masking-rules/{id} - 删除脱敏规则
- POST /api/v1/projects/{id}/masking/apply - 应用脱敏
- POST /api/v1/projects/{id}/access-policies - 创建访问策略
- GET /api/v1/projects/{id}/access-policies - 获取访问策略
- POST /api/v1/access-policies/{id}/check - 检查访问权限
- POST /api/v1/access-requests - 创建访问请求
- POST /api/v1/access-requests/{id}/approve - 批准访问
- POST /api/v1/access-requests/{id}/reject - 拒绝访问
- ✅ 更新 requirements.txt - 添加 cryptography 依赖
### Phase 5 - 知识推理与问答增强 (已完成 ✅)
- ✅ 创建 knowledge_reasoner.py - 知识推理引擎
- 因果推理:分析原因和影响
- 对比推理:比较实体间的异同
- 时序推理:分析时间线和演变
- 关联推理:发现隐含关联
- ✅ 新增 API 端点
- `POST /api/v1/projects/{id}/reasoning/query` - 增强问答
- `POST /api/v1/projects/{id}/reasoning/summary` - 智能总结
- `GET /api/v1/projects/{id}/reasoning/inference-path` - 关联路径
- ✅ 前端推理面板
- 推理类型选择
- 深度控制
- 结果展示(置信度、证据、知识缺口)
- 项目总结卡片(全面/高管/技术/风险)
### Phase 5 - 实体属性扩展 (已完成 ✅)
- ✅ 数据库层
- 新增 `entity_attributes` 表存储自定义属性
- 新增 `attribute_templates` 表管理属性模板
- 新增 `attribute_history` 表记录属性变更历史
- ✅ 后端 API
- `GET/POST /api/v1/projects/{id}/attribute-templates` - 属性模板管理
- `GET/POST/PUT/DELETE /api/v1/entities/{id}/attributes` - 实体属性 CRUD
- `GET /api/v1/entities/{id}/attributes/history` - 属性变更历史
- `GET /api/v1/projects/{id}/entities/search-by-attributes` - 属性筛选搜索
- ✅ 属性类型支持
- text: 文本
- number: 数字
- date: 日期
- select: 单选
- multiselect: 多选
- boolean: 布尔值
### Phase 5 - 时间线视图 (已完成 ✅)
- ✅ 后端 API: `/api/v1/projects/{id}/timeline`
- ✅ 前端时间线面板
- ✅ 实体提及和关系事件可视化
- ✅ 实体筛选功能
### Phase 7 - 任务 4: 协作与共享 (已完成 ✅)
- ✅ 创建 collaboration_manager.py - 协作管理模块
- CollaborationManager: 协作管理主类
- 项目分享链接管理 - 支持只读/评论/编辑/管理员权限
- 评论和批注系统 - 支持实体、关系、转录文本评论
- 变更历史追踪 - 记录所有数据操作变更
- 团队成员管理 - 支持多角色权限控制
- ✅ 更新 schema.sql - 添加协作相关数据库表
- project_shares: 项目分享表
- comments: 评论表
- change_history: 变更历史表
- team_members: 团队成员表
- ✅ 更新 main.py - 添加协作相关 API 端点
- POST /api/v1/projects/{id}/shares - 创建分享链接
- GET /api/v1/projects/{id}/shares - 列出分享链接
- POST /api/v1/shares/verify - 验证分享链接
- GET /api/v1/shares/{token}/access - 访问共享项目
- DELETE /api/v1/shares/{id} - 撤销分享链接
- POST /api/v1/projects/{id}/comments - 添加评论
- GET /api/v1/{type}/{id}/comments - 获取评论列表
- GET /api/v1/projects/{id}/comments - 获取项目所有评论
- PUT /api/v1/comments/{id} - 更新评论
- POST /api/v1/comments/{id}/resolve - 解决评论
- DELETE /api/v1/comments/{id} - 删除评论
- GET /api/v1/projects/{id}/history - 获取变更历史
- GET /api/v1/projects/{id}/history/stats - 获取变更统计
- GET /api/v1/{type}/{id}/versions - 获取实体版本历史
- POST /api/v1/history/{id}/revert - 回滚变更
- POST /api/v1/projects/{id}/members - 邀请团队成员
- GET /api/v1/projects/{id}/members - 列出团队成员
- PUT /api/v1/members/{id}/role - 更新成员角色
- DELETE /api/v1/members/{id} - 移除团队成员
- GET /api/v1/projects/{id}/permissions - 检查用户权限
## 待完成
### Phase 5 - Neo4j 图数据库集成 (已完成 ✅)
- [x] 创建 neo4j_manager.py - Neo4j 管理模块
- 数据同步到 Neo4j实体、关系、项目
- 批量同步支持
- 数据删除支持
- [x] 复杂图查询
- 最短路径查询
- 所有路径查询
- 邻居节点查询
- 共同邻居查询
- 子图提取
- [x] 图算法分析
- 度中心性分析
- 社区发现(连通分量)
- 图统计信息
- [x] 后端 API 端点
- `GET /api/v1/neo4j/status` - Neo4j 连接状态
- `POST /api/v1/neo4j/sync` - 同步项目到 Neo4j
- `GET /api/v1/projects/{id}/graph/stats` - 图统计
- `POST /api/v1/graph/shortest-path` - 最短路径
- `POST /api/v1/graph/paths` - 所有路径
- `GET /api/v1/entities/{id}/neighbors` - 邻居查询
- `GET /api/v1/entities/{id1}/common-neighbors/{id2}` - 共同邻居
- `GET /api/v1/projects/{id}/graph/centrality` - 中心性分析
- `GET /api/v1/projects/{id}/graph/communities` - 社区发现
- `POST /api/v1/graph/subgraph` - 子图提取
- [x] 部署 Neo4j 服务 (docker-compose)
- [x] 前端图分析面板
- 图统计信息展示(节点数、边数、密度、连通分量)
- 度中心性排名展示
- 社区发现可视化D3.js 力导向图)
- 最短路径查询和可视化
- 邻居节点查询和可视化
- Neo4j 连接状态指示
- 数据同步按钮
- [x] 路径可视化优化
- 添加路径动画效果(流动虚线)
- 路径节点和边的特殊样式(起点终点高亮)
- 发光效果增强视觉层次
- 路径信息面板(显示路径长度、节点数统计)
- [x] 社区可视化增强
- 社区发现结果的更好可视化(不同颜色区分社区)
- 社区统计信息(每个社区的节点数、密度)
- 点击社区可以聚焦显示该社区的子图
- 社区内节点连线显示内部关联
### Phase 4 - Neo4j 集成 (可选)
- [ ] 将图谱数据同步到 Neo4j
- [ ] 支持复杂图查询
### Phase 5 - 高级功能 (进行中 🚧)
- [x] 知识推理与问答增强 ✅ (2026-02-19 完成)
- [x] 实体属性扩展 ✅ (2026-02-20 完成)
- [x] 时间线视图 ✅ (2026-02-19 完成)
- [x] 导出功能 ✅ (2026-02-20 完成)
- 知识图谱导出 PNG/SVG
- 项目报告导出 PDF
- 实体数据导出 Excel/CSV
- 关系数据导出 CSV
- 转录文本导出 Markdown
- 项目完整数据导出 JSON
- [ ] 协作功能
- 多用户支持
- 项目权限管理
- 评论和批注
- 变更历史追踪
Phase 7 任务 5: 智能报告生成
## 技术债务
- 听悟 SDK fallback 到 mock 需要更好的错误处理
- 实体相似度匹配目前只是简单字符串包含,需要 embedding 方案
- 前端需要状态管理(目前使用全局变量)
- 需要添加 API 文档 (OpenAPI/Swagger)
- ~~需要添加 API 文档 (OpenAPI/Swagger)~~ ✅ 已完成
- 多模态 LLM 图片描述功能待实现(需要集成多模态模型 API
## 部署信息
@@ -202,11 +241,107 @@ Phase 6: 企业级功能 - **规划中 📋**
## 最近更新
### 2026-02-21 (早间) - Cron 自动部署
- 代码更新到最新版本 (f38e060)
- InsightFlow 服务已启动 (122.51.127.111:18000) ✅
- Neo4j 依赖已安装 (neo4j==5.15.0)
- Neo4j 服务待部署 (需要 Docker 或外部 Neo4j 实例)
### 2026-02-24 (凌晨)
- 完成 Phase 7 任务 4: 协作与共享
- 创建 collaboration_manager.py 协作模块
- CollaborationManager: 协作管理主类
- 项目分享链接管理 - 支持只读/评论/编辑/管理员权限
- 评论和批注系统 - 支持实体、关系、转录文本评论
- 变更历史追踪 - 记录所有数据操作变更
- 团队成员管理 - 支持多角色权限控制
- 更新 schema.sql 添加协作相关数据库表
- project_shares: 项目分享表
- comments: 评论表
- change_history: 变更历史表
- team_members: 团队成员表
- 更新 main.py 添加协作相关 API 端点
- 项目分享相关端点
- 评论和批注相关端点
- 变更历史相关端点
- 团队成员管理端点
### 2026-02-23 (晚间)
- 完成 Phase 7 任务 3: 数据安全与合规
- 创建 security_manager.py 安全模块
- SecurityManager: 安全管理主类
- 审计日志系统 - 记录所有数据操作
- 端到端加密 - AES-256-GCM 加密项目数据
- 数据脱敏 - 支持手机号、邮箱、身份证等敏感信息脱敏
- 数据访问策略 - 基于用户、角色、IP、时间的访问控制
- 访问审批流程 - 敏感数据访问需要审批
- 更新 schema.sql 添加安全相关数据库表
- audit_logs: 审计日志表
- encryption_configs: 加密配置表
- masking_rules: 脱敏规则表
- data_access_policies: 数据访问策略表
- access_requests: 访问请求表
- 更新 main.py 添加安全相关 API 端点
- 更新 requirements.txt 添加 cryptography 依赖
### 2026-02-23 (午间)
- 完成 Phase 7 任务 7: 插件与集成
- 创建 plugin_manager.py 模块
- PluginManager: 插件管理主类
- ChromeExtensionHandler: Chrome 插件处理
- BotHandler: 飞书/钉钉/Slack 机器人处理
- WebhookIntegration: Zapier/Make Webhook 集成
- WebDAVSync: WebDAV 同步管理
- 创建完整的 Chrome 扩展代码
- manifest.json, background.js, content.js
- popup.html/js, options.html/js
- 支持网页剪藏、选中文本保存、项目选择
- 更新 schema.sql 添加插件相关数据库表
- 更新 main.py 添加插件相关 API 端点
- 更新 requirements.txt 添加插件依赖
### 2026-02-23 (早间)
- 完成 Phase 7 任务 2: 多模态支持
- 创建 multimodal_processor.py 模块
- VideoProcessor: 视频处理(音频提取 + 关键帧 + OCR
- ImageProcessor: 图片处理OCR + 图片描述)
- MultimodalEntityExtractor: 多模态实体提取
- 创建 multimodal_entity_linker.py 模块
- MultimodalEntityLinker: 跨模态实体关联
- 支持 embedding 相似度计算
- 多模态实体画像和时间线
- 更新 schema.sql 添加多模态相关数据库表
- 更新 main.py 添加多模态相关 API 端点
- 更新 requirements.txt 添加多模态依赖
### 2026-02-23
- 完成 Phase 7 任务 1: 工作流自动化模块
- 创建 workflow_manager.py 模块
- WorkflowManager: 主管理类,支持定时任务调度
- WorkflowTask: 工作流任务定义
- WebhookNotifier: Webhook 通知器支持飞书、钉钉、Slack
- 工作流配置管理
- 更新 schema.sql 添加工作流相关数据库表
- 更新 main.py 添加工作流相关 API 端点
- 更新 requirements.txt 添加 APScheduler 依赖
### 2026-02-21 (晚间)
- 完成 Phase 6: API 开放平台
- 为现有 API 端点添加认证依赖
- 前端 API Key 管理界面实现
- 测试和验证完成
- 代码提交并部署
### 2026-02-21 (午间)
- 开始 Phase 6: API 开放平台
- 创建 api_key_manager.py - API Key 管理模块
- 数据库表api_keys, api_call_logs, api_call_stats
- API Key 生成、验证、撤销功能
- 权限管理和自定义限流
- 调用日志和统计
- 创建 rate_limiter.py - 限流模块
- 滑动窗口计数器
- 可配置限流参数
- 更新 main.py
- 集成 Swagger/OpenAPI 文档
- 添加 API Key 认证依赖
- 实现限流中间件
- 新增 API Key 管理端点
- 新增系统信息端点
### 2026-02-20 (晚间)
- 完成 Phase 5 前端图分析面板