# ruoyi-unity-ai **Repository Path**: minivip/ruoyi-unity-ai ## Basic Information - **Project Name**: ruoyi-unity-ai - **Description**: 基于若依的单体智能开发框架:集成了知识库、AI代理与工作流,实现业务与AI的融合。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2025-08-31 - **Last Updated**: 2025-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuoYi-Unity-AI
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/5.X/LICENSE) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.7-brightgreen.svg)](https://spring.io/projects/spring-boot) [![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)](https://openjdk.org/projects/jdk/17/) [![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)](https://openjdk.org/projects/jdk/21/) [![MyBatis-Plus](https://img.shields.io/badge/MyBatis--Plus-3.5.12-blue.svg)](https://baomidou.com/) [![Sa-Token](https://img.shields.io/badge/Sa--Token-1.44.0-orange.svg)](https://sa-token.cc/) [![LangChain4j](https://img.shields.io/badge/LangChain4j-0.36.2-purple.svg)](https://github.com/langchain4j/langchain4j) [![Spring AI](https://img.shields.io/badge/Spring%20AI-1.0.0--M5-green.svg)](https://spring.io/projects/spring-ai) **🤖 基于 RuoYi-Vue-Plus 的AI增强企业级管理系统** *集成多种AI框架,提供统一的AI服务管理平台* [在线预览](#) · [使用文档](#) · [更新日志](#)
## 📖 平台简介 **RuoYi-Unity-AI** 是一款基于 **Spring Boot 3.4.7** + **JDK 17/21** 的AI增强企业级快速开发平台,在 RuoYi-Vue-Plus 的基础上深度集成了多种AI框架和服务,打造统一的AI服务管理平台。 ### 🎯 核心特色 - 🤖 **统一AI服务**:集成Spring AI、LangChain4j等主流AI框架,提供统一的AI服务接口 - 🔌 **多Provider支持**:支持OpenAI、ChatGLM、通义千问、智谱AI等多种AI服务提供商 - 💬 **智能对话**:支持单轮对话、多轮对话、流式响应和记忆管理 - 📚 **知识库集成**:内置知识库服务,支持RAG(检索增强生成) - ⚖️ **智能编排**:多Provider负载均衡、故障转移和智能路由 - 🛡️ **高可用性**:熔断器保护、限流控制、健康检查和自动重试 - 📊 **AI监控**:实时性能监控、使用统计分析、成本追踪和质量评估 - 🔐 **权限管理**:使用Sa-Token实现权限控制,支持多种认证方式 - 🔗 **第三方登录**:集成JustAuth支持微信、钉钉等多种第三方认证 - 💾 **数据库支持**:原生支持MySQL、Oracle、PostgreSQL、SQLServer等主流数据库 - 🚀 **缓存优化**:使用Redisson作为Redis客户端,提供更丰富的分布式功能 - 📈 **监控体系**:集成Spring Boot Admin,实现全方位监控 - 🛠️ **代码生成**:提供智能化代码生成工具,支持多数据源 - 💰 **支付集成**:内置支付宝、微信支付等主流支付方式 ## 功能特性 ### AI核心模块 - **统一AI服务**:作为系统的AI大脑,统一管理和编排所有AI Provider - **多框架集成**:支持Spring AI、LangChain4j等主流AI框架 - **智能对话**:单轮对话、多轮对话、流式响应、记忆管理 - **知识库服务**:内置知识库,支持RAG检索增强生成 - **AI Provider管理**:支持OpenAI、ChatGLM、通义千问、智谱AI等多种服务商 - **智能编排**:负载均衡、故障转移、智能路由、并行处理 - **AI监控**:实时性能监控、使用统计、成本追踪、质量评估 ### 系统核心模块 - **用户系统**:支持Web和移动端用户统一管理 - **权限控制**:基于角色的多维度权限管理体系 - **工作流**:支持复杂的审批流程管理(Warm-Flow) - **文件存储**:集成MinIO实现分布式文件存储 - **消息推送**:支持WebSocket和SSE实时消息推送 - **聊天系统**:完整的聊天功能,支持AI助手集成 ### 开发工具 - **代码生成器**:根据表结构一键生成CRUD代码 - **Excel处理**:基于FastExcel实现高效的Excel操作 - **日志监控**:完整的操作日志和登录日志记录 - **接口文档**:使用SpringDoc自动生成API文档 - **AI开发工具**:LangChain4j集成工具、AI服务测试工具 ### 安全特性 - **数据脱敏**:敏感信息自动脱敏处理 - **数据加密**:支持多种加密算法保障数据安全 - **接口安全**:动态AES+RSA加密传输 - **防重提交**:分布式环境下防重复提交 - **XSS防护**:内置跨站脚本攻击防护 - **AI安全**:API密钥安全管理、AI服务访问控制 ### 运维支持 - **多数据源管理**:支持动态切换不同数据库 - **邮件服务**:集成邮件发送功能 - **短信服务**:支持多种短信平台 - **定时任务**:分布式任务调度系统(SnailJob) - **系统监控**:实时监控服务状态和性能指标 - **AI运维**:AI服务健康检查、性能监控、故障告警 ## 🏗️ 技术架构 ### 核心技术栈 | 分类 | 技术 | 版本 | 说明 | |------|------|------|------| | **基础框架** | Spring Boot | 3.4.7 | 核心框架 | | **开发环境** | JDK | 17/21 | Java开发环境 | | **Web容器** | Undertow | - | 高性能Web容器 | | **权限认证** | Sa-Token | 1.44.0 | 轻量级权限框架 | | **ORM框架** | MyBatis-Plus | 3.5.12 | 持久层框架 | | **缓存中间件** | Redisson | 3.50.0 | Redis客户端 | | **数据库连接池** | HikariCP | - | 高性能连接池 | | **工具类库** | Hutool | 5.8.38 | Java工具包 | | **API文档** | SpringDoc | 2.8.8 | OpenAPI 3.0 | | **Excel处理** | FastExcel | 1.2.0 | 高性能Excel | | **第三方登录** | JustAuth | 1.16.7 | 第三方认证 | | **工作流引擎** | Warm-Flow | 1.7.4 | 国产工作流 | | **任务调度** | SnailJob | 1.5.0 | 分布式任务 | | **对象映射** | MapStruct Plus | 1.4.8 | 对象转换 | | **监控管理** | Spring Boot Admin | 3.4.7 | 应用监控 | ### AI技术栈 | 分类 | 技术 | 版本 | 说明 | |------|------|------|------| | **AI框架** | Spring AI | 1.0.0-M5 | Spring官方AI框架 | | **AI框架** | LangChain4j | 0.36.2 | Java版LangChain | | **AI服务** | OpenAI | - | GPT系列模型 | | **AI服务** | Azure OpenAI | - | Azure托管OpenAI | | **AI服务** | ChatGLM | - | 智谱AI对话模型 | | **AI服务** | 通义千问 | - | 阿里云大语言模型 | | **AI服务** | 智谱AI | - | 智谱AI平台 | | **AI平台** | Coze | 0.4.2 | 字节跳动AI Bot | | **AI平台** | Dify | 1.1.7 | 开源LLM应用平台 | | **HTTP客户端** | OkHttp | 4.12.0 | AI服务HTTP客户端 | ### 数据库支持 | 数据库 | 支持情况 | 说明 | |--------|----------|------| | MySQL | ✅ 原生支持 | 主要推荐 | | Oracle | ✅ 原生支持 | 企业级 | | PostgreSQL | ✅ 原生支持 | 开源数据库 | | SQL Server | ✅ 原生支持 | 微软数据库 | | 达梦数据库 | ✅ 支持 | 国产数据库 | | 金仓数据库 | ✅ 支持 | 国产数据库 | ## 🚀 快速开始 ### 环境要求 - **JDK**: 17+ (推荐 JDK 21) **⚠️ 必须使用JDK 17+** - **Maven**: 3.6+ - **MySQL**: 5.7+ / 8.0+ - **Redis**: 5.0+ - **Node.js**: 16+ (前端开发) - **AI服务**: OpenAI API Key 或其他AI服务商密钥 ### 安装步骤 #### 1. 克隆项目 ```bash # 克隆仓库 git clone https://gitee.com/your-repo/RuoYi-Unity-AI.git # 进入项目目录 cd RuoYi-Unity-AI ``` #### 2. 数据库初始化 ```sql -- 创建数据库 CREATE DATABASE ruoyi_vue_plus DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 导入数据库脚本 -- 1. 执行基础脚本:script/sql/ry_vue_5.X.sql -- 2. 执行AI模块脚本:script/sql/ry_ai.sql -- 3. 执行聊天模块脚本:script/sql/ry_chat.sql -- 4. 执行知识库脚本:script/sql/ry_knowledge.sql -- 5. 执行工作流脚本:script/sql/ry_workflow.sql ``` #### 3. 配置AI服务 **重要:配置AI服务API密钥** ```bash # 设置环境变量(推荐方式) # Windows set OPENAI_API_KEY=your-openai-api-key set ZHIPU_API_KEY=your-zhipu-api-key set QWEN_API_KEY=your-qwen-api-key # Linux/Mac export OPENAI_API_KEY=your-openai-api-key export ZHIPU_API_KEY=your-zhipu-api-key export QWEN_API_KEY=your-qwen-api-key ``` #### 4. 修改配置文件 ```yaml # application-dev.yml spring: datasource: dynamic: primary: master datasource: master: url: jdbc:mysql://localhost:3306/ruoyi_vue_plus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: your_password data: redis: host: localhost port: 6379 password: your_redis_password **AI服务配置说明:** - 在application.yml中配置AI模块启用状态 - 设置默认AI提供商(openai、zhipu、qwen等) - 配置各AI服务商的API密钥和基础URL - 设置默认模型和参数(如temperature等) - 支持环境变量方式配置敏感信息 - LangChain4j提供商需要单独配置相关属性 ``` #### 5. 启动应用 ```bash # 方式一:Maven启动 mvn clean compile mvn spring-boot:run # 方式二:IDE启动 # 运行 RuoYiApplication.java # 方式三:jar包启动 mvn clean package java -jar ruoyi-server/target/ruoyi-server.jar ``` #### 6. 访问系统 - **后台管理**: http://localhost:8080 - **API文档**: http://localhost:8080/doc.html - **监控中心**: http://localhost:8080/admin - **AI服务健康检查**: http://localhost:8080/ai/health - **LangChain4j服务**: http://localhost:8080/ai/langchain4j/health **默认账号**:admin / admin123 #### 7. 验证AI功能 - **测试AI聊天功能**:通过POST请求测试基本聊天接口 - **测试流式聊天**:验证实时流式响应功能 - **获取支持的AI模型**:查看当前配置的可用模型列表 - **检查服务健康状态**:确认AI服务正常运行 ## 💡 使用示例 ### AI服务开发 #### 统一AI服务接口 - 提供统一的AI聊天接口,支持多种AI Provider - 支持同步和异步(流式)响应模式 - 集成请求验证和响应封装 - 支持多模型切换和配置管理 #### LangChain4j服务使用 - 单轮对话:直接调用AI模型进行问答 - 带记忆的对话:支持上下文记忆的连续对话 - 流式对话:实时返回AI生成内容 - 模型管理:获取和切换支持的AI模型 ### 移动端API开发 - 移动端用户登录和认证 - 用户信息管理和权限控制 - 移动端专用的API接口设计 - 支持多种登录方式(账号密码、第三方登录等) ### 分布式文件存储 - 支持多种文件存储方式(本地、阿里云OSS、腾讯云COS、七牛云等) - 提供统一的文件上传和下载接口 - 支持文件预览和在线编辑 - 集成文件安全检查和病毒扫描 ### 实时消息推送 - 基于SSE(Server-Sent Events)的实时消息推送 - 支持用户连接管理和消息广播 - 集成WebSocket支持双向通信 - 提供消息队列和持久化存储 ### 多数据源支持 - 支持动态数据源切换和管理 - 提供主从数据库读写分离 - 支持分布式事务处理 - 集成数据源监控和健康检查 ### 权限控制 - 基于Sa-Token的轻量级权限框架 - 支持RBAC权限模型 - 提供细粒度的权限控制 - 集成操作日志和审计功能 ## 📁 项目结构 ``` RuoYi-Unity-AI/ ├── ruoyi-common/ # 公共模块 │ ├── ruoyi-common-core/ # 核心工具类 │ ├── ruoyi-common-doc/ # 接口文档配置 │ ├── ruoyi-common-excel/ # Excel处理 │ ├── ruoyi-common-mybatis/ # 数据库配置 │ ├── ruoyi-common-redis/ # Redis配置 │ ├── ruoyi-common-satoken/ # 权限认证 │ ├── ruoyi-common-oss/ # 对象存储 │ ├── ruoyi-common-sms/ # 短信服务 │ ├── ruoyi-common-mail/ # 邮件服务 │ ├── ruoyi-common-websocket/ # WebSocket │ └── ... ├── ruoyi-modules/ # 业务模块 │ ├── ruoyi-system/ # 系统管理 │ ├── ruoyi-app/ # 移动端模块 │ ├── ruoyi-chat/ # 聊天模块 │ ├── ruoyi-ai/ # AI模块 │ ├── ruoyi-knowledge/ # 知识库模块 │ ├── ruoyi-workflow/ # 工作流模块 │ ├── ruoyi-generator/ # 代码生成 │ └── ... ├── ruoyi-extend/ # 扩展模块 │ ├── ruoyi-monitor-admin/ # 监控中心 │ └── ruoyi-snailjob-server/ # 任务调度 ├── ruoyi-server/ # 启动模块 ├── script/ # 脚本文件 │ ├── sql/ # 数据库脚本 │ │ ├── ry_vue_5.X.sql # 基础数据库脚本 │ │ ├── ry_ai.sql # AI模块数据库脚本 │ │ ├── ry_chat.sql # 聊天模块数据库脚本 │ │ ├── ry_knowledge.sql # 知识库模块数据库脚本 │ │ └── ry_workflow.sql # 工作流模块数据库脚本 │ ├── docker/ # Docker配置 │ └── bin/ # 启动脚本 ├── docs/ # 项目文档 │ ├── AI_INTEGRATION_GUIDE.md # AI集成指南 │ ├── LANGCHAIN4J_INTEGRATION_GUIDE.md # LangChain4j集成指南 │ └── DEPLOYMENT_GUIDE.md # 部署指南 └── 技术栈说明.md # 技术栈详细说明 ``` ## 🔧 开发指南 ### 环境配置 1. **开发环境** - JDK 17+ (必须) - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ - Node.js 16+ 2. **AI服务配置** - OpenAI API Key (推荐) - 智谱AI API Key (可选) - 通义千问API Key (可选) - Azure OpenAI配置 (可选) ### AI模块开发 #### 1. 添加新的AI Provider - 实现AiProvider接口,定义Provider名称和核心方法 - 添加@Component注解和条件配置注解 - 实现chat()和streamChat()方法 - 处理请求参数和响应格式 #### 2. 配置新Provider - 在application.yml中添加Provider配置 - 设置enabled、api-key、base-url、model等参数 - 支持环境变量和配置文件两种方式 #### 3. LangChain4j扩展开发 - 注入ChatLanguageModel进行AI对话 - 实现自定义聊天服务和流式响应 - 支持记忆管理和上下文处理 - 集成监控和异常处理机制 ### 代码生成器使用 1. 访问系统管理 -> 代码生成 2. 选择要生成的数据表 3. 配置生成信息 4. 下载生成的代码 ### 新增业务模块 1. 在 `ruoyi-modules` 下创建新模块 2. 添加模块依赖到主pom.xml 3. 配置模块的Controller、Service、Mapper 4. 添加相应的权限配置 ### 代码规范 - 遵循阿里巴巴Java开发手册 - 使用统一的代码格式化配置 - 添加必要的单元测试 - 更新相关文档 - AI相关代码需要添加详细的使用说明 ### 数据库设计 - 统一的表前缀和命名规范 - 合理的索引设计 - 数据字典维护 - AI相关表结构设计规范: - `ai_*` 表前缀用于AI核心功能 - `chat_*` 表前缀用于聊天相关 - `knowledge_*` 表前缀用于知识库 ### API文档规范 使用 `@Operation`、`@Tag`、`@Parameter` 等注解标注API信息: ```java @Tag(name = "用户管理") @RestController public class UserController { @Operation(summary = "获取用户信息", description = "根据用户ID获取用户详细信息") @GetMapping("/{id}") public R getUser(@Parameter(description = "用户ID") @PathVariable Long id) { return R.ok(userService.getById(id)); } } ``` ## 🤝 贡献指南 我们欢迎所有形式的贡献,包括但不限于: - 🐛 **Bug报告**:发现问题请提交Issue - 💡 **功能建议**:有好的想法请告诉我们 - 📝 **文档改进**:帮助完善文档 - 🔧 **代码贡献**:提交Pull Request - 🤖 **AI Provider集成**:添加新的AI服务提供商 - 🧠 **AI算法优化**:改进AI服务性能和质量 - 📚 **知识库功能扩展**:增强RAG和知识管理功能 ### 贡献流程 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ### AI相关贡献指南 #### 新增AI Provider 1. **实现Provider接口** - 继承AiProvider接口并实现所有必要方法 - 定义Provider名称和基本配置 2. **添加配置类** - 创建配置属性类,使用@ConfigurationProperties注解 - 定义API密钥、基础URL、模型等配置项 3. **编写单元测试** - 为新Provider编写完整的单元测试 - 测试聊天功能、流式响应、异常处理等 4. **更新文档** - 在 `docs/AI_INTEGRATION_GUIDE.md` 中添加使用说明 - 更新 `README.md` 中的支持列表 #### LangChain4j扩展贡献 1. **扩展现有功能** - 添加新的模型支持 - 优化对话记忆管理 - 增强流式响应处理 2. **性能优化** - 连接池优化 - 缓存策略改进 - 异步处理优化 ### 代码规范 - 遵循阿里巴巴Java开发手册 - 使用统一的代码格式化配置 - 添加必要的单元测试 - 更新相关文档 - AI相关代码需要包含详细的JavaDoc注释 - 提供配置示例和使用说明 ## 📞 联系我们 - **项目地址**:https://gitee.com/pengles/RuoYi-Vue-Plus-Single-App - **问题反馈**:https://gitee.com/pengles/RuoYi-Vue-Plus-Single-App/issues - **QQ交流群**:待建立 - **微信交流群**:待建立 ## 🙏 特别鸣谢 感谢以下优秀的开源项目为本项目提供支持: ### 核心框架 - **[RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus)** - 成熟的企业级快速开发框架 - **[Dromara](https://dromara.org/)** - 优秀的开源社区 ### 技术组件 - **[Sa-Token](https://sa-token.cc/)** - 轻量级权限认证框架 - **[MyBatis-Plus](https://baomidou.com/)** - 简化MyBatis开发的强大工具 - **[JustAuth](https://justauth.wiki/)** - 第三方登录授权工具库 - **[Hutool](https://hutool.cn/)** - Java工具类库 - **[Redisson](https://redisson.org/)** - Redis Java客户端 - **[Warm-Flow](http://warm-flow.cn/)** - 国产工作流引擎 - **[FastExcel](https://github.com/dromara/fast-excel)** - 高性能Excel处理框架 ### AI生态 - **[Spring AI](https://spring.io/projects/spring-ai)** - Spring官方AI集成框架 - **[LangChain4j](https://github.com/langchain4j/langchain4j)** - Java版LangChain - **[OpenAI Java](https://github.com/TheoKanning/openai-java)** - OpenAI Java客户端 - **[ChatGLM Java SDK](https://github.com/MetaGLM/chatglm-java)** - 智谱AI Java SDK - **[Dashscope SDK](https://github.com/aliyun/alibabacloud-bailian-sdk)** - 通义千问SDK - **[Coze API](https://www.coze.com/)** - 字节跳动AI平台 - **[Dify](https://dify.ai/)** - 开源LLMOps平台 - **[OkHttp](https://square.github.io/okhttp/)** - 高性能HTTP客户端 这些优秀的开源项目和技术社区为 RuoYi-Unity-AI 的开发提供了强大的技术支撑和灵感来源,让我们能够站在巨人的肩膀上,构建更加完善的AI增强企业级应用解决方案。 🌟 **开源精神让我们共同进步,感谢每一位开发者的贡献和分享!** ## 📄 许可证 本项目采用 [MIT 许可证](./LICENSE),详见 LICENSE 文件。 ---
**如果这个项目对你有帮助,请给个 ⭐ Star 支持一下!** **Made with ❤️ by RuoYi-Vue-Plus-Single-App Team**