一、前言
一、前言
今天咱们聊聊编程里两个听起来有点复杂的概念——MCP协议和函数调用(function call),其实用大白话来讲,它们就是两种不同的“沟通方式”,就像咱们人与人之间交流也有不同的方式一样。下面我就用生活中的例子和Python代码,给大家好好讲讲它们的区别。
二、Function Call是啥 1、生活例子
咱先来说说Function Call。Function Call就好比你去餐厅点菜。你走进餐厅,跟服务员说“给我来一份红烧肉”,服务员听到你的话后,就去厨房把你的需求告诉厨师,厨师按照这个需求去做菜,做好了之后服务员再把菜端给你。在这个过程中,你点菜的这个动作就相当于一次Function Call,你是调用者,服务员是传递需求的媒介,厨师是实际执行任务的人。
2、Python代码例子 python def make_red_cooked_pork():
return "一份香喷喷的红烧肉"
调用函数
dish = make_red_cooked_pork()
print(dish)
在这段代码里,make_red_cooked_pork 就是那个“厨师”,它定义了如何做出红烧肉。而 dish = make_red_cooked_pork() 这行代码就是你“点菜”的动作,也就是一次Function Call。调用之后,函数会返回结果,最后把结果打印出来。
3、Function Call的特点
Function Call有个特点,就是它是同步的。啥意思呢?就是说你调用一个函数之后,程序会一直等着这个函数执行完,把结果返回给你,才会继续执行后面的代码。就像你在餐厅点菜后,得一直等着菜做好端上来,才能接着做别的事。
三、MCP协议又是啥 1、生活例子
MCP协议就像是你在网上购物。你在购物平台上下单买了一件衣服,下单之后,你不用一直等着衣服送到你手上才能去做别的事,你可以该干嘛干嘛,该上班上班,该追剧追剧。购物平台会在衣服准备好之后,安排快递给你发货,等快递到了你家附近,会给你发消息通知你取件。在这个过程中,你下单的动作就相当于通过MCP协议发送了一个请求,购物平台和快递就是处理这个请求的系统,它们会在合适的时间给你反馈结果。
2、Python代码例子 python import asyncio
async def prepare_clothes():
print("开始准备衣服...")
await asyncio.sleep(3) # 模拟准备衣服需要3秒
print("衣服准备好啦,开始发货...")
return "一件漂亮的衣服"
async def order_clothes():
task = asyncio.create_task(prepare_clothes())
print("下单成功,你可以去做别的事啦。")
result = await task
print("衣服到啦:", result)
运行异步函数
asyncio.run(order_clothes())
在这段代码里,prepare_clothes 函数就像是购物平台和快递,负责处理你买衣服的请求。order_clothes 函数里,asyncio.create_task(prepare_clothes()) 这行代码就相当于你下了单,程序不会等着 prepare_clothes 函数执行完,而是会继续执行后面的代码,打印出“下单成功,你可以去做别的事啦”。等 prepare_clothes 函数执行完后,再通过 await task 获取结果。
3、MCP协议的特点
MCP协议是异步的。也就是说,你发送一个请求之后,程序不会停下来等结果,而是会继续执行其他代码。等结果出来了,再回来处理这个结果。就像你网上下单后不用一直等着衣服到,还能去做其他事情。
四、MCP协议与Function Call的区别总结 1、同步与异步
Function Call是同步的,调用函数后程序会一直等待函数执行完返回结果,才继续执行后续代码;而MCP协议是异步的,发送请求后程序不会等待结果,会继续执行其他代码,等结果出来再处理。
2、执行方式
Function Call就像你在餐厅点菜,得等菜做好才能接着干别的;MCP协议就像网上购物,下单后可以去做其他事情,等东西到了再处理。
3、应用场景
Function Call适合那些需要立即得到结果,并且后续代码依赖这个结果的场景;MCP协议适合那些处理时间较长,不需要立即得到结果,并且不想让程序阻塞的场景,比如网络请求、文件读写等。
五、结尾
通过上面的生活例子和Python代码,相信大家对MCP协议和Function Call的区别有了更清晰的认识。其实编程里很多概念都能和生活中的事情联系起来,这样理解起来就会容易很多。希望大家都能在AI的道路上越走越顺!
好了本次就先介绍到这里吧 如果觉得对你有用的话 欢迎星标我啊
你们的点赞、在看、留言、分享是我持续更新的最大动力!(求求了)
EOF
本文作者: 久曲健的测试窝 本文链接: www.cnblogs.com/longronglan… 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
分类: AI大模型 推荐该文
粉丝 - 895 关注 - 19
+加关注 « 上一篇: 动手学大模型应用开发,第5天:大模型评估 » 下一篇: 动手学大模型应用开发,第6天:前后端搭建 登录后才能查看或发表评论,立即 登录 或者 逛逛 博客园首页 【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态! 【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae 【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手 【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员 【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
相关博文:
python接口自动化 之 Mock服务的使用 动手学大模型应用开发,第2天:调用大模型(下) MCP 与 Function Call 区别 比较LLM的function calling,Agent 和MCP 免费包白嫖最新DeepSeek-V3驱动的MCP与SemanticKernel实战教程 - 打造智能应用的终极指南 阅读排行: · 7 个最近很火的开源项目「GitHub 热点速览」 · DeepSeekV3:写代码很强了 · 记一次 .NET某固高运动卡测试 卡慢分析 · Visual Studio 2022 v17.13新版发布:强化稳定性和安全,助力 .NET 开发提 · C# LINQ 快速入门实战指南,建议收藏学习!
一文搞懂MCP协议与Function Call的区别
2025-03-23 09:0417881123464:41 ~ 7:49
AI大模型
MENU This blog has running : 1813 d 14 h 28 m 23 s ღゝ◡╹)ノ♡ 友情链接:申请坑位/申请坑位/申请坑位/申请坑位/申请坑位 所 以 愛 會 消 失 對 不 對 - 东东 / 东东 00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.