MicroFish/PRD.md

244 lines
7.3 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.

# Foresight 先见之明 — 产品需求文档 (PRD)
## 1. 产品概述
Foresight先见之明是一个基于知识图谱和 LLM 的社交媒体舆情模拟平台。用户上传文档资料,系统自动构建知识图谱、生成虚拟 Agent 画像,并模拟社交媒体上的传播与互动行为,最终生成分析报告。
**核心价值**:在事件发生前预判舆论走向,帮助品牌、政府、机构提前制定应对策略。
**上游项目**:基于 [MiroFish](https://github.com/666ghj/MiroFish) v0.1.2 二次开发。
---
## 2. 目标用户
| 用户类型 | 使用场景 |
|----------|----------|
| 品牌公关团队 | 新品发布前预判舆论反应 |
| 政府舆情分析师 | 政策出台前模拟民意 |
| 内容创作者 | 预测爆款视频的传播路径 |
| 研究人员 | 社交网络传播行为研究 |
---
## 3. 系统架构
```
用户浏览器
├── 前端 (Vue 3 + Vite)
│ 部署: 腾讯云 COS + CDN
│ 域名: foresight.yizhou.chat
└── 后端 (Flask + Python)
端口: 5001
├── LLM API (MiniMax M2.7 Highspeed)
│ 用途: 本体生成、画像生成、配置生成、报告生成
└── Zep Cloud API
用途: 知识图谱存储、搜索、记忆更新
```
---
## 4. 核心功能流程5 步流水线)
### Step 1: 图谱构建
**输入**: 用户上传文档PDF/MD/TXT+ 模拟需求描述
**流程**:
1. 文档解析 → 文本提取
2. LLM 分析文档 → 生成本体10 个实体类型 + 6-10 个关系类型)
3. 文本分块 → 批量导入 Zep → 构建知识图谱
4. 返回图谱可视化(节点 + 边)
**API 端点**:
- `POST /api/graph/ontology/generate` — 本体生成
- `POST /api/graph/build` — 图谱构建
- `GET /api/graph/task/<task_id>` — 构建进度查询
**Token 消耗**:
| 服务 | 小文档 (10 实体) | 大文档 (50 实体) |
|------|------------------|------------------|
| LLM (本体生成) | 3K-8K | 5K-12K |
| Zep (图谱构建) | 5K-10K | 20K-50K |
### Step 2: 环境配置
**输入**: 已构建的知识图谱
**流程**:
1. 从 Zep 读取图谱实体和关系
2. 按实体类型筛选,为每个实体生成 Agent 画像LLM
3. 生成模拟配置时间线、事件、Agent 活动参数、平台配置
**API 端点**:
- `POST /api/simulation/prepare` — 准备模拟环境
**Token 消耗**:
| 服务 | 小规模 (10 实体) | 大规模 (50 实体) |
|------|------------------|------------------|
| LLM (画像生成) | 20K-40K | 50K-100K |
| LLM (配置生成) | 20K-35K | 40K-50K |
| Zep (实体读取) | 1K-2K | 5K-10K |
### Step 3: 模拟运行
**输入**: Agent 画像 + 模拟配置
**流程**:
1. 创建虚拟社交平台环境
2. Agent 按配置执行社交行为(发帖、评论、转发、点赞等)
3. 实时记录互动日志
4. 可选:将 Agent 行为写回 Zep 图谱(记忆更新)
**API 端点**:
- `POST /api/simulation/run` — 启动模拟
- `GET /api/simulation/status/<sim_id>` — 查询状态
- `GET /api/simulation/history` — 历史记录
**Token 消耗**:
| 服务 | 说明 |
|------|------|
| Zep (记忆更新,可选) | 每个 Agent 动作 100-300 tokens大规模模拟可达 1M+ |
### Step 4: 报告生成
**输入**: 模拟结果 + 知识图谱
**流程**:
1. LLM 规划报告大纲5 个章节)
2. 每个章节使用 ReACT 循环(推理→工具调用→生成)
3. 工具调用包括图谱搜索InsightForge/Panorama、节点详情查询
4. 最终输出结构化分析报告
**API 端点**:
- `POST /api/report/generate` — 生成报告
**Token 消耗**:
| 服务 | 小规模 | 大规模 |
|------|--------|--------|
| LLM (ReACT 多轮) | 50K-80K | 100K-150K |
| Zep (图谱搜索) | 5K-10K | 10K-20K |
> 报告生成是整个流水线中**Token 消耗最大**的环节。
### Step 5: 交互问答
**输入**: 用户问题
**流程**:
1. 用户自由提问
2. 系统结合图谱搜索 + LLM 回答
**API 端点**:
- `POST /api/report/chat` — 实时问答
**Token 消耗**: 每条消息 2K-4K tokens (LLM + Zep)
---
## 5. Token 消耗总览
### 单次完整流水线估算
| 阶段 | 主要 API | 10 实体 | 50 实体 |
|------|----------|---------|---------|
| 图谱构建 | LLM + Zep | 8K-18K | 25K-62K |
| 环境配置 | LLM + Zep | 41K-77K | 95K-160K |
| 模拟运行 | Zep (可选) | 0-100K | 0-1M+ |
| 报告生成 | LLM + Zep | 55K-90K | 110K-170K |
| **合计 (不含模拟记忆)** | | **~100K-185K** | **~230K-392K** |
### API 费用构成
| 外部服务 | 用途 | 计费方式 |
|----------|------|----------|
| **MiniMax M2.7 Highspeed** | 所有 LLM 推理(本体/画像/配置/报告/问答) | 按 token 计费 |
| **Zep Cloud** | 知识图谱(存储/搜索/记忆更新) | 按 API 调用计费 |
---
## 6. 技术栈
### 前端
| 技术 | 版本 | 用途 |
|------|------|------|
| Vue 3 | 3.x | UI 框架 |
| Vite | 7.x | 构建工具 |
| D3.js / Force Graph | - | 图谱可视化 |
### 后端
| 技术 | 版本 | 用途 |
|------|------|------|
| Python | 3.x | 运行时 |
| Flask | - | Web 框架 |
| OpenAI SDK | - | LLM 客户端(兼容 MiniMax |
| zep-cloud | 3.13.0 | Zep 知识图谱 SDK |
### 部署
| 组件 | 平台 | 说明 |
|------|------|------|
| 前端静态文件 | 腾讯云 COS + CDN | foresight.yizhou.chat |
| SSL 证书 | Let's Encrypt | 通过 acme.sh 签发 |
| 后端 API | 待部署 | 需要云服务器运行 Flask |
---
## 7. 配置项
```env
# LLM 配置
LLM_API_KEY=<MiniMax API Key>
LLM_BASE_URL=https://api.minimax.chat/v1
LLM_MODEL_NAME=MiniMax-M2.5
# Zep 配置
ZEP_API_KEY=<Zep Cloud API Key>
# 服务端口
FLASK_PORT=5001
```
---
## 8. 当前状态与待办
### 已完成
- [x] 前端 UIVue 3支持明暗主题
- [x] 品牌迁移MiroFish → Foresight 先见之明)
- [x] 前端部署(腾讯云 COS + CDN + HTTPS
- [x] Dark Mode 全屏响应式布局
- [x] 国际化支持(中/英)
### 待完成
- [ ] **后端云部署**当前后端只能在本地运行localhost:5001需部署到腾讯云 CVM 或轻量服务器
- [ ] **前端 API 地址配置**:设置 `VITE_API_BASE_URL` 指向云端后端
- [ ] **图谱生成功能验证**:端到端测试完整流水线
- [ ] **模拟结果持久化**:当前模拟结果存在内存中,需接入数据库
- [ ] **用户认证**:多用户场景下的身份管理
---
## 9. 关键文件索引
| 路径 | 用途 |
|------|------|
| `frontend/src/api/index.js` | API 客户端配置baseURL |
| `frontend/src/views/Process.vue` | 图谱构建主界面 |
| `frontend/src/views/SimulationView.vue` | 模拟运行界面 |
| `frontend/src/views/ReportView.vue` | 报告查看界面 |
| `backend/run.py` | 后端入口 |
| `backend/app/api/graph.py` | 图谱相关 API 端点 |
| `backend/app/api/simulation.py` | 模拟相关 API 端点 |
| `backend/app/api/report.py` | 报告相关 API 端点 |
| `backend/app/services/ontology_generator.py` | 本体生成服务LLM |
| `backend/app/services/graph_builder.py` | 图谱构建服务Zep |
| `backend/app/services/oasis_profile_generator.py` | Agent 画像生成LLM + Zep |
| `backend/app/services/simulation_config_generator.py` | 模拟配置生成LLM |
| `backend/app/services/report_agent.py` | 报告生成ReACTLLM + Zep |
| `backend/app/utils/llm_client.py` | LLM 客户端封装 |
| `.env` | API Keys 和配置 |