- Create workflow_manager.py with APScheduler integration - Add WebhookNotifier supporting Feishu/DingTalk/Slack - Update schema.sql with workflows, workflow_logs, webhook_configs tables - Add workflow API endpoints (CRUD, trigger, logs) - Add webhook API endpoints (CRUD, test) - Update requirements.txt with APScheduler dependency - Update STATUS.md with Phase 7 progress
390 lines
14 KiB
Markdown
390 lines
14 KiB
Markdown
# InsightFlow 开发状态
|
||
|
||
**最后更新**: 2026-02-23 00:00
|
||
|
||
## 当前阶段
|
||
|
||
Phase 7: 智能化与生态扩展 - **进行中 🚧**
|
||
|
||
## 部署状态
|
||
|
||
- **服务器**: 122.51.127.111:18000 ✅ 运行中
|
||
- **Neo4j**: 122.51.127.111:7474 (HTTP), 122.51.127.111:7687 (Bolt) ✅ 运行中
|
||
- **Git 版本**: 待推送
|
||
|
||
## 已完成
|
||
|
||
### Phase 1-3 (已完成 ✅)
|
||
- FastAPI 项目框架搭建
|
||
- SQLite 数据库设计
|
||
- 阿里云听悟 ASR 集成
|
||
- OSS 上传模块
|
||
- 实体提取与对齐逻辑
|
||
- 关系提取
|
||
- 项目 CRUD API
|
||
- 音频上传与分析 API
|
||
- D3.js 知识图谱可视化
|
||
- 实体列表展示
|
||
- 转录文本中实体高亮显示
|
||
- 图谱与文本联动
|
||
|
||
### 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 4 - 知识溯源 (已完成 ✅)
|
||
- ✅ 点击关系连线显示来源文档
|
||
- ✅ 实体详情显示所有提及位置
|
||
- ✅ 证据文本展示
|
||
|
||
### Phase 4 - 术语卡片悬停 (已完成 ✅)
|
||
- ✅ 鼠标悬停实体显示卡片
|
||
- ✅ 卡片包含:名称、定义、提及次数、关系数
|
||
|
||
### Phase 4 - 置信度提示 (已完成 ✅)
|
||
- ✅ LLM 提取返回置信度分数
|
||
- ✅ 低置信度实体在文本中标黄
|
||
|
||
### 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 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 5 - 导出功能 (已完成 ✅)
|
||
- ✅ 创建 export_manager.py 导出管理模块
|
||
- ✅ 知识图谱导出 SVG/PNG (支持矢量图和图片格式)
|
||
- ✅ 实体数据导出 Excel/CSV (包含所有自定义属性)
|
||
- ✅ 关系数据导出 CSV
|
||
- ✅ 项目报告导出 PDF (包含统计、实体列表、关系列表)
|
||
- ✅ 转录文本导出 Markdown (带实体标注)
|
||
- ✅ 项目完整数据导出 JSON (备份/迁移用)
|
||
- ✅ 前端知识库面板添加导出入口
|
||
|
||
### Phase 6 - API 开放平台 (已完成 ✅)
|
||
- ✅ 创建 api_key_manager.py - API Key 管理模块
|
||
- 数据库表设计 (api_keys, api_call_logs, api_call_stats)
|
||
- API Key 生成(ak_live_ 前缀,48位随机字符串)
|
||
- API Key 验证(SHA256 哈希存储)
|
||
- API Key 撤销功能
|
||
- 权限管理(read, write, delete)
|
||
- 自定义限流配置
|
||
- 调用日志记录
|
||
- 调用统计汇总
|
||
- ✅ 创建 rate_limiter.py - 限流模块
|
||
- 滑动窗口计数器实现
|
||
- 基于内存的限流存储
|
||
- 可配置的限流参数
|
||
- 限流头信息(X-RateLimit-*)
|
||
- ✅ 集成 Swagger/OpenAPI 文档
|
||
- FastAPI 元数据配置
|
||
- API 端点分类标签
|
||
- 请求/响应模型定义
|
||
- 认证说明文档
|
||
- ✅ 实现 API 限流中间件
|
||
- 基于 API Key 的限流
|
||
- IP 限流(未认证用户)
|
||
- Master Key 高限流配额
|
||
- 429 响应处理
|
||
- ✅ 实现 API Key 管理端点
|
||
- `POST /api/v1/api-keys` - 创建 API Key
|
||
- `GET /api/v1/api-keys` - 列出 API Keys
|
||
- `GET /api/v1/api-keys/{id}` - 获取 API Key 详情
|
||
- `PATCH /api/v1/api-keys/{id}` - 更新 API Key
|
||
- `DELETE /api/v1/api-keys/{id}` - 撤销 API Key
|
||
- `GET /api/v1/api-keys/{id}/stats` - 调用统计
|
||
- `GET /api/v1/api-keys/{id}/logs` - 调用日志
|
||
- `GET /api/v1/rate-limit/status` - 限流状态
|
||
- ✅ 系统信息端点
|
||
- `GET /api/v1/health` - 健康检查
|
||
- `GET /api/v1/status` - 系统状态
|
||
- ✅ 为现有 API 端点添加认证依赖
|
||
- 所有数据操作端点需要 API Key 认证
|
||
- 公开端点(/health, /status, /docs)保持开放
|
||
- ✅ 前端 API Key 管理界面
|
||
- API Key 列表展示
|
||
- 创建 API Key
|
||
- 查看调用统计
|
||
- 撤销 API Key
|
||
- 统计卡片展示
|
||
|
||
### Phase 7 - 智能工作流自动化 (进行中 🚧)
|
||
|
||
#### 任务 1: 智能工作流自动化 ✅ 已完成
|
||
- ✅ 创建 workflow_manager.py - 工作流管理模块
|
||
- WorkflowManager: 主管理类,支持定时任务调度 (APScheduler)
|
||
- WorkflowTask: 工作流任务定义
|
||
- WebhookNotifier: Webhook 通知器,支持飞书/钉钉/Slack
|
||
- 自动分析新上传文件工作流
|
||
- 自动实体对齐工作流
|
||
- 自动关系发现工作流
|
||
- ✅ 更新 schema.sql - 添加工作流相关表
|
||
- workflows: 工作流配置表
|
||
- workflow_logs: 工作流执行日志表
|
||
- webhook_configs: Webhook 配置表
|
||
- ✅ 更新 main.py - 添加工作流 API 端点
|
||
- `POST /api/v1/workflows` - 创建工作流
|
||
- `GET /api/v1/workflows` - 列出工作流
|
||
- `GET /api/v1/workflows/{id}` - 获取工作流详情
|
||
- `PATCH /api/v1/workflows/{id}` - 更新工作流
|
||
- `DELETE /api/v1/workflows/{id}` - 删除工作流
|
||
- `POST /api/v1/workflows/{id}/trigger` - 手动触发工作流
|
||
- `GET /api/v1/workflows/{id}/logs` - 获取执行日志
|
||
- `POST /api/v1/webhooks` - 创建 Webhook
|
||
- `GET /api/v1/webhooks` - 列出 Webhooks
|
||
- `GET /api/v1/webhooks/{id}` - 获取 Webhook 详情
|
||
- `PATCH /api/v1/webhooks/{id}` - 更新 Webhook
|
||
- `DELETE /api/v1/webhooks/{id}` - 删除 Webhook
|
||
- `POST /api/v1/webhooks/{id}/test` - 测试 Webhook
|
||
- ✅ 更新 requirements.txt - 添加 APScheduler 依赖
|
||
|
||
#### 任务 2: 多模态支持 🚧 待开发
|
||
- 视频文件导入(提取音频 + 关键帧 OCR)
|
||
- 图片内容识别(白板、PPT、手写笔记)
|
||
- 多模态实体关联
|
||
|
||
#### 任务 3: 数据安全与合规 📋 待开发
|
||
- 端到端加密
|
||
- 数据脱敏
|
||
- 审计日志
|
||
|
||
#### 任务 4: 协作与共享 📋 待开发
|
||
- 项目分享(只读/可编辑链接)
|
||
- 评论和批注
|
||
- 变更历史
|
||
|
||
#### 任务 5: 智能报告生成 📋 待开发
|
||
- 一键生成项目总结报告(PDF/Word)
|
||
- 会议纪要和行动项提取
|
||
- 自定义报告模板
|
||
|
||
#### 任务 6-8: 其他功能 📋 待开发
|
||
- 高级搜索与发现
|
||
- 插件与集成
|
||
- 性能优化与扩展
|
||
|
||
## 待完成
|
||
|
||
- Phase 7 任务 2-8
|
||
|
||
## 技术债务
|
||
|
||
- 听悟 SDK fallback 到 mock 需要更好的错误处理
|
||
- 实体相似度匹配目前只是简单字符串包含,需要 embedding 方案
|
||
- 前端需要状态管理(目前使用全局变量)
|
||
- ~~需要添加 API 文档 (OpenAPI/Swagger)~~ ✅ 已完成
|
||
|
||
## 部署信息
|
||
|
||
- 服务器: 122.51.127.111
|
||
- 项目路径: /opt/projects/insightflow
|
||
- 端口: 18000
|
||
|
||
## 最近更新
|
||
|
||
### 2026-02-23 (凌晨)
|
||
- 完成 Phase 7 任务 1: 智能工作流自动化
|
||
- 创建 workflow_manager.py 工作流管理模块
|
||
- 支持定时任务调度 (APScheduler)
|
||
- 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 前端图分析面板
|
||
- 新增侧边栏 "图分析" 按钮
|
||
- 图统计信息展示(节点数、边数、密度、连通分量)
|
||
- 度中心性分析排名展示
|
||
- 社区发现可视化(D3.js 力导向图)
|
||
- 最短路径查询和可视化
|
||
- 邻居节点查询和可视化
|
||
- Neo4j 连接状态指示
|
||
- 数据同步到 Neo4j 功能
|
||
- 提交代码到 git 仓库
|
||
- 部署到服务器: 122.51.127.111:18000
|
||
|
||
### 2026-02-20 (晚间)
|
||
- 完成 Phase 5 导出功能
|
||
- 新增 export_manager.py 导出管理模块
|
||
- 知识图谱导出 SVG/PNG (支持矢量图和图片格式)
|
||
- 实体数据导出 Excel/CSV (包含所有自定义属性)
|
||
- 关系数据导出 CSV
|
||
- 项目报告导出 PDF (包含统计、实体列表、关系列表)
|
||
- 转录文本导出 Markdown (带实体标注)
|
||
- 项目完整数据导出 JSON (备份/迁移用)
|
||
- 前端知识库面板添加导出入口
|
||
- 新增依赖: pandas, openpyxl, reportlab, cairosvg
|
||
|
||
### 2026-02-20
|
||
- 完成 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
|
||
|
||
### 2026-02-19 (晚间)
|
||
- 完成 Phase 5 知识推理与问答增强功能
|
||
- 新增 knowledge_reasoner.py 推理引擎
|
||
- 支持四种推理类型:因果、对比、时序、关联
|
||
- 智能项目总结 API(全面/高管/技术/风险)
|
||
- 实体关联路径发现功能
|
||
- 前端推理面板 UI 完整实现
|
||
- 提交代码到 git 仓库
|
||
- 部署到服务器: 122.51.127.111:18000
|
||
|
||
### 2026-02-19
|
||
- 完成 Phase 5 时间线视图功能
|
||
- 后端 API: `/api/v1/projects/{id}/timeline`
|
||
- 前端时间线面板,支持按日期分组显示
|
||
- 实体提及和关系建立事件可视化
|
||
- 实体筛选功能
|
||
- 统计卡片展示
|
||
- 修复静态文件路由覆盖 API 路由的问题
|
||
- 修复模块导入路径问题
|
||
- 部署到服务器: 122.51.127.111:18000
|
||
- 更新 README 开发清单
|