{"id":48695237,"url":"https://github.com/qxbyte/flowvo","last_synced_at":"2026-04-11T07:13:23.500Z","repository":{"id":293457284,"uuid":"984074420","full_name":"qxbyte/flowvo","owner":"qxbyte","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-20T12:56:30.000Z","size":5063,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-20T13:51:04.974Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qxbyte.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-15T11:02:32.000Z","updated_at":"2025-06-20T12:56:33.000Z","dependencies_parsed_at":"2025-06-07T14:35:34.472Z","dependency_job_id":null,"html_url":"https://github.com/qxbyte/flowvo","commit_stats":null,"previous_names":["qxbyte/flowvo"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/qxbyte/flowvo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fflowvo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fflowvo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fflowvo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fflowvo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qxbyte","download_url":"https://codeload.github.com/qxbyte/flowvo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qxbyte%2Fflowvo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31671993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-11T07:13:22.843Z","updated_at":"2026-04-11T07:13:23.490Z","avatar_url":"https://github.com/qxbyte.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FlowVO - 智能平台\n\n## 📖 项目概述\n\nFlowVO 是一个基于微服务架构的智能对话和向量检索平台，集成了自然语言处理、向量数据库和数据管理功能。该平台通过 Function Call 机制处理用户请求，以及智能化MCP服务体验。\n\n![img.png](docs/cite/Image/home.png)\n![img.png](docs/cite/Image/chat.png)\n![img.png](docs/cite/Image/document.png)\n![knowledge1.png](docs/cite/Image/knowledge1.png)\n![knowledge2.png](docs/cite/Image/knowledge2.png)\n![img.png](docs/cite/Image/business.png)\n\n\n\n\n### 🎯 核心特性\n\n- **🤖 智能对话系统**：基于大语言模型的多轮对话，支持上下文理解\n- **🔍 向量检索引擎**：基于Milvus的高性能向量检索，支持文档语义搜索\n- **📊 Function Call机制**：智能工具调用，实现复杂业务逻辑处理\n- **📁 文档智能解析**：支持PDF、Word、Excel、PPT等多种格式自动解析\n- **🔗 微服务架构**：模块化设计，高可扩展性和维护性\n- **🎨 现代化UI**：React + Chakra UI，响应式设计，像素风格界面\n\n## 🚀 快速启动\n\n```bash\n# 给脚本添加执行权限并启动\nchmod +x start.sh \u0026\u0026 ./start.sh\n\n# 访问前端应用\nhttp://localhost:5173\n```\n\n### 🤖 本地模型离线运行（推荐）\n\n为获得最佳体验，建议预先下载嵌入模型以实现完全离线运行：\n\n```bash\n# 激活Python环境并下载模型\nsource embedding_env/bin/activate\ncd python \u0026\u0026 python download_model.py\n```\n\n**本地模型优势：**\n- ✅ **无需VPN**：完全离线运行，无网络依赖\n- ✅ **启动更快**：避免运行时下载模型\n- ✅ **更高稳定性**：不受网络状况影响\n- ✅ **隐私保护**：文本处理完全在本地\n\n**详细文档**：\n- 📖 [完整安装部署文档](docs/完整安装部署文档.md)\n- 📋 [项目更新日志](docs/CHANGELOG.md)\n\n## 🏗️ 系统架构\n\n### 总体架构图\n```\nFlowVO智能对话平台 (微服务+API网关架构)\n├── 前端层 (Presentation Layer)\n│   ├── flowvo-ui (React + Chakra UI)  [5173]\n│   └── Floreo (Vue.js)                [其他端口]\n├── 网关层 (Gateway Layer)\n│   └── api-gateway (统一入口)          [9870]\n│       ├── 路由转发 (请求分发)\n│       ├── JWT认证 (统一认证)\n│       ├── 权限控制 (访问控制)\n│       └── CORS配置 (跨域处理)\n├── 应用服务层 (Application Layer)  \n│   ├── app (核心应用服务)              [8080]\n│   ├── agents (Spring AI智能体)        [8081]\n│   └── eureka (服务注册发现)           [8761]\n├── 业务服务层 (Business Layer)\n│   └── core (核心业务逻辑)\n├── 数据服务层 (Data Layer)\n│   ├── mcp/fileMCP (文件操作服务)\n│   ├── mcp/mcp-mysql (数据库服务)\n│   └── python (嵌入服务)               [8000]\n└── 存储层 (Storage Layer)\n    ├── Milvus (向量数据库)             [19530]\n    ├── MySQL (关系数据库)              [3306]\n    └── MinIO (对象存储)                [9000]\n```\n\n### 新架构请求流程\n```\n用户请求 → API网关(9870) → JWT认证 → 路由分发\n                ↓\n        ┌───────┴───────┐\n        ↓               ↓\n   App服务(8080)    Agents服务(8081)\n        ↓               ↓\n   业务逻辑处理      AI智能处理\n        ↓               ↓\n     响应返回       响应返回\n        ↓               ↓\n        └───────┬───────┘\n                ↓\n          API网关聚合响应\n                ↓\n           返回给前端\n```\n\n### 微服务架构设计\n\n#### 🎯 API网关服务 (9870) - **新增**\n- **JWT认证校验**：验证所有请求的JWT令牌有效性，确保安全访问\n- **智能路由转发**：根据请求路径智能分发到相应的微服务\n- **用户信息传递**：认证成功后将用户信息添加到请求头传递给下游服务\n- **统一跨域处理**：集中管理CORS配置，解决前端跨域问题\n- **白名单管理**：灵活配置无需认证的接口路径\n- **安全防护**：统一的安全策略和错误处理\n\n#### 🔐 网关认证机制（集中式安全）\n```\n架构优势：\n✅ 集中式认证：网关统一处理JWT验证，避免重复认证\n✅ 性能优化：下游服务不需要重复解析JWT，提高响应速度\n✅ 代码简化：微服务只需从请求头获取用户信息，减少安全代码\n✅ 统一管理：安全策略统一配置，便于维护和升级\n\n请求流程：\n1. 用户登录 → App服务生成JWT Token\n2. 携带Token访问API → 网关验证Token有效性\n3. 验证成功 → 网关添加用户信息到请求头\n4. 转发到目标服务 → 服务从请求头获取用户信息（X-User-Name, X-User-Id）\n5. 返回响应 → 网关统一处理响应\n\n白名单路径（无需认证）：\n- /api/auth/login     (登录)\n- /api/auth/register  (注册)  \n- /api/auth/check-email (邮箱验证)\n- /uploads/**         (静态资源)\n- /js/**, /css/**     (前端资源)\n\n认证路径（需要JWT）：\n- /api/knowledge-qa/** (知识库问答)\n- /api/orders/**       (订单管理)\n- /api/chat/**         (聊天对话)\n- /api/v1/documents/** (文档管理)\n- /api/vision/**       (视觉AI)\n\n下游服务简化：\n- 移除复杂的JWT认证过滤器\n- 使用UserContextUtil.getCurrentUsername()获取用户信息\n- 专注业务逻辑，不处理认证逻辑\n```\n\n#### 🎯 核心服务模块\n- **App服务 (8080)**：核心业务服务，处理用户管理、订单、聊天、文档、视觉AI\n- **Agents服务 (8081)**：Spring AI智能体服务，处理文档解析、向量化、AI对话\n- **Eureka服务 (8761)**：服务注册与发现中心（可选）\n\n#### 📋 路由规则配置\n```yaml\n路由映射:\n├── 认证相关: /api/auth/**          → API网关直接处理\n├── 知识库问答: /api/knowledge-qa/** → 网关认证后调用agents服务\n├── 核心业务: /api/orders/**        → 转发到app服务\n├── 聊天对话: /api/chat/**          → 转发到app服务\n├── 文档管理: /api/v1/documents/**  → 转发到app服务\n├── 视觉AI: /api/vision/**          → 转发到app服务\n└── 静态资源: /uploads/**           → 转发到app服务\n```\n\n#### 🔧 数据处理服务\n- **Python嵌入服务 (8000)**：基于Sentence Transformers的文本嵌入\n- **Milvus向量数据库 (19530)**：高性能向量存储与检索\n- **MCP服务集群**：模块化控制协议，提供数据库和文件操作\n\n#### 📊 业务数据管理\n- **订单管理系统**：完整的订单生命周期管理\n- **文档管理系统**：智能文档解析、存储、检索\n- **用户管理系统**：用户认证、权限、个人资料管理\n\n## 💻 技术栈详解\n\n### 前端技术\n```typescript\n// 新版UI - React生态\nReact 18 + TypeScript        // 核心框架\nChakra UI                     // 组件库\nReact Router                  // 路由管理\nAxios                         // HTTP客户端\nMarkdown解析                  // 内容渲染\n代码高亮                      // 语法着色\n\n// 经典UI - Vue生态  \nVue.js 3 + TypeScript        // 渐进式框架\n@heroicons/vue               // 图标库\n@headlessui/vue              // 无头组件\n```\n\n### 后端技术\n```java\n// Java微服务栈\nSpring Boot 3.x              // 应用框架\nSpring Cloud                 // 微服务套件\nSpring AI                    // AI集成框架\nSpring Security              // 安全框架\nSpring Data JPA              // 数据访问\nNetflix Eureka               // 服务发现\n\n// 数据处理\nMySQL 8.0                    // 关系数据库\nMilvus 2.5                   // 向量数据库\nRedis                        // 缓存服务\nMinIO                        // 对象存储\n```\n\n### Python AI服务\n```python\n# 核心AI库\nLangChain                    // AI应用框架\nSentence Transformers        // 文本嵌入\nFastAPI                      // Web框架\nUvicorn                      // ASGI服务器\n\n# 文档处理\nApache PDFBox                // PDF解析\nApache POI                   // Office文档\nPandas                       // 数据处理\n```\n\n## 🔄 Function Call工作流程\n\n### 智能对话处理机制\n```mermaid\ngraph TD\n    A[用户输入] --\u003e B[消息预处理]\n    B --\u003e C[Function调用判断]\n    C --\u003e D{需要工具调用?}\n    D --\u003e|是| E[解析Function Call]\n    D --\u003e|否| F[直接AI回复]\n    E --\u003e G[执行MCP服务]\n    G --\u003e H[获取执行结果]\n    H --\u003e D{需要工具调用?}\n    H --\u003e I[结果整合]\n    I --\u003e J[AI生成回答]\n    F --\u003e J\n    J --\u003e K[流式返回用户]\n```\n\n### MCP服务调用流程\n1. **请求解析**：解析用户意图，识别需要调用的工具\n2. **参数提取**：从用户输入中提取函数调用参数\n3. **服务路由**：根据功能类型路由到相应的MCP服务\n4. **结果处理**：处理服务返回结果，格式化为可读内容\n5. **响应生成**：结合AI模型生成自然语言回复\n\n## 📊 功能模块详解\n\n### 1. 智能对话系统\n\n#### PixelChat对话引擎\n- **多轮对话管理**：维护完整对话上下文，支持话题切换\n- **消息类型支持**：文本、图片、文件、代码等多媒体内容\n- **实时渲染**：Markdown实时渲染，代码语法高亮\n- **对话历史**：按日期分组的对话记录，快速检索\n\n#### AI模型集成\n- **OpenAI GPT系列**：支持GPT-3.5、GPT-4等模型\n- **本地模型支持**：可接入开源大语言模型\n- **模型切换**：动态切换不同AI模型\n- **参数调优**：温度、top-p等参数自定义\n\n### 2. 文档智能处理\n\n#### 多格式文档解析\n```javascript\n支持格式:\n├── PDF文档 (.pdf)           // 文本提取\n├── Word文档 (.doc, .docx)   // 格式保留\n├── Excel表格 (.xls, .xlsx)  // 数据结构化\n├── PowerPoint (.ppt, .pptx) // 幻灯片分组\n├── 文本文件 (.txt, .md)     // 直接读取\n└── 代码文件 (.java, .py等)  // 语法识别\n```\n\n#### 向量化存储\n- **文档切分**：智能段落分割，保持语义完整性\n- **嵌入生成**：Sentence Transformers生成高质量向量\n- **向量存储**：Milvus高性能向量数据库存储\n- **语义检索**：基于余弦相似度的语义搜索\n\n### 3. 订单管理系统\n\n#### 完整业务流程\n- **订单创建**：自动生成唯一订单号，状态管理\n- **订单查询**：多维度搜索，分页展示\n- **订单处理**：状态流转，金额变更\n- **数据统计**：订单分析，业绩报表\n\n#### 技术特性\n```sql\n-- 高性能查询设计\nINDEX idx_order_number (order_number)    -- 订单号查询\nINDEX idx_customer_name (customer_name)  -- 客户查询  \nINDEX idx_status (status)                -- 状态筛选\nINDEX idx_created_at (created_at)        -- 时间范围\n```\n\n### 4. 用户管理系统\n\n#### 认证与授权\n- **JWT Token**：无状态身份认证\n- **角色权限**：基于角色的访问控制(RBAC)\n- **密码安全**：BCrypt加密存储\n- **会话管理**：Token过期、刷新机制\n\n#### 个人资料管理\n- **基础信息**：用户名、昵称、邮箱管理\n- **头像系统**：图片上传、存储、访问\n- **设置中心**：个性化配置管理\n\n### 📁 知识库问答系统\n\n#### RAG问答引擎\n- **智能问答**：基于Spring AI RAG架构的知识库问答\n- **向量检索**：使用Milvus进行文档相似度检索\n- **文档溯源**：显示答案来源文档，支持原文跳转\n- **分类管理**：文档按类别组织，支持分类筛选问答\n\n#### 🎨 前端功能特性\n```javascript\n用户界面:\n├── 智能问答界面 (参数可调节)\n├── 实时流式回答 (支持同步/流式两种模式)\n├── 搜索参数控制 (topK数量、相似度阈值)\n├── 分类筛选问答 (按文档分类限制范围)\n├── 热门问题快捷 (点击快速填入问题)\n├── 详细结果展示 (问题、回答、响应时间、相似度)\n├── 信息来源展示 (文档标题、页码、原文内容)\n├── Markdown渲染 (富文本格式回答)\n├── 操作功能集成 (复制回答、提交反馈评分)\n├── 最近提问记录 (历史问答、分类标签、评分)\n├── 热门问题排行 (基于趋势算法推荐)\n├── 知识库分类统计 (文档数量、完成率、更新时间)\n└── 分类文档管理 (查看分类下所有文档)\n```\n\n#### 📊 后端API功能\n```javascript\nAPI接口:\n├── 同步问答 (API: /api/knowledge-qa/ask)\n├── 流式问答 (API: /api/knowledge-qa/ask-stream)\n├── 最近提问 (显示历史问答记录)\n├── 热门问题 (基于趋势算法推荐)\n├── 分类统计 (各类别文档统计信息)\n├── 用户反馈 (问答质量评分)\n├── 分类管理 (文档分类CRUD操作)\n└── 文档管理 (分类查看、文档详情)\n```\n\n#### 🔧 核心算法\n- **相似度计算**：基于向量余弦相似度的文档匹配\n- **上下文构建**：智能提取最相关的文档片段\n- **趋势分析**：时间衰减 + 频次统计的热门问题算法\n- **关键词提取**：自动提取问题关键词用于统计分析\n\n#### 🗂️ 数据模型\n- **问答记录表**：`knowledge_qa_records` - 完整问答会话记录\n- **文档分类表**：`document_categories` - 分类管理(用户手册、技术文档、培训材料、FAQ、政策制度、其他)\n- **热门问题表**：`popular_questions` - 问题热度统计与趋势分析\n- **文档表扩展**：添加`category`字段支持分类关联\n\n#### 🚀 使用流程\n1. **文档上传**：上传文档时选择分类，系统自动向量化处理\n2. **智能问答**：输入问题，选择搜索参数(分类、数量、阈值)\n3. **查看回答**：获得AI回答和详细的文档来源信息\n4. **反馈评分**：对回答质量进行评分，帮助系统优化\n5. **历史查看**：浏览问答历史、热门问题和分类统计\n\n### 2. 文档智能处理\n\n## 🔧 开发特性\n\n### 智能启动脚本\n- **🔍 健康检查**：自动检测服务状态\n- **🔄 智能重启**：应用服务支持热重启\n- **🛡️ 数据保护**：数据库服务按需启动\n- **📊 状态监控**：实时显示所有服务状态\n\n### 开发者友好\n- **🔥 热重载**：前端开发热更新\n- **📝 详细日志**：结构化日志记录\n- **🐛 错误处理**：完善的异常处理机制\n- **📡 API文档**：Swagger自动生成API文档\n\n### 生产就绪\n- **⚡ 性能优化**：数据库索引、缓存策略\n- **🔒 安全加固**：SQL注入防护、XSS防护\n- **📈 监控告警**：健康检查端点\n- **🔄 容灾备份**：数据备份策略\n\n## 🌟 创新亮点\n\n### 1. 像素风格UI设计\n- **马里奥风格机器人**：64x72像素精美角色\n- **动态装饰元素**：彩色方块动画效果\n- **复古游戏风格**：像素化界面设计\n- **现代交互体验**：保持良好的用户体验\n\n### 2. 智能文档处理\n- **Office文档深度解析**：保持原始结构信息\n- **大文件优化处理**：内存占用控制\n- **智能乱码检测**：文本编码自动识别\n- **多媒体内容支持**：图片、表格、代码混合处理\n\n### 3. 微服务解耦设计\n- **服务独立部署**：各服务可独立扩展\n- **API标准化**：RESTful + JSON-RPC\n- **配置外部化**：环境变量管理\n- **服务发现机制**：动态服务注册\n\n## 📈 性能优化\n\n### 数据库优化\n```sql\n-- 索引策略\nCREATE INDEX idx_conversation_id ON chat_messages(conversation_id);\nCREATE INDEX idx_user_id ON documents(user_id);\nCREATE INDEX idx_created_at ON conversations(created_at);\n\n-- 分页查询优化\nSELECT * FROM orders \nWHERE created_at \u003e= ? AND created_at \u003c= ?\nORDER BY created_at DESC \nLIMIT ? OFFSET ?;\n```\n\n### 向量检索优化\n- **索引类型**：IVF_FLAT索引，平衡精度与性能\n- **相似度算法**：余弦相似度，适合文本语义\n- **批量操作**：向量批量插入，提升吞吐量\n- **缓存策略**：热点向量缓存，加速检索\n\n### 应用层优化\n- **连接池**：数据库连接池配置\n- **异步处理**：文件上传异步处理\n- **内存管理**：大文件流式处理\n- **缓存机制**：Redis缓存热点数据\n\n## 🔮 未来规划\n\n### 短期目标\n- [ ] **多模态支持**：图像理解与生成\n- [ ] **实时协作**：多用户协同编辑\n- [ ] **API限流**：接口访问频率控制\n- [ ] **监控仪表板**：系统运行状态可视化\n\n### 长期愿景\n- [ ] **知识图谱**：构建领域知识图谱\n- [ ] **联邦学习**：分布式模型训练\n- [ ] **边缘计算**：模型边缘部署\n- [ ] **多租户架构**：企业级多租户支持\n\n## 🤝 贡献指南\n\n### 开发环境搭建\n1. **克隆仓库**：`git clone https://github.com/username/flowvo.git`\n2. **环境配置**：复制`.env.example`为`.env`，配置API密钥\n3. **一键启动**：运行`./start.sh`启动所有服务\n4. **开发调试**：使用`./start.sh --restart`快速重启应用\n\n### 代码规范\n- **Java**：遵循阿里巴巴Java开发手册\n- **TypeScript**：使用ESLint + Prettier格式化\n- **数据库**：使用规范的命名约定和索引策略\n- **Git**：使用Conventional Commits规范\n\n### 提交流程\n1. Fork项目仓库\n2. 创建功能分支：`git checkout -b feature/your-feature`\n3. 提交更改：`git commit -m \"feat: add your feature\"`\n4. 推送分支：`git push origin feature/your-feature`\n5. 创建Pull Request\n\n---\n\n**FlowVO** - 让AI对话更智能，让向量检索更高效 🚀\n\n*Built with ❤️ by FlowVO Team*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqxbyte%2Fflowvo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqxbyte%2Fflowvo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqxbyte%2Fflowvo/lists"}