🔥 硬核实战: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)
四、环境准备(一步一步搭建)
- 基础环境
JDK 17+
Maven 3.8+
Docker(用于快速启动 Milvus) - 安装并启动 Ollama
bash
运行
官网下载安装:https://ollama.com/
拉取模型
ollama pull qwen2.5:7b-instruct
ollama pull nomic-embed-text
启动服务
ollama serve
- 启动 Redis
bash
运行
macOS
brew install redis
redis-server
Docker 方式
docker run -d --name redis -p 6379:6379 redis:latest
- 启动 Milvus 向量数据库(RAG 必需)
bash
运行
项目自带 docker-compose.yml
docker compose -f src/main/resources/docker-compose.yml up -d
健康检查
curl http://localhost:9091/healthz
五、项目克隆与配置
- 克隆源码
bash
运行
git clone https://gitee.com/hao_loves_dogs_and_cats/spring-ai-ollama-demo.git
cd spring-ai-ollama-demo - 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 - 启动项目
运行主类: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
🖼️ 页面效果展示




七、核心功能实现详解
-
多角色对话系统
内置 4 大独立 AI 角色,记忆完全隔离:
通用 AI 助手
女友小杜
Java 技术顾问
婚礼顾问
🖼️ 多角色对话效果
【此处插入多角色切换对话截图】(展示不同角色的对话风格、记忆不串话、流式输出效果)
-
手搓 Redis 对话记忆(核心亮点)
java
运行
// 保存对话
redisTemplate.opsForList().leftPush(key, userMsg);
redisTemplate.opsForList().leftPush(key, aiMsg);
// 限制上下文长度
redisTemplate.opsForList().trim(key, 0, 19);
🖼️ Redis 存储结构展示

-
RAG 检索增强生成全流程
文档上传(PDF/Word/TXT)
Apache Tika 解析文本
文本分块 + Embedding 向量化
Milvus 向量存储
用户提问 → 相似度检索
基于知识生成精准回答
🖼️ RAG 知识库效果


-
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项目