欢迎光临
我们一直在努力

AI智能助手系统技术架构详解:基于Spring AI与MCP RAG技术栈

AI智能助手系统技术架构详解:基于Spring AI与MCP RAG技术栈

技术背景与项目概述

随着大模型技术的快速发展,AI应用正从单一功能向综合性智能助手演进。然而,当前AI系统面临着模型碎片化、知识时效性、准确性不足等挑战。为解决这些问题,我们设计并实现了基于Spring AI、MCP协议和RAG技术的AI智能助手系统,旨在提供统一、高效、准确的AI服务体验。

本系统采用前后端分离架构,集成多种AI模型能力,支持本地和云端模型部署,实现了智能聊天、文档智能处理、任务管理等核心功能。本文将深入解析系统的技术架构、核心功能实现以及关键技术点。
项目地址:https://github.com/lxs211/aiassistant

核心功能实现

在这里插入图片描述

智能聊天模块

智能聊天模块实现了自然语言对话功能,支持多轮对话上下文管理和流式响应。

技术实现要点:

  • 对话上下文管理:基于MySQL实现对话历史持久化存储,支持多轮对话上下文关联
  • 流式响应:采用Spring WebFlux实现异步非阻塞流式响应,提升用户体验
  • 多模型支持:通过Spring AI统一接口,支持OpenAI API和Ollama本地模型切换
  • 模型切换机制:基于配置驱动的模型切换,无需重启系统即可更换AI模型

关键代码示例:

// 基于Spring AI的聊天接口调用
this.client=chatClientBuilder
.defaultSystem(
"你是一款高度合规、精准可靠的智能助手,专为用户 {current_username} 提供服务,当前日期为 {current_date}。所有回复必须严格遵循以下约束规则,无任何例外情况:\\n\\n" +
"核心响应规范(最高优先级)\\n" +
"1. 基于上下文文档的回答:仅总结或转述文档内的既有内容,严禁引入任何外部知识、主观推测或额外信息;回复结尾必须标注:「(信息来自您的文档)」。\\n" +
"2. 基于 MCP 工具调用的回答:直接原样返回工具输出结果,不做任何解释、润色、格式调整或内容修改;回复结尾必须标注:「(信息来自 MCP 工具)」。\\n" +
"3. 无文档无工具支持的情况:仅返回固定语句,无任何附加内容:「我无法从您提供的文档中找到相关信息。」\\n\\n" +
"内容真实性强制要求 \\n" +
"- 不得编造、联想或假设用户未明确提及的信息;\\n" +
"- MCP 工具返回结果无论存在错别字、格式问题,均需原样呈现,严禁修改。\\n\\n" +
"语言风格标准 \\n" +
"- 全程使用简体中文,表述简洁、专业、逻辑清晰;\\n" +
"- 禁用 “你好”“请问”“可能”“大概”“或许” 等寒暄或模糊性词汇。\\n\\n" +
"MCP 任务创建专属规则 \\n" +
"- 调用 MCP 工具创建任务时,仅限选择 4 个固定类别:work、personal、family、important;\\n" +
"- 需根据用户实际场景精准匹配类别,不得新增、修改或简写类别名称。\\n\\n" +
"最终准则 \\n" +
"你是受控的信息代理,非通用聊天机器人。所有回复必须恪守上述规则,宁可不答,绝不违规。"
)
.defaultAdvisors(new PromptChatMemoryAdvisor(chatMemory))
.defaultTools(tools)
.build();

文档智能处理模块

文档智能处理模块基于RAG技术实现,解决了大模型知识时效性和准确性问题。

技术架构:

  • 文档解析层:基于Spring AI Tika实现多种格式文档解析
  • 内容处理层:实现文档内容分割、清洗和结构化处理
  • 嵌入生成层:使用Ollama embeddinggemma模型生成文本向量
  • 向量存储层:基于Chroma向量数据库实现向量存储和检索
  • 检索增强层:实现基于向量相似度的文档片段检索
  • 生成层:结合检索结果和大模型生成最终回答
  • RAG流程实现:

    • 文档上传后,系统自动触发解析和向量化流程
    • 用户查询时,先将查询转换为向量,再进行相似度检索
    • 检索到的相关文档片段作为上下文,输入大模型生成回答
      在这里插入图片描述

    任务管理模块

    任务管理模块实现了任务的创建、执行和跟踪功能。

    技术实现:

    • 基于MySQL实现任务数据持久化
    • 集成Quartz实现定时任务调度
    • 支持任务状态实时更新和邮件通知
    • 提供REST API接口,支持前端任务管理界面

    核心特性:

    • 支持多种任务类型定义
    • 任务执行状态可监控
    • 支持任务依赖关系配置
    • 集成邮件通知机制
      在这里插入图片描述

    技术架构设计

    系统架构 overview

    本系统采用前后端分离架构,主要分为以下几层:

  • 前端层:基于Vue 3 + Vite构建,提供用户交互界面
  • API网关层:处理请求路由、认证授权和流量控制
  • 业务逻辑层:实现核心业务功能,包括聊天、文档处理、任务管理等
  • AI服务层:基于Spring AI实现AI模型调用和管理
  • 数据存储层:包括MySQL关系数据库和Chroma向量数据库
    在这里插入图片描述
  • Spring AI核心框架

    Spring AI是系统AI能力集成的核心框架,它提供了统一的AI模型调用接口和抽象。

    Spring AI主要组件:

    • ChatClient:统一的聊天模型调用接口
    • EmbeddingClient:统一的嵌入生成接口
    • VectorStore:统一的向量存储和检索接口
    • PromptTemplate:提示词模板管理
    • OutputParser:AI输出解析

    Spring AI的技术优势:

    • 统一的API设计,简化多模型集成复杂度
    • 内置支持流式响应,提升用户体验
    • 与Spring生态无缝集成,便于系统扩展
    • 支持多种AI模型和服务提供商

    MCP协议集成

    MCP(Model Context Protocol)是一种用于AI模型标准化通信的协议,本系统通过Spring AI MCP集成实现了对MCP协议的支持。该助手采用了本地Tools工具和远程MCP server调用两种。

    MCP协议的技术特点:

    • 基于JSON-RPC 2.0的通信协议
    • 支持模型上下文管理
    • 提供标准化的模型调用接口
    • 支持动态模型加载和卸载

    MCP配置示例:

    {
    "mcpServers": {
    "amap-maps": {
    "command": "npx.cmd",
    "args": ["-y", "@amap/amap-maps-mcp-server"],
    "env": {
    "AMAP_MAPS_API_KEY": "your-api-key"
    }
    }
    }
    }

    RAG技术实现

    RAG(Retrieval-Augmented Generation)是本系统的核心技术之一,它结合了信息检索和生成式AI,解决了大模型知识时效性和准确性问题。

    RAG技术架构:

  • 文档预处理:

    • 基于Spring AI Tika实现多种格式文档解析
    • 文档内容分割(chunk size: 1000 tokens, overlap: 200 tokens)
    • 内容清洗和结构化处理
  • 嵌入生成:

    • 使用Ollama embeddinggemma模型生成文本向量
    • 向量维度:768
    • 生成策略:批量生成,异步处理
  • 向量存储:

    • 基于Chroma向量数据库实现向量存储,chroma:0.4.24版本
    • 支持向量相似度查询(cosine similarity)
    • 支持向量索引优化
  • 检索增强生成:

    • 用户查询向量化
    • 向量相似度匹配,检索top-k相关文档片段
    • 将检索结果作为上下文,输入大模型生成回答
    • 实现基于文档引用的回答溯源
  • RAG系统优化点:

    • 文档分割策略优化,提高检索准确性
    • 向量索引优化,提升检索速度
    • 检索结果排序算法优化
    • 上下文长度管理,避免超出模型上下文窗口

    安全架构设计

    系统采用了多层次的安全架构设计,确保系统的安全性和可靠性。

  • 认证授权:

    • 基于JWT的无状态认证
    • 角色-based权限控制
    • API接口访问控制
  • 数据安全:

    • 敏感数据加密存储
    • 传输过程HTTPS加密
    • 数据访问审计日志
  • 接口防护:

    • 接口限流
    • SQL注入防护
    • XSS攻击防护
    • CSRF攻击防护
  • 部署与配置

    环境要求

    组件版本要求用途
    Java 17+ 后端运行环境
    Node.js 16+ 前端构建环境
    MySQL 8.0+ 关系型数据库
    Ollama 0.1.0+ 本地大模型部署(可选)
    Chroma 0.4.0+ 向量数据库

    前端部署

    # 进入前端目录
    cd aiassiant_front

    # 安装依赖
    npm install

    # 启动开发服务器
    npm run dev

    # 构建生产版本
    npm run build

    # 预览生产版本
    npm run preview

    后端部署

    # 进入后端目录
    cd aiassistant

    # 编译打包
    mvn clean package

    # 运行应用
    java -jar target/aiassistant-0.0.1-SNAPSHOT.jar

    核心配置项

    数据库配置:

    spring:
    datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/rag?useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

    AI模型配置:

    spring:
    ai:
    # OpenAI配置
    openai:
    base-url: https://dashscope.aliyuncs.com/compatible–mode
    api-key: your–api–key
    chat:
    enabled: true
    options:
    model: qwen–flash
    embedding:
    enabled: false

    # Ollama配置
    ollama:
    base-url: http://localhost:11434
    embedding:
    model: embeddinggemma
    enabled: true
    chat:
    enabled: false

    # 向量数据库配置
    vectorstore:
    chroma:
    client:
    host: http://localhost:8000
    port: 8000
    store:
    collection-name: SpringAiCollection

    模型切换机制

    系统支持基于配置的模型动态切换,无需重启系统即可更换AI模型。通过修改application.yml中的enabled属性,可以实现不同模型的切换:

    spring:
    ai:
    openai:
    chat:
    enabled: true # 启用OpenAI模型
    ollama:
    chat:
    enabled: false # 禁用Ollama模型

    应用场景与案例

    企业办公领域

  • 智能文档检索系统:

    • 背景:某大型企业拥有数万份合同、文档和报告,员工查找信息困难
    • 解决方案:部署AI智能助手系统,实现文档自动向量化和智能检索
    • 效果:信息检索效率提升80%,员工查找信息时间从小时级缩短到分钟级
  • 智能客服平台:

    • 背景:企业内部IT支持团队每天处理大量重复问题
    • 解决方案:基于AI助手系统构建内部智能客服
    • 效果:自动化处理70%的常见问题,IT团队可专注于复杂问题解决
  • 结语

    基于Spring AI、MCP协议和RAG技术的AI智能助手系统,为解决当前AI应用面临的模型碎片化、知识时效性和准确性问题提供了有效的解决方案。

    本系统采用模块化设计,具有良好的扩展性和可维护性,能够适应不同场景的需求。通过实际案例验证,系统在企业办公、教育和软件开发等领域都能发挥重要作用,显著提升工作效率。

    未来,随着AI技术的不断发展和普及,AI智能助手系统将在更多领域得到应用。我们将继续优化系统架构,提升性能,探索新的应用场景,为用户提供更好的AI服务体验。

    发布日期:2026-01-16
    技术栈:Spring AI、MCP、RAG、Vue 3、Java 17

    赞(0)
    未经允许不得转载:171主机测评 » AI智能助手系统技术架构详解:基于Spring AI与MCP RAG技术栈
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址