告别Spring AI!我的Java轻量AI框架实践(支持多模型接入|注解式MCP架构|附开源地址)

在这里插入图片描述

~犬📰余~

“我欲贱而贵,愚而智,贫而富,可乎?
曰:其唯学乎”

1. 开发初衷

\quad 大家好,我是犬余,之前,为了体验一下MCP架构的JAVA实现,犬余使用了Spring AI框架(详见跑通了!JAVA实现、内网部署、基于MCP的智能问答!)。

\quad 但是体验了几天之后,发现SpringAI无法获取聊天过程中的思考过程,另外还有很多各个实现的包难以选择,又没找到详细的文档来了解这么多包要怎么用。

\quad 所以,出于学习的目的,犬余抛弃了Spring AI,转而自己尝试开发了一个框架来实现AI对话以及MCP的实现。项目地址为:

\quad https://github.com/quanyu-1995/qy-framework-ai.git

\quad 而由于犬余之前并不了解Netty框架以及WebFlux、Reactor等技术,本框架完全是一边学习一边开发的,初版的目的只是实现基础功能,所以框架本身的代码结构以及这些技术的应用还很表面。希望大家能给犬余的项目点个star⭐️支持一下,同时,也欢迎感兴趣的朋友们留言交流或者添加犬余的个人wx,共同学习或者提出您的宝贵意见:
在这里插入图片描述

2. 快速上手

\quad 下面简单说明一下本项目的使用,由于框架还不够完善,所以目前还没有提交到Maven仓库,项目共分为四个模块:

  • qy-framework-ai-mcp-client: 基础对话包,集成多种大模型,支持流式输出,内置MCP Client
  • qy-framework-ai-mcp-server: MCP Server扩展包
  • qy-framework-ai-example: 对话示例(含MCP Client示例)
  • qy-framework-ai-mcp-server-example: MCP Server示例

\quad 其中qy-framework-ai-mcp-serve以及qy-framework-ai-mcp-client是框架本体的两个包,分别对应MCP server和MCP client,另外的两个模块分别用于测试服务端和客户端。

\quad 其中服务端在注册MCP工具时,仅需添加注解@Tool即可
在这里插入图片描述

\quad 客户端首先需要在配置文件中添加相应的配置,包括大模型的API信息,以及服务端的地址,目前已测试通过的有deepseek API、Qwen3 API、以及Ollama本地部署的qwen3。
在这里插入图片描述

\quad 如果需要多轮对话,还可以使用默认的对话记录缓存策略(DefaultCacheStrategy),并添加相应的redis配置
在这里插入图片描述

\quad 当然,你也可以通过实现CacheStrategy接口来自定义对话记录持久化策略。
在这里插入图片描述

\quad 最后,在使用时则只需要注入ChatClient,直接调用对话接口即可~
在这里插入图片描述

\quad 可以看到,犬余的框架中提供了两种对话接口,分别对应普通的一次性输出结果以及打字机效果的流式输出。

3. 效果展示

\quad 同时,在qy-framework-ai-example中,犬余也放了一个简单的对话页面,来展现流式输出的效果:
在这里插入图片描述

4. 诚挚邀请

\quad 以上就是犬余的项目的基本内容啦,本项目是犬余的第一个开源项目,希望大 家能给犬余的项目点个star⭐️支持一下:
\quad https://github.com/quanyu-1995/qy-framework-ai.git
\quad 同时,也欢迎感兴趣的朋友们留言交流或者添加犬余的个人wx,共同学习或者提出您的宝贵意见~
在这里插入图片描述

关注犬余,共同进步

技术从此不孤单
### Spring AI MCP Java SDK 概述 Spring AI MCP 是一种基于 Model Context Protocol (MCP)Java 实现,旨在简化模型上下文协议的应用开发过程。通过该 SDK,开发者可以轻松构建支持 MCP 协议的服务端和客户端应用程序[^1]。 #### 核心功能 - **多传输选项**:支持多种通信方式,便于灵活集成到不同的技术栈中。 - **三层架构设计**: - **MCP 客户端**:负责向服务端发送请求并处理响应。 - **MCP 服务器**:提供 API 接口供客户端调用,并管理模型的上下文数据。 - **工具回调接口(ToolCallbackProvider)**:允许扩展自定义行为以适应特定需求[^2]。 --- ### 使用方法 以下是关于如何使用 Spring AI MCP Java SDK 构建服务端和客户端的具体指导: #### 1. 引入 Maven 依赖 在项目的 `pom.xml` 文件中添加以下依赖项来引入 Spring AI MCP SDK: ```xml <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-mcp</artifactId> <version>1.0.0-M6</version> </dependency> ``` #### 2. 配置 YML 文件 创建或修改项目中的 `application.yml` 或 `application.properties` 文件,设置必要的参数。例如: ```yaml spring: ai: mcp: server-url: http://localhost:8080/mcp-server client-id: my-client-id secret-key: my-secret-key ``` #### 3. 编写服务端代码 服务端需要实现 ToolCallbackProvider 并将其注册到容器中。示例代码如下: ```java import org.springframework.ai.mcp.ToolCallbackProvider; import org.springframework.stereotype.Component; @Component public class MyToolCallbackProvider implements ToolCallbackProvider { @Override public String handleRequest(String requestPayload) { // 自定义逻辑处理接收到的数据 return "Response from tool callback provider"; } } ``` 同时,在控制器类中暴露 RESTful API 来接收来自客户端的请求: ```java import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/mcp-server") public class McpServerController { private final ToolCallbackProvider toolCallbackProvider; public McpServerController(ToolCallbackProvider toolCallbackProvider) { this.toolCallbackProvider = toolCallbackProvider; } @PostMapping("/process") public String process(@RequestBody String payload) { return toolCallbackProvider.handleRequest(payload); } } ``` #### 4. 编写客户端代码 客户端可以通过简单的 HTTP 请求与服务端交互。下面展示了一个基本的 Controller 示例: ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; @RestController @RequestMapping("/mcp-client") public class McpClientController { private final RestTemplate restTemplate; @Value("${spring.ai.mcp.server-url}") private String serverUrl; public McpClientController(RestTemplate restTemplate) { this.restTemplate = restTemplate; } @GetMapping("/send-request") public ResponseEntity<String> sendRequest() { String url = serverUrl + "/process"; String requestBody = "{\"key\":\"value\"}"; return restTemplate.postForEntity(url, requestBody, String.class); } } ``` --- ### 总结 Spring AI MCP 提供了一套完整的解决方案,帮助开发者快速搭建基于 MCP 协议的应用程序。无论是作为服务提供商还是消费者角色,都可以借助其强大的功能模块完成复杂的业务场景需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值