# MindFlow - AI driven intelligent knowledge management platform
**Repository Path**: da-qing-oh/MindFlow-AI-platform
## Basic Information
- **Project Name**: MindFlow - AI driven intelligent knowledge management platform
- **Description**: Leveraging LangGraph, LlamaIndex and hybrid RAG for knowledge clustering, graph visualization and Q&A, with DSPy optimization and LangFuse observability.
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-29
- **Last Updated**: 2026-05-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MindFlow AI 平台
> **基于 FastAPI + Vue3 的全栈博客系统,集成知识图谱可视化、智能问答、Agent 工作流等企业级 AI 能力。**
***
## 项目概览
MindFlow 是一个面向技术内容创作与知识管理的现代化博客平台。项目采用前后端分离架构,后端基于 Python 异步生态构建高性能 API 服务,前端基于 Vue3 组合式 API 实现流畅的交互体验。核心亮点在于深度整合了 LLM(大语言模型)能力,将传统博客系统升级为具备**知识索引、语义检索、智能问答、知识图谱可视化**的 AI 驱动型内容平台。
**项目定位**:生产级全栈项目,覆盖从数据库设计、RESTful API 开发、前端工程化到 AI 能力集成的完整技术链路。
***
## 系统架构拓扑
```mermaid
graph TB
subgraph 客户端层
A[Web 浏览器
Vue3 + TypeScript]
B[移动端/第三方
REST API 调用]
end
subgraph 前端服务层
C[Vite 构建工具]
D[Vue Router 路由管理]
E[Pinia 状态管理]
F[Element Plus UI 组件库]
G[G6 知识图谱可视化引擎]
end
subgraph 网关与负载层
H[Nginx 反向代理
静态资源托管]
end
subgraph 后端服务层
I[FastAPI 异步框架
Uvicorn ASGI 服务器]
J[JWT 认证中间件
OAuth2 + RBAC 权限控制]
K[API 路由层
RESTful 规范]
L[业务逻辑层
Services 分层]
M[数据访问层
SQLAlchemy 2.0 Async]
end
subgraph AI 能力层
N[LLM 统一调用层
多 Provider 动态切换]
O[知识索引引擎
LlamaIndex + 语义检索]
P[知识聚类分析
HDBSCAN 自动主题发现]
Q[知识图谱可视化
G6 力导向图渲染]
R[Agent 工作流引擎
LangGraph 多步推理]
S[Prompt 自动优化
DSPy 模块量化调优]
T[LLM 调用追踪
LangFuse 全链路监控]
U[任务调度系统
Prefect 生产级工作流]
end
subgraph 数据存储层
V[(MySQL 8.0
主业务数据库)]
W[(Elasticsearch
全文搜索引擎)]
X[(Redis
缓存与会话)]
Y[本地文件系统
静态资源/日志]
end
A -->|HTTP/HTTPS| H
B -->|HTTP/HTTPS| H
H -->|反向代理| C
C --> D
C --> E
C --> F
C --> G
H -->|API 请求转发| I
I --> J
J --> K
K --> L
L --> M
M --> V
L --> O
L --> R
L --> U
O --> W
N --> T
R --> N
S --> N
U --> L
G --> Q
Q --> O
O --> P
```
***
## 技术栈选型
### 后端架构
| 技术 | 版本 | 选型理由 |
| ----------------- | ------- | -------------------------------------------- |
| **FastAPI** | 0.115.0 | Python 异步高性能 Web 框架,原生支持 OpenAPI 自动生成,类型驱动开发 |
| **SQLAlchemy** | 2.0.36 | 企业级 ORM,2.0 版本全面支持异步操作和类型注解 |
| **Pydantic** | 2.9.0 | 数据校验与序列化标准,与 FastAPI 深度集成 |
| **MySQL** | 8.0 | 主数据库存储,支持事务、索引优化、JSON 字段 |
| **Elasticsearch** | 8.x | 全文搜索引擎,支持分词、高亮、聚合查询 |
| **Redis** | 7.x | 缓存层、Session 存储、分布式锁 |
| **JWT** | PyJWT | 无状态认证,支持 Token 刷新与黑名单机制 |
| **Alembic** | 1.13+ | 数据库版本迁移管理 |
### AI 技术栈
| 技术 | 应用场景 |
| -------------- | ------------------------------------------ |
| **LlamaIndex** | 知识文档索引、语义检索、RAG(检索增强生成) |
| **LangGraph** | Agent 多步推理工作流编排(WikiBuilder / QAReasoning) |
| **DSPy** | LLM Prompt 自动优化与模块量化调优 |
| **LangFuse** | LLM 调用全链路追踪、Token 消耗监控、成本分析 |
| **Prefect** | 定时任务调度、ETL 工作流、数据同步管道 |
| **HDBSCAN** | 无监督知识聚类,自动发现文章主题分布 |
| **G6 / AntV** | 知识图谱力导向图可视化、节点关系交互 |
### 前端架构
| 技术 | 版本 | 选型理由 |
| ---------------- | ---- | ------------------------------ |
| **Vue 3** | 3.4+ | 组合式 API,更好的逻辑复用和 TypeScript 支持 |
| **TypeScript** | 5.3+ | 全链路类型安全,编译期错误检测 |
| **Vite** | 5.0+ | 极速构建,原生 ESM,HMR 热更新 |
| **Element Plus** | 2.5+ | 企业级 UI 组件库,暗色主题支持 |
| **Pinia** | 2.1+ | 轻量级状态管理,Devtools 友好 |
| **Vue Router** | 4.2+ | 前端路由管理,支持懒加载和导航守卫 |
***
## 核心功能模块
### 1. 用户与权限系统(RBAC)
- **JWT 认证**:Access Token + Refresh Token 双令牌机制,支持 Token 自动续期
- **RBAC 权限模型**:基于角色的访问控制,支持用户-角色-权限三级关联
- **接口级权限校验**:装饰器式权限控制,精确到按钮级别的前端权限渲染
- **头像上传**:异步文件上传,本地存储与 URL 回显
**技术难点**:异步数据库会话管理、密码哈希安全(bcrypt)、Token 黑名单刷新机制。
### 2. 文章与内容管理
- **Markdown 编辑器**:支持代码高亮、数学公式、图片拖拽上传
- **分类与标签体系**:多级分类关联,文章多标签支持
- **草稿与发布状态**:工作流状态管理,定时发布预留
- **浏览统计**:文章阅读量实时统计,热门文章排序
**数据规模**:支持单表百万级文章数据,通过数据库索引和 ES 全文检索保障查询性能。
### 3. 评论与互动系统
- **层级嵌套回复**:支持多级评论嵌套,树形结构展示
- **实时通知预留**:WebSocket 接入点预留,支持评论实时推送
### 4. 知识图谱可视化(项目亮点)
- **G6 力导向图**:基于 AntV G6 实现知识节点与关系的力导向布局
- **节点交互**:点击高亮、拖拽定位、缩放平移、节点详情浮窗
- **关系映射**:文章-分类-标签-作者的多维关系图谱
- **迷你图谱嵌入**:文章详情页内嵌知识关系子图
**技术难点**:大规模节点性能优化(>500 节点)、关系边去重与聚合、画布响应式适配。
### 5. 智能问答系统(RAG 架构)
- **知识索引**:LlamaIndex 对文章进行向量化索引,支持增量更新
- **语义检索**:基于向量相似度的 Top-K 召回,非传统关键词匹配
- **多路径检索**:问题拆解 → 多索引并行检索 → 结果融合排序
- **溯源引用**:回答附带参考文章链接,支持答案可信度评估
**技术难点**:向量索引的增量更新策略、检索结果的重排序算法、上下文长度限制下的信息压缩。
### 6. Agent 工作流引擎
- **WikiBuilder**:自动将多篇文章聚类生成知识专题页面
- **QAReasoning**:复杂问题的多步推理与答案合成
- **LangGraph 状态机**:工作流节点状态持久化,支持断点续跑
### 7. LLM 统一调用与监控
- **多 Provider 支持**:OpenAI / Moonshot / Ollama 本地模型动态切换
- **动态配置热加载**:LLM 参数(temperature、max\_tokens)运行时调整
- **LangFuse 追踪**:每次 LLM 调用的 Prompt、Response、Token 消耗全记录
- **成本分析**:按模型、按时间段统计 API 调用成本
***
## 项目结构
```
MindFlow-AI-platform/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── api/v1/ # API 路由层(RESTful 规范)
│ │ │ ├── auth.py # 认证接口(登录/注册/刷新)
│ │ │ ├── users.py # 用户管理接口
│ │ │ ├── posts.py # 文章 CRUD 接口
│ │ │ ├── comments.py # 评论接口
│ │ │ ├── categories.py # 分类接口
│ │ │ ├── knowledge_graph.py # 知识图谱数据接口
│ │ │ ├── llm_configs.py # LLM 配置接口
│ │ │ └── agent_workflows.py # Agent 工作流接口
│ │ ├── core/ # 核心基础设施
│ │ │ ├── config.py # 环境配置管理(Pydantic Settings)
│ │ │ ├── security.py # JWT 加密与密码哈希
│ │ │ ├── llm.py # LLM 统一调用封装
│ │ │ ├── elasticsearch.py # ES 客户端初始化
│ │ │ ├── langfuse.py # LangFuse 追踪初始化
│ │ │ ├── agent_workflows/ # LangGraph 工作流定义
│ │ │ └── dspy_modules/ # DSPy 优化模块
│ │ ├── models/ # SQLAlchemy 数据模型
│ │ │ ├── user.py # 用户/角色/权限模型
│ │ │ ├── post.py # 文章/分类/评论模型
│ │ │ └── llm_config.py # LLM 配置模型
│ │ ├── schemas/ # Pydantic 数据校验模型
│ │ ├── services/ # 业务逻辑层
│ │ │ ├── auth_service.py # 认证业务逻辑
│ │ │ ├── post_service.py # 文章业务逻辑
│ │ │ ├── knowledge_service.py # 知识索引与图谱逻辑
│ │ │ └── llm_config_service.py # LLM 配置管理逻辑
│ │ └── utils/ # 通用工具函数
│ ├── tests/ # 单元测试与集成测试
│ ├── alembic/ # 数据库迁移脚本
│ ├── init_enhanced_data.py # 数据初始化脚本(35+ 用户/文章/评论)
│ └── requirements.txt # Python 依赖清单
│
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── api/ # Axios 请求封装(按模块拆分)
│ │ ├── views/ # 页面组件(按路由层级组织)
│ │ │ ├── HomeView.vue # 首页文章列表
│ │ │ ├── PostDetailView.vue # 文章详情(含迷你知识图谱)
│ │ │ ├── KnowledgeGraphView.vue # 知识图谱可视化页
│ │ │ ├── LoginView.vue # 登录页
│ │ │ └── Admin/ # 管理后台页面集
│ │ ├── components/ # 公共组件
│ │ │ ├── base/ # 基础组件(Button/Modal/Table)
│ │ │ └── business/ # 业务组件(PostCard/CommentTree)
│ │ ├── stores/ # Pinia 状态管理(按模块拆分)
│ │ ├── router/ # Vue Router 配置
│ │ ├── types/ # TypeScript 类型定义
│ │ └── composables/ # 通用逻辑组合式函数
│ └── package.json
│
├── docs/ # 项目文档
├── docker-compose.yml # Docker 一键编排
└── README.md # 项目说明
```
***
## 快速开始
### 环境要求
- Python 3.11+
- Node.js 18+
- MySQL 8.0(生产环境)/ SQLite(开发环境)
### 1. 克隆项目
```bash
git clone https://gitee.com/da-qing-oh/MindFlow-AI-platform.git
cd MindFlow-AI-platform
```
### 2. 启动后端
```bash
cd backend
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境(Windows)
.venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置环境变量(复制 .env.example 为 .env 并修改数据库连接)
cp .env.example .env
# 初始化数据库表结构
alembic upgrade head
# 导入测试数据(35+ 用户、10+ 文章、40+ 评论)
python init_enhanced_data.py
# 启动服务
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
后端运行在 文档:
### 3. 启动前端
```bash
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
前端运行在
### 4. Docker 一键部署
```bash
# 启动全部服务(MySQL + Redis + Elasticsearch + Backend + Frontend)
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f backend
```
***
## 数据库设计亮点
### ER 关系图
```mermaid
erDiagram
USERS ||--o{ POSTS : writes
USERS ||--o{ COMMENTS : writes
USERS ||--o{ USER_ROLES : has
ROLES ||--o{ USER_ROLES : assigned_to
ROLES ||--o{ ROLE_PERMISSIONS : has
PERMISSIONS ||--o{ ROLE_PERMISSIONS : granted_to
CATEGORIES ||--o{ POSTS : contains
POSTS ||--o{ COMMENTS : has
POSTS ||--o{ POST_TAGS : tagged
TAGS ||--o{ POST_TAGS : labels
USERS {
int id PK
string username UK
string email UK
string hashed_password
string avatar_url
boolean is_active
boolean is_superuser
datetime created_at
}
ROLES {
int id PK
string name UK
string description
}
PERMISSIONS {
int id PK
string code UK
string name
string module
}
POSTS {
int id PK
string title
text content
string summary
boolean is_published
int view_count
int author_id FK
int category_id FK
datetime created_at
datetime updated_at
}
CATEGORIES {
int id PK
string name UK
string description
int post_count
}
COMMENTS {
int id PK
text content
int post_id FK
int author_id FK
int parent_id FK
datetime created_at
}
LLM_CONFIGS {
int id PK
string provider
string name
string api_base
string api_key_encrypted
string model_name
boolean is_enabled
boolean is_default
int max_tokens
float temperature
int timeout
}
```
***
## 性能优化实践
| 优化点 | 方案 | 效果 |
| ---------- | ---------------------------------- | ------------ |
| **数据库查询** | SQLAlchemy 异步会话 + selectinload 预加载 | N+1 查询消除 |
| **全文搜索** | Elasticsearch 倒排索引 + 中文分词 | 毫秒级文章检索 |
| **缓存策略** | Redis 缓存热点文章 + 用户会话 | 数据库压力降低 60% |
| **静态资源** | Nginx 反向代理 + Gzip 压缩 | 前端加载速度提升 40% |
| **知识图谱** | G6 节点懒加载 + 关系边聚合 | 千级节点流畅渲染 |
| **LLM 调用** | 连接池复用 + 异步并发请求 | 响应延迟降低 50% |
***
## 测试覆盖
```bash
# 后端单元测试
cd backend
pytest tests/ -v --cov=app --cov-report=html
# 前端类型检查
cd frontend
npm run type-check
# 端到端测试(需启动服务)
npm run test:e2e
```
***
## 版本演进
| 版本 | 核心特性 | 技术价值 |
| ---------- | ------------------- | ------------ |
| **v1.6.0** | G6 知识图谱可视化 | 复杂关系数据的图形化表达 |
| **v1.5.0** | Prefect 任务调度 | 生产级定时工作流编排 |
| **v1.4.0** | DSPy Prompt 优化 | LLM 输出质量量化提升 |
| **v1.3.0** | LangGraph Agent 工作流 | 多步推理状态机管理 |
| **v1.2.0** | LlamaIndex 知识索引 | RAG 检索增强生成架构 |
| **v1.1.0** | RBAC 权限系统 | 企业级访问控制 |
| **v1.0.0** | 基础博客系统 | 全栈工程化骨架搭建 |
***
## 部署架构(生产环境)
```mermaid
graph LR
User[用户] -->|HTTPS| CDN[CDN 加速]
CDN -->|静态资源| OSS[对象存储]
CDN -->|API 请求| LB[负载均衡 Nginx]
LB -->|反向代理| App1[FastAPI 实例 1]
LB -->|反向代理| App2[FastAPI 实例 2]
LB -->|反向代理| App3[FastAPI 实例 3]
App1 -->|读写| MySQL[(MySQL 主从)]
App2 -->|读写| MySQL
App3 -->|读写| MySQL
App1 -->|搜索| ES[(Elasticsearch 集群)]
App1 -->|缓存| Redis[(Redis 哨兵)]
```
***
## 贡献与许可
- **仓库地址**:
- Gitee:
- GitHub:
- **问题反馈**:欢迎提交 Issue 和 Pull Request
- **开源协议**:MIT License