Spring AI入门

文章目录


一、核心API

Message



Prompt


ChatModel

ChatClient(推荐)


Advisors


继承体系

调整Advisor顺序

案例:

Prompt Template


二、RAG

RAG流程

三、Tool Calling

Spring-AI系列------Tool Calling获取当前时间

四、MCP

概念

什么是MCP

MCP(Model Context Protocol)模型上下文协议,是一种适用于 A1大模型与数据源交互的标准协议。旨在实现跨模型、跨会话的上下文信息持久化与动态共享。它通过标准化接口实现模型间的上下文传递版本控制和协同推理,解决复杂 AI任务中的上下文碎片化问题。

如果我们观察整个 AI 自动化的发展过程,我们会发现 AI 自动化分三个阶段:AlChat、AlComposer、Al Agent.

  • AI Chat 通常只是提供建议和代码片段,人机协作的模式通常需要用户手动进行复制,调试,集成。
  • Al Composer 相比 AIChat 支持了局部的代码自动修改,我们只需要确认接受或拒绝接受即可。但是也局限于代码的上下文操作。如cursor、Trae CN
  • Al Agent 可以完成端到端的任务闭环。他是一个完全的智能体,自主决策,修改,调整我们所需的代码块,或者自主提取需要的信息。我们只需要负责监控动作就行。但是跨系统的协作能力有所欠缺。

MCP架构

模型上下文协议(MCP)遵循客户端-主机-服务器 架构,其中每个主机可以运行多个客户端实例。这种架构使用户能够跨应用程序集成 AI功能,同时保持明确的安全边界并隔离问题。MCP基于JSON-RPC构建,提供有状态会话协议,专注于客户端和服务器之间的上下文交换和采样协调。

可以发现 MCP 基于三层分层模式:

  • MCP Host(主机应用):运行 A 模型或代理的宿主程序,如 Claude 桌面版、某 IDE 中的 Al 助手等。主机应用通过内置的 MCP 客户端与外部建立连接,是连接的发起方。
  • MCP Client(客户端) :嵌入在主机应用中的协议客户端组件。每个 MCP 客户端与一个特定的MCP 服务器保持一对一的连接,用于向服务器发送请求或接收响应。一个主机应用中可以运行多个MCP 客户端,从而同时连接多个不同的服务器。
  • MCP Server(服务器):独立运行的轻量程序,封装了某一数据源或服务的具体能力,通过标准化的 MCP 接口对外提供。每个 MCP 服务器相当于一个"适配器",将底层的数据源/工具(本地文件、数据库、第三方 API等)的功能以统一格式暴露出来,供客户端调用。
  • 本地数据源:部署在用户本地环境中的数据资源,例如本机文件系统、数据库、应用服务等。MCP服务器可以受控地访问这些资源,并将内容提供给 AI模型使用。例如,一个本地 MCP 服务器可以读取电脑文件或查询本地 SQLite 数据库,然后将结果发给模型作为参考。
  • 远程服务:通过网络提供的外部系统或在线服务(通常通过 HTTP API访问)。MCP 服务器也可以连接到这些远程服务获取数据。比如,可以有一个 MCP 服务器连接 Slack 的 Web API,代表 AI助手执行发送消息、读取频道记录等操作。

传输方式

MCP 提供了两种不同的传输实现。

  • 默认传输方式:基于Stdio,HTTP SSE
  • 基于 Spring 的传输:WebFlux SSE,WebMVC SSE4.2、JAVA 应用的基础架构 JAVA SDK也是遵循分层结构
  • 客户端/服务器层(McpClient/McpServer):两者都使用 McpSession 进行同步/异步操作,其中 McpClient 处理客户端协议操作,McpServer 管理服务器端协议操作。
  • 会话层(McpSession):使用 DefaultMcpSession 实现管理通信模式和状态。
  • 传输层(McpTransport):通过以下方式处理JSON-RPC消息序列化/反序列化:
  • 核心模块中的 StdioTransport(stdin/stdout)
  • 专用传输模块(Java HttpClient、Spring WebFlux、Spring WebMVC)中的 HTTP SSE 传输

MCP客户端

是模型上下文协议(MCP)架构中的关键组件,负责建立和管理与MCP 服务器的连接。它

实现协议的客户端。

MCP 服务器

是模型上下文协议(MCP)架构中的基础组件,用于为客户提供工具、资源和功能。它实现

协议的服务器端。

MCP Server三种主要功能

1.Resources: 资源。客户端可以读取的类似文件的数据(如 AP 响应或文件内容)

2.Tools:工具。可由 LLM(经用户批准)调用的函数。

3.Prompts: 提示。帮助用户完成特定任务的预先编写的模板。

MCP与 function calling的区别

  • MCP:
    a.MCP 是一个更底层,更通用的标准协议。
    b.MCP 更倾向于抽象和通用。
    c.MCP 通常支持多数据源。
  • function calling
    a.function calling 是大模型专用的特性,或者说实现方式。
    b.function calling 更倾向于具体的实现调用,
    c.function calling 适用于特定场景,单一数据源。

实战

Spring AI系列------开发MCP Server(SSE方式)

五、Alibaba Graph

Agent系列------SPring AI Alibaba Graph初探

六、资料

参考视频:https://www.bilibili.com/video/BV1eyWbzEEnw/?spm_id_from=333.788.player.switch\&vd_source=0467ab39cc5ec5940fee22a0e7797575\&p=7

相关推荐
智驱力人工智能2 小时前
矿山皮带锚杆等异物识别 从事故预防到智慧矿山的工程实践 锚杆检测 矿山皮带铁丝异物AI预警系统 工厂皮带木桩异物实时预警技术
人工智能·算法·安全·yolo·目标检测·计算机视觉·边缘计算
Python_Study20252 小时前
制造业企业如何构建高效数据采集系统:从挑战到实践
大数据·网络·数据结构·人工智能·架构
丝斯20112 小时前
AI学习笔记整理(47)——大模型企业应用技术之提示工程
人工智能·笔记·学习
媒体人8882 小时前
GEO优化专家孟庆涛:生成式AI时代的营销革命与未来
人工智能·电脑·生成式引擎优化·geo优化
知乎的哥廷根数学学派2 小时前
基于多分辨率注意力脉冲神经网络的机械振动信号故障诊断算法(西储大学轴承数据,Pytorch)
人工智能·pytorch·深度学习·神经网络·算法·机器学习
Geoking.2 小时前
【设计模式】策略模式(Strategy)详解:把 if-else 变成可切换的算法
java·设计模式·策略模式
代码改变生活-1202 小时前
idea 清除缓存之后重启项目编译失败
java·缓存·intellij-idea
知识图谱LLM2 小时前
【关于多模态情感识别数据集的报告】
人工智能·自然语言处理·语音识别
deephub2 小时前
CALM模型的黑盒采样:用碰撞方法实现温度调节
人工智能·大语言模型·采样