清溪镇网站建设公司青岛高端网站开发

张小明 2026/1/9 15:06:55
清溪镇网站建设公司,青岛高端网站开发,青海省教育厅门户网站官网,广州电商设计公司1. 简介 本文主要介绍基于 spring ai 自定义搭建 mcp 服务端和客户端#xff0c;主要场景是#xff1a; 基于本地的mcp服务让飞书机器人跟场景回答不同的问题 实现效果如下 最后附了源码链接.整体代码非常简单#xff0c;容易上手。 2.概念 2.1 什么是 AI MCP#xff…1. 简介本文主要介绍基于 spring ai 自定义搭建 mcp 服务端和客户端主要场景是基于本地的mcp服务让飞书机器人跟场景回答不同的问题实现效果如下最后附了源码链接.整体代码非常简单容易上手。2.概念2.1 什么是 AI MCPMCPModel Context Protocol是一种 ​标准化协议​用来解决一个长期痛点如何让 AI“安全、可控、标准化地”调用外部工具 / 系统能力它的核心目标不是“让 AI 更聪明”而是让AI 能调用真实系统同时避免 AI 乱编、乱连、乱访问并且工具接入方式统一2.2 MCP 解决了什么问题1️⃣ 传统 Function Call 的问题以 OpenAI Function Calling / Tool Calling 为例工具定义写死在 Prompt 或代码里每个 AI 框架一套接口权限 / 生命周期 / 连接管理全靠业务自己写工具多了以后极难维护 在真实系统里会变成Prompt 很长Tool 定义重复不同 AI 模型不可复用2️⃣ MCP 的解决思路MCP 把 ​工具变成一个标准化的 Server​AI Model | | MCP 协议 | MCP Client ────── MCP Server ├─ 查数据库 ├─ 调内部系统 ├─ 查文件 ├─ 调 HTTP APIAI ​不直接接触工具实现​只通过 MCP 协议发现工具调用工具获取结构化结果3. 工程结构主要分为2个模块mcp-server和mcp-client, mcp-client里面通过java -jar的形式运行 mcp 服务端在mcp-client最终结合 AI 以及飞书机器人的集成实现消息的回复.4. 相关源码介绍4.1 mcp 服务端服务端非常简单例如保留一个天气的服务只需要在方法上加入org.springframework.ai.tool.annotation.Tool;注解即可importio.kings1990.mcp.mcpserver.enums.WeatherType;importio.kings1990.mcp.mcpserver.record.WeatherRequest;importio.kings1990.mcp.mcpserver.record.WeatherResult;importlombok.extern.slf4j.Slf4j;importorg.springframework.ai.tool.annotation.Tool;importorg.springframework.ai.tool.annotation.ToolParam;importorg.springframework.stereotype.Service;ServiceSlf4jpublicclassWeatherService{Tool(namegetWeather,description查询指定城市的天气)publicWeatherResultgetWeather(ToolParam(description请求参数)WeatherRequestreq){log.info(MCP Tool getWeather called, city{},req.city());returnnewWeatherResult(req.city(),WeatherType.SUNNY,25°C,°C,mcp:getWeather);}}4.2 mcp客户端4.2.1让 AI 集成 ToolCallbacksConfigurationpublicclassAiConfig{BeanpublicChatClientchatClient(ChatClient.Builderbuilder,ListMcpSyncClientmcpSyncClients){returnbuilder.defaultSystem(你是一个AI助手必须调用工具 kings-spring-ai-mcp-tools 下的方法如果工具不可用就明确说明无法调用工具不要编造。).defaultToolCallbacks(SyncMcpToolCallbackProvider.builder().mcpClients(mcpSyncClients).build()).build();}}4.2.2基于飞书机器人的长链接集成实现消息的自动回复importcn.hutool.core.thread.ThreadUtil;importcom.lark.oapi.event.EventDispatcher;importcom.lark.oapi.service.im.ImService;importcom.lark.oapi.service.im.v1.model.P2MessageReceiveV1;importcom.lark.oapi.ws.Client;importjakarta.annotation.Resource;importorg.springframework.beans.factory.DisposableBean;importorg.springframework.boot.CommandLineRunner;importorg.springframework.stereotype.Component;ComponentpublicclassLarkWsListenerimplementsCommandLineRunner,DisposableBean{ResourceprivateLarkBotServicebotService;ResourceprivateClient.BuilderlarkWsBuilder;Overridepublicvoidrun(String...args){//verificationToken和 encryptionKey 可选用于验证和解密事件EventDispatcherhandlerEventDispatcher.newBuilder(,).onP2MessageReceiveV1(newImService.P2MessageReceiveV1Handler(){Overridepublicvoidhandle(P2MessageReceiveV1event)throwsException{// 1) messageId 用于 replyStringmessageIdevent.getEvent().getMessage().getMessageId();// 2) content 是 JSON 字符串需要解析出文本StringcontentJsonevent.getEvent().getMessage().getContent();System.err.println(收到消息: contentJson);StringuserTextLarkMsgParser.extractText(contentJson);ThreadUtil.execAsync(()-{botService.onUserMessage(messageId,userText);});}}).build();// 建议把 appId/appSecret 放配置文件ClientwsClientlarkWsBuilder.eventHandler(handler).build();wsClient.start();}Overridepublicvoiddestroy()throwsException{}}4.2.3 AI Api-Key 植入我这边使用 zhipu ai. 这边可以获取api-key.加入依赖dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-model-zhipuai/artifactId/dependency并且在配置中配置 api-keyspring: ai: zhipuai: api-key: your_api_key_here chat: options: model: glm-4.65.启动直接运行mcp-client主程序查看飞书机器人是否注册成功connected to wss://msg-frontier.feishu.cn/启动成功后在飞书应用里输入例如北京等待机器人回复6.源码github 仓库. 可以 star 查看后续更新Fast Request是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件可以根据已有的方法帮助您快速生成 url 和 params。Restful Fast Request API调试工具 API管理工具 API搜索工具。 它有一个漂亮的界面来完成请求、检查服务器响应、存储你的 api 请求和导出 api 请求。插件帮助你在 IDEA 界面内更快更高效得调试你的 API。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

数据展示网站网站开发用什么系统比较好

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个交互式Ubuntu中文输入法安装向导网页应用,包含:1) 系统检测模块 2) 可视化安装步骤 3) 实时问题诊断 4) 视频教程嵌入。要求界面友好,能…

张小明 2026/1/6 7:18:18 网站建设

普拓网站建设帮人注册网站_做app

💡实话实说:C有自己的项目库存,不需要找别人拿货再加价。摘要 随着航空业的快速发展,航班进出港管理系统的需求日益增长。传统的人工管理方式效率低下,容易出现信息错漏,无法满足现代航空运输的高效性和准确…

张小明 2026/1/7 8:05:14 网站建设

宣传片制作流程网络优化师是什么工作

BetterGI终极教程:如何用AI技术彻底解放你的原神游戏时间? 【免费下载链接】better-genshin-impact 🍨BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Te…

张小明 2026/1/9 9:51:03 网站建设

低价网站建设费用预算公司注册流程及条件

想要一次直播内容覆盖多个平台的观众吗?🎥 你可能会问,有没有什么推流工具能让我轻松实现这个目标?让我来告诉你,OBS多平台推流插件就是你一直在寻找的多平台直播解决方案!本指南将带你从零基础到精通&…

张小明 2026/1/9 8:07:00 网站建设

网站建设中网站需求分析的理解wordpress被植入广告

第一章:Java Serverless冷启动优化的核心挑战在Java Serverless架构中,冷启动问题显著影响函数的响应延迟,尤其在高并发或低频调用场景下尤为突出。由于JVM需要完成类加载、字节码验证、即时编译(JIT)等一系列初始化操…

张小明 2026/1/6 7:16:03 网站建设

网站开发经验与教训范文安阳网站建设设计

anything-llm能否支持MQTT?物联网消息协议集成设想 在智能制造车间的某个角落,一台老旧电机突然发出过热警报。现场工人还没来得及翻找纸质手册,他的移动终端已经弹出一条结构化建议:“E102错误码:请立即检查冷却风扇…

张小明 2026/1/9 11:41:55 网站建设