# 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