让DeepSeek无所不能?7分钟弄懂从函数调用到MCP,附代码实操!

大家在刚接触DeepSeek这类大模型的时候,可能会以为它是一个全知全能的工具,所以我们自然而然地可能就想问它一些关于生活的话题,比如"今天南京的天气如何"。

但我们知道,DeepSeek是用过去已知的知识训练完毕的大模型,它并不能及时获取或更新相关数据。当然,如果你勾选联网搜索,是有可能查询到最近的一些信息的。然而对于时效性很强的信息,它大概率不清楚,甚至DeepSeek可能会胡编乱造南京的天气情况------这种现象就是模型的幻觉。

那么,有没有什么方法能够获取到我们想要的信息呢?在MCP技术概念提出之前,大家通常采用本地的Function Call(函数式调用)方式实现这一目的。

具体流程是:服务提供商会先在本地搭载一个程序,其中编写天气查询的服务函数。当你向DeepSeek提问时,需要将这个本地函数一起注册给DeepSeek。

DeepSeek通过交流和你提供的已注册函数集合,会判断是否触发其中某些函数。如果发现你的问题恰好与某函数相关,就会触发对应函数并执行,获取结果。由于程序返回的结果可读性较差,DeepSeek会对其润色后再返回给我们。

我们可以用代码演示这个流程,我们可以使用之前介绍过的硅基流动的DeepSeek接口:包教包会!5分钟快速对接DeepSeek,完全免费!

首先定义相关函数,比如这里定义了一个get_current_weather函数,它会接收地点参数并返回对应天气(为简化演示,这里返回固定结果,实际可对接真实天气服务)。

python 复制代码
def get_current_weather(location: str, unit: str = "摄氏度"):    """获取指定地点的当前天气信息
    参数:        地点 (str): 城市名称,例如:"北京"        温度单位 (str): 温度单位,可选"摄氏度"或"华氏度"
    返回:        dict: 包含天气信息的字典    """    weather_data = {        "location": location,        "temperature": "25",        "unit": unit,        "forecast": "sunny",        "humidity": 65,    }    return weather_data

当用户提问"南京今天的天气如何"时,需要同时将函数说明(包含名称、描述、参数)注册到会话信息中。这样DeepSeek就能从提问中提取"南京"作为参数。

提交后,DeepSeek会返回触发的函数名称和参数,我们本地执行函数后将结果再提交给DeepSeek润色,最终得到可读性强的回复:"南京今天天气晴朗,温度25℃,湿度65%,较为舒适,适合外出。"这就是函数调用的具象化体现。

但这种方式存在一个问题:函数执行必须由本地完成。那么能否让远程服务商代为执行呢?这就是MCP技术的作用。

MCP全称Model Context Protocol(模型上下文协议),本质上是一个开放式协议。只要服务商按协议规则编写代码,就能形成各种MCP服务。配置服务列表后,DeepSeek在会话中就能自动调用对应服务(如查询天气、订火车票、查股票等)。如果MCP服务足够多,大模型几乎能帮我们完成任何事情。

MCP协议由Anthropic公司(开发Claude.ai的团队)于2023年提出,旨在通过标准化协议实现AI与外部服务的动态交互,突破传统函数调用的机械性。

GitHub上MCP官方列出的服务已覆盖数据库查询、代码调试、3D建模、企业ERP、智能家居等多个领域。

我们也可以根据官方文档在本地启动天气服务:配置环境后创建weather.py服务文件,用mcp.tool装饰器注册天气函数即可。启动服务后,在Claude Desktop的开发者模式中配置MCP服务,聊天界面会出现小锤子图标显示已注册的工具函数。

接着我们可以向他提问,询问某一个地点的天气。这个时候大模型会发现,我们的聊天可能触及到了某个MCP服务中的函数。

接着大模型就会调用对应的函数并且获取到对应的返回结果。跟我们刚才演示的函数式调用的代码逻辑相同,大模型也会将这个返回结果加以润色。

但由于这个天气预报的服务只能够查询美国的天气,所以呢,我在这里询问南京的天气如何,这里就无法调用对应的MCP的服务了。

MCP的概念最早起源于国外的公司,因此啊,这阵风还没有完全吹到国内来,所以目前更多的应用呢只能基于Claude Desktop进行执行。但是目前,众多开源技术社区已经加大了对MCP服务的支持,其中最活跃的GLAMA开源社区中已有361个MCP服务。相信在不远的将来,我们就可以在DeepSeek中使用到众多便捷的MCP服务工具。

相关推荐
码点滴4 小时前
什么时候用 DeepSeek V4,而不是 GPT-5/Claude/Gemini?
人工智能·gpt·架构·大模型·deepseek
katheta9 小时前
如何使用ccswitch管理不同API接口
api·claude·codex·deepseek·ccswitch
穷人小水滴15 小时前
(AI) 编写简单 AI 助手 (ds-agent)
aigc·agent·deepseek
OneThingAI1 天前
网心算力云上线 DeepSeek-V4-Pro
人工智能·aigc·deepseek·onethingai
wj3055853781 天前
Claude Code 接入 DeepSeek:环境变量、CC Switch 与模型选择总结
deepseek·claude code·cc switch
AC赳赳老秦2 天前
团队知识库搭建:用 OpenClaw 自动整理会议纪要、技术方案、故障复盘,同步到 Confluence / 语雀
开发语言·前端·python·github·visual studio·deepseek·openclaw
山顶夕景2 天前
【LLM】DeepSeek-V4模型架构和训练流程
agent·deepseek·推理优化·混合注意力
钟智强2 天前
DeepSeek-R1 V3.2 V4架构训练推理性能实测分析,企业私有化部署选型对照表
ai·架构·llm·deepseek
罗迪克3 天前
DeepSeek V4系列:Agent 的觉醒
deepseek