Files
insightflow/docs/PHASE3_FEATURES.md
2026-02-18 12:13:51 +08:00

4.5 KiB
Raw Permalink Blame History

InsightFlow Phase 3 功能说明

概述

Phase 3 实现了 InsightFlow 的"记忆与生长"能力,支持多文件知识融合、文档导入和项目级知识库管理。

功能清单

1. 多文件图谱融合

功能描述

  • 支持向同一项目上传多个音频文件
  • 系统自动对齐新文件中的实体与已有实体
  • 合并知识图谱,保持实体一致性
  • 跨文件追踪实体提及

使用方式

  1. 在工作台点击"+ 上传文件"
  2. 选择音频文件MP3/WAV/M4A
  3. 系统自动转录并提取实体
  4. 新实体与已有实体自动对齐
  5. 使用"📁 选择文件"切换不同转录内容

API

POST /api/v1/projects/{project_id}/upload
Content-Type: multipart/form-data
file: <音频文件>

2. 实体对齐算法优化

功能描述

  • 使用 Kimi API 的 embedding 服务计算语义相似度
  • 余弦相似度匹配算法
  • 支持阈值调整(默认 0.85
  • 自动别名建议
  • 失败时回退到字符串匹配

实现模块

  • backend/entity_aligner.py

核心算法

# 余弦相似度计算
def compute_similarity(embedding1, embedding2):
    vec1 = np.array(embedding1)
    vec2 = np.array(embedding2)
    dot_product = np.dot(vec1, vec2)
    norm1 = np.linalg.norm(vec1)
    norm2 = np.linalg.norm(vec2)
    return dot_product / (norm1 * norm2)

API

POST /api/v1/projects/{project_id}/align-entities?threshold=0.85

3. PDF/DOCX 文档导入

功能描述

  • 支持 PDF、DOCX、DOC、TXT、MD 格式
  • 自动提取文档文本
  • 文本参与实体提取和关系构建
  • 文档类型标记和区分

使用方式

  1. 在工作台点击"+ 上传文件"
  2. 切换到"📄 文档"标签
  3. 选择文档文件
  4. 系统自动解析并提取知识

实现模块

  • backend/document_processor.py

API

POST /api/v1/projects/{project_id}/upload-document
Content-Type: multipart/form-data
file: <文档文件>

4. 项目知识库面板

功能描述

  • 项目级全域知识库视图
  • 统计面板(实体数、关系数、文件数、术语数)
  • 实体网格展示(带提及统计)
  • 关系列表展示
  • 术语表管理
  • 文件列表(区分音频/文档)

使用方式

  1. 在工作台点击左侧"📚"图标
  2. 查看项目统计概览
  3. 切换侧边栏标签浏览不同内容
  4. 点击实体可跳转回工作台查看详情

API

GET /api/v1/projects/{project_id}/knowledge-base

5. 术语表管理

功能描述

  • 项目级术语表
  • 支持添加术语和发音提示
  • 频率统计
  • 用于 ASR 热词优化

使用方式

  1. 在知识库面板切换到"📖 术语表"
  2. 点击"+ 添加术语"
  3. 输入术语和发音提示
  4. 可删除不需要的术语

API

POST /api/v1/projects/{project_id}/glossary
GET /api/v1/projects/{project_id}/glossary
DELETE /api/v1/glossary/{term_id}

数据库 Schema 更新

transcripts 表

ALTER TABLE transcripts ADD COLUMN type TEXT DEFAULT 'audio';
-- 'audio' 或 'document'

entities 表

ALTER TABLE entities ADD COLUMN embedding TEXT;
-- JSON 数组存储 embedding 向量

glossary 表(新增)

CREATE TABLE glossary (
    id TEXT PRIMARY KEY,
    project_id TEXT NOT NULL,
    term TEXT NOT NULL,
    pronunciation TEXT,
    frequency INTEGER DEFAULT 1
);

前端更新

新增组件

  1. 侧边栏导航 - 切换工作台/知识库视图
  2. 文件选择器 - 切换不同转录文件
  3. 上传标签页 - 区分音频/文档上传
  4. 知识库面板 - 统计卡片、实体网格、关系列表、术语表

更新文件

  • frontend/workbench.html - 新增知识库 UI
  • frontend/app.js - 新增知识库逻辑、多文件支持

部署说明

环境变量

KIMI_API_KEY=your_kimi_api_key
KIMI_BASE_URL=https://api.kimi.com/coding
ALIYUN_ACCESS_KEY_ID=your_aliyun_key
ALIYUN_ACCESS_KEY_SECRET=your_aliyun_secret

部署命令

# 使用部署脚本
./deploy.sh

# 或手动部署
docker build -t insightflow:phase3 .
docker run -d \
  -p 18000:8000 \
  -v /opt/data:/app/data \
  -e KIMI_API_KEY=$KIMI_API_KEY \
  insightflow:phase3

测试检查清单

  • 上传多个音频文件到同一项目
  • 检查实体是否正确对齐
  • 上传 PDF 文档
  • 上传 DOCX 文档
  • 切换不同转录文件
  • 查看知识库面板统计
  • 添加术语到术语表
  • 删除术语
  • 实体合并功能
  • 关系创建/删除