ModelEngine 的插件和应用还可以提供 MCP 服务!解锁更多玩法

上期我们介绍了在 ModelEngine 的应用编排中使用 MCP 服务来扩展大模型节点的能力,其实 ModelEngine 还有一项能力✨:将平台的插件或应用作为 MCP 工具服务被使用!这样组合下来就能解锁更多的玩法,接下来就让我手把手带你体验这个超实用的新功能吧~ 👇

上期文章快捷入口:

ModelEngine 是什么?

ModelEngine是华为开源的一站式AI开发与管理平台🌟,提供从数据准备到模型部署以及应用编排的全流程支持。平台主要包含三大核心模块:

  • 数据工程

  • 模型工程

  • 应用编排

想进一步了解,可以进入官网查看更多信息:https://modelengine-ai.net

插件提供 MCP 服务

ModelEngine 平台有自己的一套插件体系,可以将开发的插件上传到平台中运行。同时运行的插件也可以对外提供 MCP 工具服务,接下来我们通过一个示例来看下具体效果。

第一步:编写一个插件

首先,可以参照官网( https://modelengine-ai.net/#/docs )应用工程->插件->Java插件开发指导开发一个示例插件。这里我已经写好了一个时间插件来获取当前时间,插件包放在了这里( https://github.com/loveTsong/demo/releases/download/modelengine-time-plugin/time-plugin.zip ),可以直接拿来使用和体验。

第二步:上传和部署插件

1.进入平台的插件模块,上传自定义插件

图片

图片

2.上传完成后,进入平台的插件模块,部署该插件

图片

图片

3. 部署完成后插件上会显示为已部署状态(可以刷新页面确认状态),然后这个插件就可以作为 MCP 工具服务被使用了

至此,我们的插件已经在运行了。接下来,我们创建一个应用来测试下。

第三步:通过 MCP 方式调用该插件的服务

1. 在 ModelEngine 应用开发页面创建一个应用

图片

2. 先在对话界面测试一下,输入:"当前北京时间",此时是无法获取到当前时间的,大模型也可能会给出了一个错误的回答

图片

3. 然后进入工作流编排页面,在大模型节点配置如下 MCP 服务地址

{
     "modelEngine": {
        "url": "http://127.0.0.1:8004/sse"
     }
}

图片

4. 回到对话界面再测试一下,输入:"当前北京时间"。看!现在能正确返回时间信息啦~🎉

图片

当然,你也可以在 Cursor 等支持接入 MCP 服务的软件中接入并使用你开发的插件。

应用提供 MCP 服务

除了可以将平台管理的插件对外提供 MCP 工具服务外,在 ModelEngine 中编排生产的应用也可以作为 MCP 工具服务使用。接下来我们通过一个示例来看下如何使用。

第一步:创建一个天气助手应用

1. 为了方便演示,这里我们我们先创建一个天气助手的应用

图片

2. 创建后进入工作流编排修改提示词如下:

图片

这里为了方便演示,使用的提示词内容如下:

1. 模拟返回查询城市的天气信息

问题:{{query}}

3. 点击右上角的调试,输入问题"杭州天气",运行通过后点击发布

图片

4. 发布成功后,这个应用就可以作为 MCP 工具被调用了

第二步:通过 MCP 工具的方式调用该应用

你可以通过像上面测试插件的 MCP 服务一样,配置好大模型节点的 MCP 服务地址后,通过对话测试下。输入问题:杭州天气

图片

后续我们还会进一步细化 MCP 服务的粒度,方便对不同维度的 MCP 服务进行管理,敬请期待。

🎁 想体验?看这里!

1. 进入官网(https://modelengine-ai.net/#/download) 下载 Windows 最新版

2. 按照下载页面的指引完成安装

3. 安装成功后即可进入页面体验,立即开始你的 AI 开发之旅!

4. 更多精彩内容请查看官网文档(https://modelengine-ai.net/#/docs) 中的应用工程栏目

图片

我们诚挚邀请您:

  1. 加入开源社区! ModelEngine 是开源项目!欢迎开发者 Star 我们的仓库,共同参与建设,打造更强大的 AI 应用开发平台!

  2. 反馈宝贵意见: 您的建议是我们持续优化的动力!

在Spring AIMCPModel Context Protocol)实现中,客户端服务端通常被设计为独立的应用程序,以便于维护扩展。然而,从技术实现的角度来看,将MCP客户端服务端部署在同一应用服务中是完全可行的,只要确保它们的配置通信机制能够正确协调。 ### 配置与实现 在同一个Spring Boot应用中同时运行MCP客户端服务端需要进行以下配置实现步骤: 1. **依赖配置** 确保项目中包含MCP客户端服务端所需的依赖项。例如,在`pom.xml`中添加如下依赖: ```xml <!-- Spring AI MCP Server --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-mcp-server</artifactId> <version>1.0.0</version> </dependency> <!-- Spring AI MCP Client --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-mcp-client</artifactId> <version>1.0.0</version> </dependency> ``` 2. **服务端配置** 在`application.yml`中配置MCP服务端的基本参数,例如服务器名称、版本端口: ```yaml spring: ai: mcp: server: name: autho-info-server version: 1.0.0 port: 9090 ``` 3. **客户端配置** 同时,需要配置MCP客户端以连接本地服务端。例如: ```yaml spring: ai: mcp: client: url: http://localhost:9090 ``` 4. **服务端实现** 创建MCP服务端的控制器,用于处理客户端请求。例如: ```java @RestController public class MpcServerController { @GetMapping("/api/context") public String getContext() { return "This is the context data from the server."; } } ``` 5. **客户端实现** 在同一应用中注入MCP客户端并调用服务端接口。例如: ```java @Service public class MpcClientService { private final MpcClient mpcClient; public MpcClientService(MpcClient mpcClient) { this.mpcClient = mpcClient; } public void fetchContext() { String context = mpcClient.getContext("http://localhost:9090/api/context"); System.out.println("Received context: " + context); } } ``` 6. **启动类** 最后,在Spring Boot启动类中确保服务客户端能够正常运行: ```java @SpringBootApplication public class MpcApplication { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(MpcApplication.class, args); MpcClientService clientService = context.getBean(MpcClientService.class); clientService.fetchContext(); } } ``` ### 注意事项 - **端口冲突** 确保服务端的端口(如`9090`)未被其他服务占用,否则会导致启动失败。 - **上下文路径** 服务客户端的上下文路径需要正确配置,以避免通信失败。 - **性能与可维护性** 尽管可以将客户端服务端部署在同一应用中,但在生产环境中,建议将它们分离以提高可维护性性能。 ### 总结 通过合理的配置代码实现,Spring AI MCP的客户端服务端可以部署在同一应用服务中。这种方式适用于测试环境或小型项目,但在大型生产环境中,建议采用独立部署的方式以确保系统的稳定性扩展性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值