⚡️硬核实战:Spring AI + Ollama 从零搭建私有化多角色 AI 助手|RAG 知识库 + MCP 控制台全实现

🔥 硬核实战:Spring AI + Ollama 从零搭建私有化多角色 AI 助手|RAG 知识库 + MCP 控制台全实现

本地部署无云依赖|手搓 Redis 对话记忆|Milvus 向量库|Java 全栈 AI 项目一站式落地教程

@

一、前言

随着大模型技术日益普及,私有化、安全可控、不依赖云 API的 AI 解决方案越来越受企业与开发者青睐。本文基于 Spring Boot 4 + Spring AI 2.0 + Ollama + Milvus + Redis,从 0 到 1 手把手搭建一套企业级本地私有化 AI 助手,包含多角色对话、Redis 持久化记忆、RAG 知识库、标准 MCP 协议服务 + 可视化控制台,全程可直接复刻运行,适合学习、毕设、求职、实战落地。

🎬 项目效果总览(先看效果再上手)



二、项目亮点

✅ 100% 本地私有化部署,不上云、无外网依赖、数据安全可控

✅ 多角色 AI 强隔离,4 种角色独立记忆,彻底解决串话问题

✅ 手搓 Redis 对话记忆,弥补 Spring AI 官方 ChatMemory 缺陷

✅ RAG 知识库全链路落地:PDF/Word/TXT 上传→解析→向量化→检索→问答

✅ 标准 MCP 协议服务端:SSE 连接 + 工具发现 + 工具调用完整实现

✅ 现代化 MCP 控制台:状态联动、日志可视化、交互流畅

✅ 5 套前端页面直接访问,原生 HTML 无需框架

✅ 流式 SSE 输出,打字机效果拉满

✅ 零基础可跑通,一步一步环境搭建 + 配置 + 启动

三、技术栈

后端:Spring Boot 4.0.5 + Spring AI 2.0.0-M4 + Maven

AI 引擎:Ollama、qwen2.5:7b-instruct、nomic-embed-text

存储:Redis(对话记忆)、Milvus(向量数据库)、MySQL(可选)

文档解析:Apache Tika(PDF/Word/TXT)

前端:原生 HTML/CSS/JS

协议:标准 MCP(Model Control Protocol)

四、环境准备(一步一步搭建)

  1. 基础环境
    JDK 17+
    Maven 3.8+
    Docker(用于快速启动 Milvus)
  2. 安装并启动 Ollama
    bash
    运行

官网下载安装:https://ollama.com/

拉取模型

ollama pull qwen2.5:7b-instruct

ollama pull nomic-embed-text

启动服务

ollama serve

  1. 启动 Redis

bash

运行

macOS

brew install redis

redis-server

Docker 方式

docker run -d --name redis -p 6379:6379 redis:latest

  1. 启动 Milvus 向量数据库(RAG 必需)

bash

运行

项目自带 docker-compose.yml

docker compose -f src/main/resources/docker-compose.yml up -d

健康检查

curl http://localhost:9091/healthz

五、项目克隆与配置

  1. 克隆源码
    bash
    运行
    git clone https://gitee.com/hao_loves_dogs_and_cats/spring-ai-ollama-demo.git
    cd spring-ai-ollama-demo
  2. application.yml 核心配置
    yaml
    spring:
    ai:
    ollama:
    base-url: http://localhost:11434
    chat:
    model: qwen2.5:7b-instruct
    temperature: 0.7
    embedding:
    model: nomic-embed-text
    data:
    redis:
    host: localhost
    port: 6379
    vectorstore:
    milvus:
    client:
    uri: http://localhost:19530
    username: root
    password: milvus
    embeddingDimension: 768
  3. 启动项目
    运行主类:SpringAiOllamaDemoApplication.java
    六、可直接访问页面
    多角色聊天界面:http://localhost:8080/chat.html
    RAG 知识库界面:http://localhost:8080/rag-chat.html
    AI 功能中枢:http://localhost:8080/ai-hub.html
    MCP 标准控制台:http://localhost:8080/mcp-console.html
    🖼️ 页面效果展示



七、核心功能实现详解

  1. 多角色对话系统

    内置 4 大独立 AI 角色,记忆完全隔离:

    通用 AI 助手

    女友小杜

    Java 技术顾问

    婚礼顾问

    🖼️ 多角色对话效果

    【此处插入多角色切换对话截图】(展示不同角色的对话风格、记忆不串话、流式输出效果)

  2. 手搓 Redis 对话记忆(核心亮点)

    java

    运行

    // 保存对话

    redisTemplate.opsForList().leftPush(key, userMsg);

    redisTemplate.opsForList().leftPush(key, aiMsg);

    // 限制上下文长度

    redisTemplate.opsForList().trim(key, 0, 19);

    🖼️ Redis 存储结构展示

  3. RAG 检索增强生成全流程

    文档上传(PDF/Word/TXT)

    Apache Tika 解析文本

    文本分块 + Embedding 向量化

    Milvus 向量存储

    用户提问 → 相似度检索

    基于知识生成精准回答

    🖼️ RAG 知识库效果

  4. MCP 协议服务 + 控制台

    SSE 长连接:/mcp/sse

    工具列表:/mcp/tools/list

    工具调用:/mcp/tools/call

    控制台状态联动、断开自动清空工具列表

    🖼️ MCP 控制台效果


八、项目结构

plaintext

src/main/java/com/ai/

├── config/ Milvus配置

├── controller/

│ ├── AiChatController.java

│ ├── AiMemoryRedisController.java

│ ├── RagController.java

│ └── McpController.java

├── service/

│ ├── DocumentParserService.java

│ └── KnowledgeBaseService.java

├── util/

│ └── RedisChatMemoryStore.java

└── SpringAiOllamaDemoApplication.java

🖼️ IDEA 项目结构截图

九、实战踩坑与解决方案

Spring AI 不支持多角色 → 手写 Redis 记忆隔离

RAG 向量维度不匹配 → 统一设置 768 维

Milvus 启动慢 → 延长连接超时时间

MCP 状态不同步 → 断开自动清空工具

角色串话 → 按角色前缀做 Key 隔离

十、后续迭代规划

AI Agent 自动化任务执行

多路召回 + Rerank 重排序

知识图谱集成

Docker Compose 一键部署

灵码生态深度集成

十一、总结

本项目是一套真正可落地、可演示、可扩展的 Java 全栈私有化 AI 项目,涵盖 Spring AI + Ollama + RAG + Milvus + Redis + MCP 全生态技术栈,适合私有化知识库、智能助手、毕设、求职项目、企业内部平台搭建。

十二、源码地址

https://gitee.com/hao_loves_dogs_and_cats/spring-ai-ollama-demo

📌 本文标签

Spring AI Ollama RAG Milvus MCP协议 私有化大模型 本地大模型 Java AI实战 多角色AI Redis对话记忆 SpringBoot AI 向量数据库 检索增强生成 全栈AI项目

相关推荐
Raink老师1 天前
【AI面试临阵磨枪-79】实时数据 RAG:订单、商家、物流、天气、动态库存
人工智能·面试·职场和发展
脑极体1 天前
点亮星河AI+鸿蒙,一座艺术场馆的日神觉醒
人工智能·华为·harmonyos
Cosolar1 天前
Chroma向量库面试学习指南
数据库·人工智能·面试·职场和发展·数据库架构
BUG指挥官1 天前
Claude Code的自动化编程
人工智能
意图共鸣1 天前
意图共鸣科技《认知智能白皮书》——感知与执行分离:认知架构(CA)如何重塑大模型底层结构
人工智能·架构
等一个人的@1 天前
让数据自己开口:数睿通智库新增智能问数模块
人工智能·自然语言处理
ZGi.ai1 天前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
方也_arkling1 天前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮1 天前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei111 天前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构