在云平台上创建爆火的AI MCP架构详细教程+全部代码(上)
本文将先容如安在亚马逊云科技上创建和使用Anthropic的AI MCP协议入门,包罗全部Python代码,欢迎各人关注我,了解更多国际前沿AI技术和方案。本篇文章会先容什么?
本教程基于Anthropic官方发布的MCP协议创建快速入门指南。在本篇文章中,我们将重点先容如何使Model Context Protocol(MCP)与亚马逊云科技Amazon BedrockAI模型托管平台系统集成。
然后我们将通过MCP搭建的工具集来解决一个实际业务问题:通过构建一个署理系统,总结博客文章,并查抄文章中包罗的所有链接是否可用,以便读者访问。
什么是Anthropic的Model Context Protocol(MCP)协议?
根据Anthropic官方文档的描述:MCP是Anthropic发布的一个开放标准协议,标准化了应用程序向AI大语言模型提供上下文的方式。我们可以把MCP想象成AI应用程序的USB-C接口。正如USB-C为电子装备毗连外设和配件提供了一种标准化方式,MCP就是提供了一种标准化的方式,将AI模型毗连到差别的数据源和外部调用工具。
假如各人想了解更多信息,可以检察Anthropic官方文档中的先容。从整体来看MCP实现了一个客户端/服务器架构,并支持双向通讯。其通讯协议可以通过两种传输机制提供服务:
[*] Stdio传输方式
[*]使用标准输入/输出举行通讯
[*]适用于本地进程
[*] HTTP + SSE长途传输方式
[*]服务器向客户端的消息使用Server-Sent Events(SSE)
[*]客户端向服务器的消息使用HTTP POST
所有传输方式都使用JSON-RPC 2.0协议举行消息交换。详细的Model Context Protocol消息格式详见协议规范。在本实行中我们将使用stdio传输方式,我们将在同一台服务器上托管MCP客户端和服务器。假如各人希望了解如何实现并摆设基于HTTP的MCP服务器,请在批评区告诉小李哥。我未来将使用Fargate,和Lambda来创建一个MCP应用!
为什么MCP是一个很棒的协议?
MCP的优势在于它让差别团队能够更轻松地协作开辟AI应用程序。雷同于微服务架构让差别系统模块可以独立工作,MCP为差别的系统功能提供了系统应用模块间的隔离。
[*]工具开辟者可以自由创建和更新AI应用的功能,而不会影响核心AI系统。
[*]AI团队可以专注于进步模型的能力,而不必要深入了解工具的详细实现。
组件之间的清晰接口意味着每个团队都可以按照本身的计划、遵循本身的开辟周期举行工作。更紧张的是,AI应用项目可以渐渐添加新功能,而无需举行系统级的大更改,使得AI系统可以随着时间推移不绝稳步迭代。这种模块化AI开辟方法雷同于现代软件架构中松耦合模式——可以带来更可维护、更具扩展性的系统。
别的对于SaaS服务提供商来说,MCP意味着他们可以专注于为本身的产物构立功能,而不必花费时间处理接口和重复性的基础集成工作。有了这个标准,他们可以轻松地将本身的AI接入他们的产物中,而不必要举行耗时的集成开辟。
最后从技术角度来看,MCP让各位开辟者们可以充实使用分布式架构的所有优点。这意味着:
[*]可以独立扩展和管理各个组件的生命周期
[*]可以对工具和模型举行A/B测试,以优化性能、降低本钱,并支持更机动的实行
[*]可以以更细粒度的方式分配资源,并迅速响应需求厘革,充实使用云计算的弹性
方案架构与步骤
以下是我们在本文中会搭建的架构和用户与大模型对话的详细流程。我们将向大模型输入后一个简朴的提示词请求:
“获取摸个$URL的博客文章择要”
如下图所示,我们会详细剖析这个AI应用的工作流程,以便各人理解。
MCP架构与数据流
对于人类来说,阅读网页并提供择要是一项简朴的任务,但大语言模型本身通常无法访问网页,也无法从其本身知识之外获取上下文。因此我们必要一个工具来完成这一任务。
https://i-blog.csdnimg.cn/direct/e77b2a462c484ff894701238bfc51a27.png
[*]用户输入提示,并将其发送给MCP服务器,同时提供可用工具的列表。
[*]MCP服务器将该请求通过Converse API发送到Amazon Bedrock。此时,Amazon Bedrock充当一个统一的接口,毗连多个模型。
[*]Bedrock上的AI模型根据用户提示词和工具清单,订定符合的响应计划。
[*]在本示例中,模型正确地选择了visit_webpage工具来下载提供的URL内容。Bedrock返回一个toolUse的消息复兴,内容包罗所选工具的名称、工具请求的输入,以及所使用工具的唯一toolUseId(可用于后续消息)。关于toolUse的语法和使用方式,请参考Bedrock Converse API官方文档。
[*]MCP客户端会将toolUse消息转发给MCP服务器。
[*]在本实行中,后续通讯会通过JSON-RPC协议在同一台服务器上举行。
[*]MCP服务器将toolUse请求分发给适当的工具执行外部API调用。
[*]visit_webpage工具被调用,并对提供的URL执行HTTP请求。
[*]工具会下载该URL的内容,并以Markdown格式返回网页内容。
[*]该内容随后被转发回MCP服务器。
https://i-blog.csdnimg.cn/direct/c9fb7797bdea484180ca5f1ee1f93f31.png
接下来,整个AI应用的控制权会返回给MCP客户端。以下是接下来的步骤:
[*]MCP客户端向Bedrock上的大模型对话汗青记录添加toolResult工具调用响应,并包罗第4步中提供的toolUseId,然后将其转发给Bedrock。关于toolResult的语法,请参考Bedrock Converse API文档。
[*]Bedrock会使用工具的执行效果来天生最终响应。
[*]该响应被发送回MCP客户端,MCP客户端会将最终响应发给用户。
[*]用户收到MCP客户端返回的最终响应,并可自由启动新的对话交互。
实行前提条件
在开始实行之前,各人必要完成以下前提条件:
[*]学习如何使用Python创建MCP服务器。在创建MCP服务器后,各人应该已经有了一个能够提供get_alerts和get_weather两个工具的MCP服务器。同时各人还必要安装uv(一个快速且安全的Python运行环境和代码包管理器)。
[*]确保各人已在环境中配置了亚马逊云科技api秘钥,以便boto3可以使用。
页:
[1]