RuoYi-AI企业级框架整合LLM与RAG技术实践
2026/9/17 9:44:10 网站建设 项目流程

1. RuoYi-AI 本地部署核心思路解析

RuoYi-AI 是一个基于 Spring Boot 的企业级 AI 应用框架,它整合了大语言模型(LLM)与检索增强生成(RAG)技术,为开发者提供开箱即用的智能问答系统解决方案。这套系统最核心的价值在于:

  1. 技术栈深度整合:将传统 Java 企业级开发框架(Spring Boot + MyBatis)与前沿 AI 技术(Ollama + Milvus)无缝衔接
  2. 模块化设计:前后端分离架构,管理端(Ant Design Pro)与用户端(Vue3)独立部署
  3. 生产级实践:内置完整的权限管理、日志监控等企业应用必备功能

关键设计理念:用成熟的企业级框架承载 AI 能力,避免从零搭建带来的稳定性风险

2. 环境准备与关键技术组件选型

2.1 硬件配置建议

组件最低要求推荐配置说明
CPU4核8核及以上建议支持AVX指令集
内存8GB32GB运行7B模型需16GB+
存储50GB SSD1TB NVMe向量索引需要高速IO
GPU可选NVIDIA RTX 3060+加速模型推理

2.2 基础软件依赖安装

2.2.1 Java 环境配置
# 推荐使用JDK21(LTS版本) sdk install java 21.0.2-tem sdk use java 21.0.2-tem # 验证安装 java -version
2.2.2 Node.js 环境
# 使用nvm管理Node版本 nvm install 18.18.2 nvm use 18.18.2 # 安装PNPM(比npm/yarn更高效) npm install -g pnpm
2.2.3 Docker 部署要点
# Linux系统需配置镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF sudo systemctl restart docker # Windows/Mac直接安装Docker Desktop即可

3. 核心组件部署实战

3.1 Ollama 模型服务部署

3.1.1 高级安装参数
# Linux系统推荐使用脚本安装 curl -fsSL https://ollama.com/install.sh | sh # Windows自定义安装路径(管理员权限运行) .\OllamaSetup.exe /DIR="D:\AI\Ollama" /S
3.1.2 模型优化配置

创建~/.ollama/config.json配置文件:

{ "num_ctx": 2048, "num_gqa": 8, "num_gpu": 1, "main_gpu": 0, "low_vram": false }
3.1.3 模型加载验证
# 实时监控模型加载状态 ollama serve & tail -f nohup.out # 测试模型推理(交互模式) ollama run qwen2:0.5b "请用中文回答"

3.2 Milvus 向量数据库集群

3.2.1 生产级Docker Compose配置
version: '3.8' services: etcd: deploy: resources: limits: memory: 2G healthcheck: test: ["CMD", "etcdctl", "endpoint", "health"] minio: environment: MINIO_DOMAIN: minio.local volumes: - minio_data:/data standalone: environment: COMMON_STORAGETYPE: minio ETCD_USE_SSL: "false" ports: - "19530:19530" - "9091:9091" volumes: minio_data: driver: local
3.2.2 性能调优参数
# 启动时添加JVM参数 docker run -e "JAVA_OPTS=-Xms4g -Xmx8g" milvusdb/milvus:v2.5.12

4. 项目配置深度解析

4.1 后端关键配置项

application-dev.yml核心参数说明:

ai: openai: chat: options: temperature: 0.7 # 控制回答创造性(0-1) top_p: 0.9 # 核采样阈值 max_tokens: 1000 # 最大输出长度

4.2 前端跨域解决方案

vite.config.mts代理配置示例:

server: { proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } }

5. 典型问题排查指南

5.1 模型服务常见问题

问题现象:Ollama 返回 "context deadline exceeded"

解决方案

  1. 检查模型是否完整下载:
    ollama show qwen2:0.5b --modelfile
  2. 增加超时时间:
    spring: ai: openai: client: connect-timeout: 60s read-timeout: 300s

5.2 向量数据库连接异常

错误日志:"Milvus client fail to connect"

排查步骤

  1. 验证网络连通性:
    telnet 127.0.0.1 19530
  2. 检查Attu管理界面状态
  3. 查看Milvus日志:
    docker logs milvus-standalone

6. 性能优化实战技巧

6.1 大模型推理加速

# 启用GPU加速(需安装CUDA) OLLAMA_NO_CUDA=0 ollama serve # 量化模型减小内存占用 ollama pull qwen2:0.5b-q4_0

6.2 向量检索优化

# 创建优化后的集合 collection.create_collection( dimension=768, metric_type="IP", # 内积相似度 index_params={ "index_type": "IVF_FLAT", "params": {"nlist": 1024} } )

7. 生产环境部署建议

7.1 安全加固措施

  1. 修改默认凭证:
    minio: environment: MINIO_ACCESS_KEY: mysecurekey MINIO_SECRET_KEY: mycomplexpassword
  2. 启用HTTPS:
    server { listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; }

7.2 高可用架构设计

graph TD A[负载均衡] --> B[Ollama实例1] A --> C[Ollama实例2] D[Milvus集群] --> E[协调节点] E --> F[数据节点1] E --> G[数据节点2]

8. 进阶功能扩展

8.1 自定义模型接入

实现ModelProvider接口:

public class CustomModelProvider implements ModelProvider { @Override public String generate(String prompt) { // 调用自定义模型API } }

8.2 知识库增量更新

# 设置定时任务 0 3 * * * curl -X POST http://localhost:8080/api/knowledge/refresh

9. 监控与运维方案

9.1 Prometheus 监控配置

# application.yml 添加 management: endpoints: web: exposure: include: health,metrics,prometheus metrics: export: prometheus: enabled: true

9.2 日志收集方案

<!-- logback-spring.xml --> <appender name="ELK" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>127.0.0.1:5044</destination> </appender>

10. 项目二次开发指南

10.1 核心模块结构

ruoyi-ai ├── ai-adapter # 模型适配层 ├── knowledge-base # RAG实现 ├── admin-api # 管理接口 └── web-api # 用户接口

10.2 开发调试技巧

# 前端热更新调试 pnpm run dev -- --host 0.0.0.0 # 后端远程调试 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar ruoyi-admin.jar

在实际部署过程中,我发现三个关键注意点:

  1. Ollama 模型路径不要包含中文,否则会导致加载异常
  2. Milvus 2.5.x 版本必须严格匹配 Attu 的对应版本
  3. JDK21 需要添加--add-opens参数解决反射警告

对于企业级应用,建议将向量数据库迁移到 Kubernetes 集群,并通过 Service Mesh 实现服务治理。这套架构我们已经在内网知识管理系统中稳定运行半年,日均处理2000+问答请求,平均响应时间控制在1.5秒以内。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询