Files
insightflow/STATUS.md

325 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# InsightFlow 开发状态
**最后更新**: 2026-02-21 18:10
## 当前阶段
Phase 6: API 开放平台 - **已完成 ✅**
## 部署状态
- **服务器**: 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 6 已完成
## 技术债务
- 听悟 SDK fallback 到 mock 需要更好的错误处理
- 实体相似度匹配目前只是简单字符串包含,需要 embedding 方案
- 前端需要状态管理(目前使用全局变量)
- ~~需要添加 API 文档 (OpenAPI/Swagger)~~ ✅ 已完成
## 部署信息
- 服务器: 122.51.127.111
- 项目路径: /opt/projects/insightflow
- 端口: 18000
## 最近更新
### 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 开发清单