当前位置: 首页 > news >正文

远程MCP的调用和阿里云生态的知识库和工作流的使用

远程MCP调用

接下来我们通过远程的进行MCP的调用,以高德地图为例

我们首先需要百度地图的使用AK(控制台 | 百度地图开放平台)

准备工作先引入mcp-client的依赖,然后进行配置文件,注意我们然后要将MCP的配置到服务器里面。

spring.ai.mcp.client.request-timeout=20s
spring.ai.mcp.client.toolcallback.enabled=true
spring.ai.mcp.client.stdio.servers-configuration=classpath:mcp-servers.json5

之后我们为了使用node.js进行环境的配置,默认下载的有node.js的环境。我们需要把我们服务器配置的json文件写入我们的文件夹下面,方便我们进行调用。

"mcpServers": {"baidu-map": {"command": "cmd","args": ["/c", "npx", "-y", "@baidumap/mcp-server-baidu-map"],"env": {"BAIDU_MAP_API_KEY": "Yz2D7DNLfn0eMGh5GZD5viOJEwxvF9ZS"}}
}

当我们正确的配置json文件之后,我们就可以在控制台看到输出

注意这个时候我们就可以在我们的基本配置类也就是ChatClient的配置上面进行设置,如图示

配置工作做好之后我们就可以进行控制台的书写了,和正常使用大模型一样,我们可以使用他所带的库里面的工具

//大模型使用MCP调用百度地图进行对话窗口
@GetMapping("/mcp/chat")
public Flux<String> mcp(String message) {return deepseekChatClient.prompt(message).stream().content();
}

这样我们就可以正常的使用百度地图所带来的便利规划。

远程 MCP 调用的本质是 “跨空间的控制指令传输与执行反馈”,即本地终端(如 PC、PLC、手机 APP)通过网络(有线 / 无线)向远端的 MCP 模块(如嵌入式控制器、工业网关、IoT 设备)发送控制指令(如 “电机启动”“阀门开度调整”“参数配置”),并接收 MCP 执行后的状态反馈(如 “执行成功 / 失败”“当前温度 / 转速”)。

其核心要素包括 3 个部分:

  1. 调用发起端(客户端):负责生成控制指令、发起网络请求,需具备 “指令编码” 和 “反馈解析” 能力(如工业上位机、IoT 云平台、用户 APP)。
  2. 远程 MCP 端(服务端):部署控制逻辑的核心模块,需具备 “指令接收 - 解析 - 执行 - 反馈” 的闭环能力(如 STM32 嵌入式板、工业 PLC、智能传感器节点)。
  3. 传输网络:连接两端的通信载体,需满足 “低延迟、高可靠、低丢包”(工业场景常用以太网、485 总线;IoT 场景常用 WiFi、LoRa、NB-IoT;广域场景常用 4G/5G)。

阿里云生态

知识库的使用

我们之前学习过在本地设置RAG检索增强,现在我们可以将一部分不怎么重要的建议等上传到阿里云百炼平台,供我们进行调用。

除了这个之外,我们的依赖,约束,配置类等都是一样的,所以我们的实际控制层的代码改变的地方并不是很多,如下:

注意知识库的名字我们一定要一样,防止出现问题。注意有的问题是因为没有指定业务空间如下图所示,我们就可以正确的配置空间了。

工作流的使用

工作流的作用如下:

本质上就是将本地的程序取消了,全部都在阿里云的百炼平台上面进行书写

我们发布完成之后就可以进行配置编写了

spring.ai.dashscope.agent.options.app-id=c9932249945c4d9180c1afce3cced574

这是进行简单的应用id的配置为了导航到我们的阿里云大模型。

package ai.controller;
​
import com.alibaba.cloud.ai.dashscope.agent.DashScopeAgent;
import com.alibaba.cloud.ai.dashscope.agent.DashScopeAgentOptions;
import com.alibaba.cloud.ai.dashscope.api.DashScopeAgentApi;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
​
@RestController
public class TodayMenuController {// 获取dashscope的appId@Value("${spring.ai.dashscope.agent.options.app-id}")private String appId;
​//百炼云平台的智能体接口对象private DashScopeAgent dashScopeAgent;//构造函数public TodayMenuController(DashScopeAgentApi dashScopeAgentApi) {this.dashScopeAgent = new DashScopeAgent(dashScopeAgentApi);}@GetMapping("/todaymenu")public String getTodayMenu(@RequestParam(name = "message",defaultValue = "今天吃什么")String  message) {DashScopeAgentOptions options = DashScopeAgentOptions.builder().withAppId(appId).build();Prompt prompt = new Prompt(message, options);return dashScopeAgent.call(prompt).getResult().getOutput().getText();}
}

http://www.dtcms.com/a/469145.html

相关文章:

  • 前端与后端开发之间的不同
  • 做企业免费网站鄂尔多斯北京网站建设
  • 网站建设优化服务好么锦州做网站
  • 在线Excel新突破:SpreadJS如何完美驾驭中国式复杂报表
  • Excel如何排序?【图文详解】Excel表格排序?Excel自动排序?
  • 【Python办公】csv转Excel(可指定行数)
  • 个人网站用备案吗深圳办公室装修公司哪家好
  • Scala面试题及详细答案100道(71-80)-- 与Java的交互
  • 基于 PyQt5 实现刀具类型选择界面的设计与交互逻辑
  • 常用库函数
  • QUIC协议相比其他传输层协议(TCP,STCP,UDP)的优势
  • 【PC+安卓】塞尔达传说:王国之泪|v1.4.2整合版|官方中文|解压可玩 内附switch模拟器
  • 【自然语言处理】实现跨层跨句的上下文语义理解的解决办法
  • 保利威点播插件功能概览:一体化视频学习与内容管理能力
  • 第六节_PySide6基本窗口控件_单行文本框(QLineEdit)
  • wordpress如何应用sslseo关键字优化软件
  • flutter项目打包macOS桌面程序dmg
  • 【MCAL】AUTOSAR架构下TC3xx芯片I2C模块详解
  • Windows10部署yolov8
  • Git|GitHub SSH 连接配置与验证全流程(通用方法)
  • K230基础-录放音频
  • 炫酷风格的 ECharts + AWS 实时数据 Dashboard
  • wordpress菜单 链接怎样进行站点优化
  • 【H3C NX30Pro】光猫桥接并使用OpenWRT配置NAS端口映射;配置IPv6、IPv4公网直连内网服务器;
  • Parasoft C/C++test如何将静态分析集成到VSCode中
  • 沈阳网站建设公司哪个好网站模板打包
  • 树莓派+ubuntu的蓝牙
  • 【k8s】基础概念+下载安装教程
  • K8S原理刨析
  • 前端学习之样式设计