RuoYi AI 项目概述与核心功能
RuoYi AI 是一个基于 Spring Boot 3.4 和 Vue 3 的企业级 AI 助手平台,深度融合 FastGPT、Coze、DIFY 等主流 AI 平台,并结合 RAG 技术,提供智能对话、知识检索和自动化任务处理能力。项目定位为多模型支持、平台兼容、隐私优先的模块化企业级解决方案,适用于智能客服、知识管理和自动化任务等场景。
RuoYi AI 项目简介与定位
RuoYi AI 是一个基于 Spring Boot 3.4 和 Vue 3 的企业级 AI 助手平台,旨在为开发者提供一套功能强大、易于扩展的 AI 解决方案。该项目深度融合了 FastGPT、Coze、DIFY 等主流 AI 平台,并结合了 RAG(检索增强生成)技术,为用户提供智能化的对话、知识检索和自动化任务处理能力。
项目定位
RuoYi AI 的定位是成为企业级 AI 应用的“一站式”开发平台,具备以下核心特点:
- 多模型支持:集成 OpenAI GPT-4、ChatGLM、Qwen 等多种 AI 模型,满足不同场景需求。
- 平台兼容性:无缝对接 FastGPT、Coze 和 DIFY,支持多平台切换与负载均衡。
- 隐私优先:支持本地部署,结合 Langchain4j 和 BGE-large-zh-v1.5 嵌入模型,确保数据安全。
- 模块化设计:采用微服务架构,各功能模块独立开发与部署,便于扩展。
核心功能
以下为 RuoYi AI 的核心功能模块及其技术实现:
1. AI 引擎
flowchart TD
A[用户请求] --> B[AI 引擎]
B --> C{模型选择}
C -->|GPT-4| D[OpenAI]
C -->|ChatGLM| E[本地部署]
C -->|Qwen| F[阿里云]
D --> G[响应生成]
E --> G
F --> G
G --> H[返回结果]
2. 知识检索与增强
sequenceDiagram
participant User
participant RuoYiAI
participant VectorDB
User->>RuoYiAI: 查询请求
RuoYiAI->>VectorDB: 检索知识库
VectorDB-->>RuoYiAI: 返回相关文档
RuoYiAI->>AI 引擎: 生成增强响应
AI 引擎-->>RuoYiAI: 响应内容
RuoYiAI-->>User: 最终结果
3. 企业级扩展
| 功能模块 | 技术实现 | 适用场景 |
|---|---|---|
| 多租户支持 | Sa-Token + MySQL 隔离 | SaaS 应用 |
| 实时通信 | WebSocket + SSE | 在线客服、协作工具 |
| 文件处理 | PDF/Word/Excel 解析 | 文档自动化处理 |
技术栈
- 后端:Spring Boot 3.4、Spring AI、Langchain4j
- 前端:Vue 3、Vben Admin、Naive UI
- 数据库:MySQL 8.0、Redis、Milvus/Weaviate
- 部署:Docker、Kubernetes(可选)
适用场景
RuoYi AI 适用于以下场景:
- 智能客服:结合多模型生成自然语言响应。
- 知识管理:通过 RAG 技术实现高效检索。
- 自动化任务:如 PPT 生成、数据分析等。
核心功能模块解析
RuoYi AI 是一个企业级 AI 助手平台,集成了多种 AI 引擎和工具,支持多模型、多模态处理和高级 RAG 技术。以下是对其核心功能模块的详细解析:
1. AI 引擎集成
RuoYi AI 支持多种 AI 引擎,包括 OpenAI GPT-4、Azure、ChatGLM、Qwen 和 ZhipuAI。通过 Spring AI MCP 协议,实现了与 FastGPT、Coze 和 DIFY 等平台的深度集成。
classDiagram
class AIEngine {
+String modelName
+String apiKey
+String apiHost
+supportStreaming()
+generateResponse()
}
AIEngine <|-- OpenAIService
AIEngine <|-- CozeService
AIEngine <|-- FastGPTService
AIEngine <|-- DifyService
功能特点:
- 多模型支持:用户可以根据需求选择不同的 AI 模型。
- 流式响应:通过 SSE/WebSocket 实现实时交互。
- 统一接口:标准化了不同平台的调用方式,便于切换和扩展。
2. RAG(检索增强生成)解决方案
RuoYi AI 提供了基于本地知识库和向量数据库的 RAG 功能,支持隐私优先的部署模式。
flowchart TD
A[用户输入] --> B(检索知识库)
B --> C{是否匹配?}
C -->|是| D[生成增强结果]
C -->|否| E[直接生成结果]
D --> F[返回结果]
E --> F
技术栈:
- 向量数据库:支持 Milvus、Weaviate 和 Qdrant。
- 嵌入模型:使用 BGE-large-zh-v1.5 生成嵌入向量。
- 本地 LLM:支持 Ollama 和 vLLM。
3. 多模态处理
RuoYi AI 支持文本、图像和文档的多模态处理,包括 AI 艺术生成、PPT 自动生成等功能。
示例代码(图像生成):
public class ImageServiceImpl {
public SseEmitter generateImage(ChatRequest request) {
// 调用多模态模型生成图像
return emitter;
}
}
功能特点:
- DALL·E-3 集成:支持高质量图像生成。
- 自动化 PPT:根据文本输入生成幻灯片。
- 文档解析:支持 PDF、Word 和 Excel 文件的智能分析。
4. 企业级工具链
RuoYi AI 提供了一系列企业级工具,包括文件处理、实时通信和系统监控。
工具列表:
| 工具名称 | 功能描述 |
|---|---|
FileUtils |
文件上传、下载和管理 |
MailUtils |
邮件发送和模板管理 |
LogStreamService |
实时日志流式传输 |
5. 开发者工具
RuoYi AI 为开发者提供了丰富的工具和 API,便于二次开发和集成。
示例 API:
@RestController
@RequestMapping("/api/chat")
public class ChatController {
@PostMapping("/send")
public SseEmitter chat(@RequestBody ChatRequest request) {
// 处理聊天请求
return emitter;
}
}
开发者支持:
- 代码生成:支持根据数据库表生成 CRUD 代码。
- 模板引擎:使用 Velocity 动态生成代码和配置文件。
- 项目管理:提供项目结构和依赖分析工具。
6. 安全与权限管理
RuoYi AI 集成了 Sa-Token 和 JWT,支持细粒度的权限控制和多租户隔离。
stateDiagram
[*] --> 未认证
未认证 --> 已认证: 登录成功
已认证 --> 权限校验: 访问资源
权限校验 --> 允许访问: 权限匹配
权限校验 --> 拒绝访问: 权限不匹配
安全特性:
- 多租户支持:每个租户拥有独立的数据和配置。
- 审计日志:记录所有关键操作,便于追溯。
- 防注入:内置 XSS 和 SQL 注入防护。
技术栈与架构设计
RuoYi AI 是一个企业级 AI 助手平台,其技术栈和架构设计充分体现了现代微服务架构和 AI 技术的深度融合。以下将从技术栈、架构设计、核心模块等方面展开详细介绍。
技术栈概览
RuoYi AI 采用了前后端分离的开发模式,结合了多种主流技术和框架,确保系统的高性能、可扩展性和安全性。
后端技术栈
| 技术/框架 | 用途 |
|---|---|
| Spring Boot 3.4 | 后端核心框架,提供快速开发和微服务支持 |
| Spring AI | 集成 AI 能力,支持多模型调用和 RAG 技术 |
| Langchain4j | 提供本地知识库和向量数据库支持 |
| MySQL 8.0 | 关系型数据库,存储业务数据 |
| Redis | 缓存和会话管理 |
| Milvus/Weaviate/Qdrant | 向量数据库,支持高效相似性搜索 |
| Sa-Token | 认证和授权框架 |
前端技术栈
| 技术/框架 | 用途 |
|---|---|
| Vue 3 | 前端框架,提供响应式用户界面 |
| Vben Admin | 后台管理系统模板 |
| Naive UI | UI 组件库,提供丰富的交互组件 |
AI 技术栈
| 技术/框架 | 用途 |
|---|---|
| OpenAI GPT-4 | 提供自然语言处理能力 |
| FastGPT/Coze/DIFY | 集成 AI 平台,支持知识库和流程编排 |
| BGE-large-zh-v1.5 | 中文文本嵌入模型 |
| Ollama/vLLM | 本地模型部署工具 |
架构设计
RuoYi AI 采用分层架构设计,确保各模块职责清晰,便于扩展和维护。以下是其核心架构图:
flowchart TD
subgraph 前端
A[用户界面] --> B[API调用]
end
subgraph 后端
B --> C[Spring Boot]
C --> D[业务逻辑层]
D --> E[数据访问层]
E --> F[MySQL/Redis]
C --> G[AI服务层]
G --> H[FastGPT/Coze/DIFY]
G --> I[向量数据库]
end
核心模块
-
用户认证与授权
基于 Sa-Token 实现,支持多租户和角色权限管理。@RestController public class AuthController { @PostMapping("/login") public R login(@RequestBody LoginBody loginBody) { // 认证逻辑 } } -
AI 服务集成
通过 Spring AI 和 Langchain4j 实现多模型调用和知识库检索。@Service public class AIService { public String generateResponse(String prompt) { // 调用 AI 模型 } } -
文件处理与存储
支持 PDF、Word、Excel 等文件的解析和存储。@RestController public class FileController { @PostMapping("/upload") public R uploadFile(@RequestParam("file") MultipartFile file) { // 文件处理逻辑 } } -
实时通信
基于 WebSocket 和 SSE 实现实时消息推送。@Service public class ChatService { public void sendMessage(String message) { // 消息推送逻辑 } }
数据流设计
以下是系统处理用户请求的典型数据流:
sequenceDiagram
participant 用户
participant 前端
participant 后端
participant 数据库
participant AI服务
用户->>前端: 发送请求
前端->>后端: API调用
后端->>数据库: 查询数据
后端->>AI服务: 调用AI模型
AI服务-->>后端: 返回结果
后端-->>前端: 返回响应
前端-->>用户: 显示结果
性能优化
- 缓存策略
使用 Redis 缓存高频访问数据,减少数据库压力。 - 异步处理
通过线程池和消息队列处理耗时任务,提升响应速度。 - 向量数据库
支持高效相似性搜索,优化 AI 服务性能。
@Configuration
public class ThreadPoolConfig {
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
// 配置线程池
}
}
通过以上技术栈和架构设计,RuoYi AI 能够高效、稳定地支持企业级 AI 应用场景。
快速入门与部署指南
RuoYi AI 是一个功能强大的企业级 AI 助手平台,支持多模型集成、知识库管理和实时通信等功能。以下是一份详细的快速入门与部署指南,帮助您快速搭建和运行 RuoYi AI 平台。
环境准备
在开始部署之前,请确保您的系统满足以下要求:
- 操作系统:支持 Linux、macOS 和 Windows(推荐使用 Linux 或 macOS)。
- Docker:确保已安装 Docker 和 Docker Compose。
- 硬件资源:
- CPU:至少 4 核
- 内存:至少 8GB
- 存储:至少 20GB 可用空间
部署步骤
1. 克隆项目代码
首先,克隆 RuoYi AI 的代码仓库:
git clone https://github.com/ageerle/ruoyi-ai.git
cd ruoyi-ai
2. 配置环境变量
在 script/deploy/one-step-script 目录下,找到 deploy-en.sh(Linux)或 deploy-en-macos.sh(macOS)脚本。根据您的需求修改以下环境变量:
# MySQL 配置
MYSQL_ROOT_PASSWORD=your_mysql_root_password
MYSQL_DATABASE=ruoyi_ai
MYSQL_PORT=3306
# Redis 配置
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
# Weaviate 配置
WEAVIATE_HTTP_PORT=8080
WEAVIATE_GRPC_PORT=50051
WEAVIATE_DATA_PATH=/data/weaviate
# 应用端口
SERVER_PORT=8080
ADMIN_PORT=8081
WEB_PORT=80
3. 运行部署脚本
根据您的操作系统,运行对应的部署脚本:
-
Linux:
./script/deploy/one-step-script/deploy-en.sh -
macOS:
./script/deploy/one-step-script/deploy-en-macos.sh
脚本会自动完成以下操作:
- 复制
docker-compose.yaml模板文件。 - 替换环境变量占位符。
- 拉取 Docker 镜像并启动容器。
4. 验证部署
部署完成后,访问以下服务:
- 用户界面:
http://localhost:80 - 管理界面:
http://localhost:8081 - API 服务:
http://localhost:8080
高级配置
自定义镜像版本
如果需要使用特定版本的镜像,可以在部署脚本中修改以下变量:
RUOYI_AI_BRANCH=latest
RUOYI_ADMIN_BRANCH=latest
RUOYI_WEB_BRANCH=latest
数据持久化
默认情况下,MySQL 和 Weaviate 的数据会存储在 Docker 卷中。如果需要自定义存储路径,请修改 docker-compose.yaml 文件中的以下配置:
volumes:
- mysql_data:/var/lib/mysql
- weaviate_data:/var/lib/weaviate
常见问题
1. 端口冲突
如果默认端口已被占用,请修改 docker-compose.yaml 文件中的端口映射配置。
2. 部署失败
检查日志以排查问题:
docker-compose logs
3. 更新配置
修改环境变量后,重新运行部署脚本即可更新配置。
流程图
以下是部署流程的简要流程图:
flowchart TD
A[克隆项目] --> B[配置环境变量]
B --> C[运行部署脚本]
C --> D[验证部署]
D --> E[完成]
通过以上步骤,您可以快速完成 RuoYi AI 的部署并开始使用其强大的功能!
RuoYi AI 通过整合 Spring Boot、Vue 3 和多种 AI 技术栈,构建了一个功能全面、易于扩展的企业级 AI 平台。其核心优势包括多模型支持、RAG 增强检索、多模态处理和企业级安全架构,配合详尽的部署指南和模块化设计,为开发者提供了高效的 AI 应用开发框架。项目技术栈覆盖前后端全链路,适合构建从智能客服到知识管理的多样化 AI 解决方案。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00