# InsightFlow - Audio to Knowledge Graph Platform

InsightFlow 是一个音频转知识图谱平台，支持将音频、文档转换为结构化的知识图谱，并提供强大的分析和推理能力。

## 功能特性

### Phase 1-3: 基础功能 ✅
- 音频上传与转录（阿里云听悟 ASR）
- 实体提取与关系抽取
- 知识图谱可视化（D3.js）
- 多文件图谱融合
- PDF/DOCX 文档导入
- 实体对齐与别名管理
- 项目知识库面板

### Phase 4: Agent 助手与知识溯源 ✅
- AI 助手对话（RAG 问答）
- 实体操作指令执行
- 知识溯源（关系来源追踪）
- 实体悬停卡片
- 置信度提示

### Phase 5: 高级功能 ✅
- **知识推理** - 因果/对比/时序/关联推理
- **时间线视图** - 实体演变追踪
- **实体属性扩展** - 自定义属性模板
- **Neo4j 图数据库** - 复杂图查询、最短路径、社区发现
- **导出功能** - SVG/PNG/Excel/CSV/PDF/JSON

### Phase 6: API 开放平台 ✅
- **API Key 管理** - 创建、撤销、权限控制
- **Swagger/OpenAPI 文档** - 在线 API 文档
- **限流控制** - 滑动窗口限流、调用统计
- **调用日志** - 详细调用记录和分析

## 技术栈

- **后端**: FastAPI + SQLite
- **前端**: 原生 HTML/JS + D3.js
- **ASR**: 阿里云听悟
- **LLM**: Kimi API
- **图数据库**: Neo4j
- **文档处理**: PyPDF2, python-docx

## 快速开始

### 本地开发

```bash
# 克隆仓库
git clone https://git.sivdead.cn/claw/insightflow
cd insightflow

# 安装依赖
cd backend
pip install -r requirements.txt

# 运行开发服务器
python -m uvicorn main:app --reload --host 0.0.0.0 --port 8000
```

### Docker 部署

```bash
# 构建镜像
docker build -t insightflow:latest .

# 运行容器
docker run -d \
  -p 18000:8000 \
  -v /opt/data:/app/data \
  -e KIMI_API_KEY=your_key \
  -e ALIYUN_ACCESS_KEY_ID=your_key \
  -e ALIYUN_ACCESS_KEY_SECRET=your_secret \
  -e INSIGHTFLOW_MASTER_KEY=your_master_key \
  insightflow:latest
```

### Docker Compose 部署（推荐）

```bash
# 启动所有服务（含 Neo4j）
docker-compose up -d
```

## API 认证

从 Phase 6 开始，API 需要认证才能访问：

```bash
# 1. 创建 API Key（需要 Master Key）
curl -X POST http://localhost:18000/api/v1/api-keys \
  -H "X-API-Key: your_master_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "My App", "permissions": ["read", "write"]}'

# 2. 使用 API Key 访问受保护端点
curl http://localhost:18000/api/v1/projects \
  -H "X-API-Key: ak_live_xxxxx"
```

## API 文档

- Swagger UI: http://122.51.127.111:18000/docs
- ReDoc: http://122.51.127.111:18000/redoc

## 部署信息

- **服务器**: 122.51.127.111:18000
- **Neo4j**: 122.51.127.111:7474 (HTTP), 122.51.127.111:7687 (Bolt)
- **Git 仓库**: https://git.sivdead.cn/claw/insightflow

## 开发状态

详见 [STATUS.md](STATUS.md)

## 项目文档

- [PRD v2.0](docs/PRD-v2.0.md) - 产品需求规格说明书
- [STATUS.md](STATUS.md) - 详细开发状态跟踪

## 许可证

MIT

---

## Phase 7: 智能化与生态扩展 - 规划中 🚧

基于现有功能和用户反馈，Phase 7 聚焦**智能化增强**和**生态扩展**：

### 1. 智能工作流自动化 🤖
**优先级: P0**
- 定时任务自动分析新上传的音频/文档
- 自动实体对齐和关系发现
- 智能提醒（如发现新关联、实体冲突）
- Webhook 集成（支持飞书、钉钉、Slack 通知）

### 2. 多模态支持 🎬
**优先级: P0**
- 视频文件导入（提取音频 + 关键帧 OCR）
- 图片内容识别（白板、PPT、手写笔记）
- 多模态实体关联（同一实体在音频、图片、文档中的提及）

### 3. 协作与共享 👥
**优先级: P1**
- 项目分享（只读/可编辑链接）
- 评论和批注（在实体、关系、转录文本上添加评论）
- 变更历史（谁修改了什么，何时修改）
- 团队空间（多用户项目协作）

### 4. 智能报告生成 📊
**优先级: P1**
- 一键生成项目总结报告（PDF/Word）
- 实体关系网络分析报告
- 会议纪要和行动项提取
- 自定义报告模板

### 5. 插件与集成 🔌
**优先级: P2**
- Chrome 插件（网页内容一键导入）
- 飞书/钉钉机器人（群内直接分析音频）
- Zapier/Make 集成（连接 5000+ 应用）
- WebDAV 同步（与坚果云等网盘联动）

### 6. 高级搜索与发现 🔍
**优先级: P2**
- 全文搜索（跨所有转录文本）
- 语义搜索（基于 embedding 的相似度搜索）
- 实体关系路径发现（A 和 B 之间如何关联）
- 知识缺口识别（项目中缺失的关键信息）

### 7. 数据安全与合规 🔒
**优先级: P1**
- 端到端加密（敏感项目数据加密存储）
- 数据脱敏（自动识别并脱敏敏感信息）
- 审计日志（完整操作记录）
- GDPR/数据合规支持

### 8. 性能优化与扩展 ⚡
**优先级: P2**
- Redis 缓存层（热点数据缓存）
- 数据库分片（支持大规模项目）
- CDN 加速（静态资源全球加速）
- 异步任务队列（Celery + Redis）

---

## Phase 7 开发进度

| 任务 | 状态 | 完成时间 |
|------|------|----------|
| 1. 智能工作流自动化 | ✅ 已完成 | 2026-02-23 |
| 2. 多模态支持 | ✅ 已完成 | 2026-02-23 |
| 7. 插件与集成 | ✅ 已完成 | 2026-02-23 |
| 3. 数据安全与合规 | ✅ 已完成 | 2026-02-23 |
| 4. 协作与共享 | ✅ 已完成 | 2026-02-24 |
| 5. 智能报告生成 | ✅ 已完成 | 2026-02-24 |
| 6. 高级搜索与发现 | ✅ 已完成 | 2026-02-24 |
| 8. 性能优化与扩展 | ✅ 已完成 | 2026-02-24 |

**Phase 7 全部完成！** 🎉

**实际完成时间**: 2 周

---

## Phase 8: 商业化与规模化 - 进行中 🚧

基于 Phase 1-7 的完整功能，Phase 8 聚焦**商业化落地**和**规模化运营**：

### 1. 多租户 SaaS 架构 🏢
**优先级: P0** | **状态: ✅ 已完成**
- ✅ 租户隔离（数据、配置、资源完全隔离）
- ✅ 自定义域名绑定（CNAME 支持）
- ✅ 品牌白标（Logo、主题色、自定义 CSS）
- ✅ 租户级权限管理（超级管理员、管理员、成员）

### 2. 订阅与计费系统 💳
**优先级: P0** | **状态: ✅ 已完成**
- ✅ 多层级订阅计划（Free/Pro/Enterprise）
- ✅ 按量计费（转录时长、存储空间、API 调用次数）
- ✅ 支付集成（Stripe、支付宝、微信支付）
- ✅ 发票管理、退款处理、账单历史

### 3. 企业级功能 🏭
**优先级: P1** | **状态: ✅ 已完成**
- ✅ SSO/SAML 单点登录（企业微信、钉钉、飞书、Okta）
- ✅ SCIM 用户目录同步
- ✅ 审计日志导出（SOC2/ISO27001 合规）
- ✅ 数据保留策略（自动归档、数据删除）

### 4. 运营与增长工具 📈
**优先级: P1**
- 用户行为分析（Mixpanel/Amplitude 集成）
- A/B 测试框架
- 邮件营销自动化（欢迎序列、流失挽回）
- 推荐系统（邀请返利、团队升级激励）

### 5. 开发者生态 🛠️
**优先级: P2**
- SDK 发布（Python/JavaScript/Go）
- 模板市场（行业模板、预训练模型）
- 插件市场（第三方插件审核与分发）
- 开发者文档与示例代码

### 6. 全球化与本地化 🌍
**优先级: P2**
- 多语言支持（i18n，至少 10 种语言）
- 区域数据中心（北美、欧洲、亚太）
- 本地化支付（各国主流支付方式）
- 时区与日历本地化

### 7. AI 能力增强 🤖
**优先级: P1** | **状态: ✅ 已完成**
- ✅ 自定义模型训练（领域特定实体识别）
- ✅ 多模态大模型集成（GPT-4V、Claude 3）
- ✅ 智能摘要与问答（基于知识图谱的 RAG）
- ✅ 预测性分析（趋势预测、异常检测）

### 8. 运维与监控 🔧
**优先级: P2**
- 实时告警系统（PagerDuty/Opsgenie 集成）
- 容量规划与自动扩缩容
- 灾备与故障转移（多活架构）
- 成本优化（资源利用率监控）

---

### Phase 8 任务 7 完成内容

**全球化与本地化** ✅

- ✅ 创建 localization_manager.py - 全球化与本地化管理模块
  - LocalizationManager: 全球化与本地化管理主类
  - LanguageCode: 支持12种语言（英语、简体中文、繁体中文、日语、韩语、德语、法语、西班牙语、葡萄牙语、俄语、阿拉伯语、印地语）
  - RegionCode/DataCenterRegion: 区域和数据中心配置（北美、欧洲、亚太、中国等）
  - Translation: 翻译管理（支持命名空间、回退语言、审核流程）
  - LanguageConfig: 语言配置（RTL支持、日期时间格式、数字格式、日历类型）
  - DataCenter: 数据中心管理（9个数据中心，支持全球分布）
  - TenantDataCenterMapping: 租户数据中心映射（主备数据中心、数据驻留策略）
  - LocalizedPaymentMethod: 本地化支付方式（12种支付方式，支持国家/货币过滤）
  - CountryConfig: 国家配置（语言、货币、时区、税率等）
  - TimezoneConfig: 时区配置管理
  - CurrencyConfig: 货币配置管理
  - LocalizationSettings: 租户本地化设置
  - 日期时间格式化（支持Babel本地化）
  - 数字和货币格式化
  - 时区转换
  - 日历信息获取
  - 用户偏好自动检测
- ✅ 更新 schema.sql - 添加本地化相关数据库表
  - translations: 翻译表
  - language_configs: 语言配置表
  - data_centers: 数据中心表
  - tenant_data_center_mappings: 租户数据中心映射表
  - localized_payment_methods: 本地化支付方式表
  - country_configs: 国家配置表
  - timezone_configs: 时区配置表
  - currency_configs: 货币配置表
  - localization_settings: 租户本地化设置表
  - 相关索引优化
- ✅ 更新 main.py - 添加本地化相关 API 端点（35个端点）
  - GET /api/v1/translations/{language}/{key} - 获取翻译
  - POST /api/v1/translations/{language} - 创建翻译
  - PUT /api/v1/translations/{language}/{key} - 更新翻译
  - DELETE /api/v1/translations/{language}/{key} - 删除翻译
  - GET /api/v1/translations - 列出翻译
  - GET /api/v1/languages - 列出语言
  - GET /api/v1/languages/{code} - 获取语言详情
  - GET /api/v1/data-centers - 列出数据中心
  - GET /api/v1/data-centers/{dc_id} - 获取数据中心详情
  - GET /api/v1/tenants/{tenant_id}/data-center - 获取租户数据中心
  - POST /api/v1/tenants/{tenant_id}/data-center - 设置租户数据中心
  - GET /api/v1/payment-methods - 列出支付方式
  - GET /api/v1/payment-methods/localized - 获取本地化支付方式
  - GET /api/v1/countries - 列出国家
  - GET /api/v1/countries/{code} - 获取国家详情
  - GET /api/v1/tenants/{tenant_id}/localization - 获取租户本地化设置
  - POST /api/v1/tenants/{tenant_id}/localization - 创建租户本地化设置
  - PUT /api/v1/tenants/{tenant_id}/localization - 更新租户本地化设置
  - POST /api/v1/format/datetime - 格式化日期时间
  - POST /api/v1/format/number - 格式化数字
  - POST /api/v1/format/currency - 格式化货币
  - POST /api/v1/convert/timezone - 转换时区
  - GET /api/v1/detect/locale - 检测用户本地化偏好
  - GET /api/v1/calendar/{calendar_type} - 获取日历信息

---

## Phase 8 开发进度

| 任务 | 状态 | 完成时间 |
|------|------|----------|
| 1. 多租户 SaaS 架构 | ✅ 已完成 | 2026-02-25 |
| 2. 订阅与计费系统 | ✅ 已完成 | 2026-02-25 |
| 3. 企业级功能 | ✅ 已完成 | 2026-02-25 |
| 7. 全球化与本地化 | ✅ 已完成 | 2026-02-25 |
| 4. AI 能力增强 | ✅ 已完成 | 2026-02-26 |
| 5. 运营与增长工具 | ✅ 已完成 | 2026-02-26 |
| 6. 开发者生态 | ✅ 已完成 | 2026-02-26 |
| 8. 运维与监控 | ✅ 已完成 | 2026-02-26 |
| 6. 开发者生态 | ⏳ 待开始 | - |
| 8. 运维与监控 | ⏳ 待开始 | - |

### Phase 8 任务 1 完成内容

**多租户 SaaS 架构** ✅

- ✅ 创建 tenant_manager.py - 多租户管理模块
  - TenantManager: 租户管理主类
  - Tenant: 租户数据模型（支持 Free/Pro/Enterprise 层级）
  - TenantDomain: 自定义域名管理（DNS/文件验证）
  - TenantBranding: 品牌白标配置（Logo、主题色、CSS）
  - TenantMember: 租户成员管理（Owner/Admin/Member/Viewer 角色）
  - TenantContext: 租户上下文管理器
  - 租户隔离（数据、配置、资源完全隔离）
  - 资源限制和用量统计
- ✅ 更新 schema.sql - 添加租户相关数据库表
  - tenants: 租户主表
  - tenant_domains: 租户域名绑定表
  - tenant_branding: 租户品牌配置表
  - tenant_members: 租户成员表
  - tenant_permissions: 租户权限定义表
  - tenant_usage: 租户资源使用统计表
- ✅ 更新 main.py - 添加租户相关 API 端点
  - POST/GET /api/v1/tenants - 租户管理
  - POST/GET /api/v1/tenants/{id}/domains - 域名管理
  - POST /api/v1/tenants/{id}/domains/{id}/verify - 域名验证
  - GET/PUT /api/v1/tenants/{id}/branding - 品牌配置
  - GET /api/v1/tenants/{id}/branding.css - 品牌 CSS（公开）
  - POST/GET /api/v1/tenants/{id}/members - 成员管理
  - GET /api/v1/tenants/{id}/usage - 使用统计
  - GET /api/v1/tenants/{id}/limits/{type} - 资源限制检查
  - GET /api/v1/resolve-tenant - 域名解析租户

### Phase 8 任务 2 完成内容

**订阅与计费系统** ✅

- ✅ 创建 subscription_manager.py - 订阅与计费管理模块
  - SubscriptionPlan: 订阅计划模型（Free/Pro/Enterprise）
  - Subscription: 订阅记录（支持试用、周期计费）
  - UsageRecord: 用量记录（转录时长、存储空间、API 调用）
  - Payment: 支付记录（支持 Stripe/支付宝/微信支付）
  - Invoice: 发票管理
  - Refund: 退款处理
  - BillingHistory: 账单历史
- ✅ 更新 schema.sql - 添加订阅相关数据库表
  - subscription_plans: 订阅计划表
  - subscriptions: 订阅表
  - usage_records: 用量记录表
  - payments: 支付记录表
  - invoices: 发票表
  - refunds: 退款表
  - billing_history: 账单历史表
- ✅ 更新 main.py - 添加订阅相关 API 端点（26个端点）
  - GET /api/v1/subscription-plans - 获取订阅计划列表
  - POST/GET /api/v1/tenants/{id}/subscriptions - 订阅管理
  - POST /api/v1/tenants/{id}/subscriptions/{id}/cancel - 取消订阅
  - POST /api/v1/tenants/{id}/subscriptions/{id}/change-plan - 变更计划
  - GET /api/v1/tenants/{id}/usage - 用量统计
  - POST /api/v1/tenants/{id}/usage/record - 记录用量
  - POST /api/v1/tenants/{id}/payments - 创建支付
  - GET /api/v1/tenants/{id}/payments - 支付历史
  - POST/GET /api/v1/tenants/{id}/invoices - 发票管理
  - POST/GET /api/v1/tenants/{id}/refunds - 退款管理
  - POST /api/v1/tenants/{id}/refunds/{id}/process - 处理退款
  - GET /api/v1/tenants/{id}/billing-history - 账单历史
  - POST /api/v1/payments/stripe/create - Stripe 支付
  - POST /api/v1/payments/alipay/create - 支付宝支付
  - POST /api/v1/payments/wechat/create - 微信支付
  - POST /webhooks/stripe - Stripe Webhook
  - POST /webhooks/alipay - 支付宝 Webhook
  - POST /webhooks/wechat - 微信支付 Webhook

### Phase 8 任务 3 完成内容

**企业级功能** ✅

- ✅ 创建 enterprise_manager.py - 企业级功能管理模块
  - SSOConfig: SSO/SAML 配置数据模型（支持企业微信、钉钉、飞书、Okta、Azure AD、Google、自定义 SAML）
  - SCIMConfig/SCIMUser: SCIM 用户目录同步配置和用户数据模型
  - AuditLogExport: 审计日志导出记录（支持 SOC2/ISO27001/GDPR/HIPAA/PCI DSS 合规）
  - DataRetentionPolicy/DataRetentionJob: 数据保留策略和任务管理
  - SAMLAuthRequest/SAMLAuthResponse: SAML 认证请求和响应管理
  - SSO 配置管理（创建、更新、删除、列表、元数据生成）
  - SCIM 用户同步（配置管理、手动同步、用户列表）
  - 审计日志导出（创建导出任务、处理、下载、合规标准支持）
  - 数据保留策略（创建、执行、归档/删除/匿名化、任务追踪）
- ✅ 更新 schema.sql - 添加企业级功能相关数据库表
  - sso_configs: SSO 配置表（SAML/OAuth 配置、属性映射、域名限制）
  - saml_auth_requests: SAML 认证请求表
  - saml_auth_responses: SAML 认证响应表
  - scim_configs: SCIM 配置表
  - scim_users: SCIM 用户表
  - audit_log_exports: 审计日志导出表
  - data_retention_policies: 数据保留策略表
  - data_retention_jobs: 数据保留任务表
  - 相关索引优化
- ✅ 更新 main.py - 添加企业级功能相关 API 端点（25个端点）
  - POST/GET /api/v1/tenants/{id}/sso-configs - SSO 配置管理
  - GET/PUT/DELETE /api/v1/tenants/{id}/sso-configs/{id} - SSO 配置详情/更新/删除
  - GET /api/v1/tenants/{id}/sso-configs/{id}/metadata - 获取 SAML 元数据
  - POST/GET /api/v1/tenants/{id}/scim-configs - SCIM 配置管理
  - PUT /api/v1/tenants/{id}/scim-configs/{id} - 更新 SCIM 配置
  - POST /api/v1/tenants/{id}/scim-configs/{id}/sync - 执行 SCIM 同步
  - GET /api/v1/tenants/{id}/scim-users - 列出 SCIM 用户
  - POST /api/v1/tenants/{id}/audit-exports - 创建审计日志导出
  - GET /api/v1/tenants/{id}/audit-exports - 列出审计日志导出
  - GET /api/v1/tenants/{id}/audit-exports/{id} - 获取导出详情
  - POST /api/v1/tenants/{id}/audit-exports/{id}/download - 下载导出文件
  - POST /api/v1/tenants/{id}/retention-policies - 创建数据保留策略
  - GET /api/v1/tenants/{id}/retention-policies - 列出保留策略
  - GET /api/v1/tenants/{id}/retention-policies/{id} - 获取策略详情
  - PUT /api/v1/tenants/{id}/retention-policies/{id} - 更新保留策略
  - DELETE /api/v1/tenants/{id}/retention-policies/{id} - 删除保留策略
  - POST /api/v1/tenants/{id}/retention-policies/{id}/execute - 执行保留策略
  - GET /api/v1/tenants/{id}/retention-policies/{id}/jobs - 列出保留任务

### Phase 8 任务 4 完成内容

**AI 能力增强** ✅

- ✅ 创建 ai_manager.py - AI 能力增强管理模块
  - AIManager: AI 能力管理主类
  - CustomModel/ModelType/ModelStatus: 自定义模型管理（支持领域特定实体识别）
  - TrainingSample: 训练样本管理
  - MultimodalAnalysis/MultimodalProvider: 多模态分析（支持 GPT-4V、Claude 3、Gemini、Kimi-VL）
  - KnowledgeGraphRAG: 基于知识图谱的 RAG 配置管理
  - RAGQuery: RAG 查询记录
  - SmartSummary: 智能摘要（extractive/abstractive/key_points/timeline）
  - PredictionModel/PredictionType: 预测模型管理（趋势预测、异常检测、实体增长预测、关系演变预测）
  - PredictionResult: 预测结果管理
  - 自定义模型训练流程（创建、添加样本、训练、预测）
  - 多模态分析流程（图片、视频、音频、混合输入）
  - 知识图谱 RAG 检索与生成
  - 智能摘要生成
  - 预测性分析（趋势、异常、增长、演变）
- ✅ 更新 schema.sql - 添加 AI 能力增强相关数据库表
  - custom_models: 自定义模型表
  - training_samples: 训练样本表
  - multimodal_analyses: 多模态分析表
  - kg_rag_configs: 知识图谱 RAG 配置表
  - rag_queries: RAG 查询记录表
  - smart_summaries: 智能摘要表
  - prediction_models: 预测模型表
  - prediction_results: 预测结果表
  - 相关索引优化
- ✅ 更新 main.py - 添加 AI 能力增强相关 API 端点（30+个端点）
  - POST /api/v1/tenants/{tenant_id}/ai/custom-models - 创建自定义模型
  - GET /api/v1/tenants/{tenant_id}/ai/custom-models - 列出自定义模型
  - GET /api/v1/ai/custom-models/{model_id} - 获取模型详情
  - POST /api/v1/ai/custom-models/{model_id}/samples - 添加训练样本
  - GET /api/v1/ai/custom-models/{model_id}/samples - 获取训练样本
  - POST /api/v1/ai/custom-models/{model_id}/train - 训练模型
  - POST /api/v1/ai/custom-models/predict - 模型预测
  - POST /api/v1/tenants/{tenant_id}/projects/{project_id}/ai/multimodal - 多模态分析
  - GET /api/v1/tenants/{tenant_id}/ai/multimodal - 获取多模态分析历史
  - POST /api/v1/tenants/{tenant_id}/projects/{project_id}/ai/kg-rag - 创建知识图谱 RAG
  - GET /api/v1/tenants/{tenant_id}/ai/kg-rag - 列出 RAG 配置
  - POST /api/v1/ai/kg-rag/query - 知识图谱 RAG 查询
  - POST /api/v1/tenants/{tenant_id}/projects/{project_id}/ai/summarize - 生成智能摘要
  - POST /api/v1/tenants/{tenant_id}/projects/{project_id}/ai/prediction-models - 创建预测模型
  - GET /api/v1/tenants/{tenant_id}/ai/prediction-models - 列出预测模型
  - GET /api/v1/ai/prediction-models/{model_id} - 获取预测模型详情
  - POST /api/v1/ai/prediction-models/{model_id}/train - 训练预测模型
  - POST /api/v1/ai/prediction-models/predict - 进行预测
  - GET /api/v1/ai/prediction-models/{model_id}/results - 获取预测结果历史
  - POST /api/v1/ai/prediction-results/feedback - 更新预测反馈

**实际完成时间**: 1 天 (2026-02-26)

---

**建议开发顺序**: 1 → 2 → 3 → 7 → 4 → 5 → 6 → 8

**Phase 8 全部完成！** 🎉
