⚡️硬核实战: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项目

相关推荐
Navicat中国3 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI4 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区4 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
Pniubi5 小时前
HashMap的扩容和树化边界
java·开发语言
Mikko75 小时前
用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩
java·游戏开发·swing
知了学历孙老师5 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
Java爱好狂.5 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
XCDoris6 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy6 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V6 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai