02|特训套路:Function Calling 和 ReAct 如何让大模型更加智能?

你好,我是悦创。
不过经常使用 AI 的同学可能会发现,即便 DeepSeek 这样大模型里的佼佼者,也不是万能的。有很多内容其实它是回答不了的。特别是一些垂直领域的知识或实时性比较高的知识。比如我们想做一个天气问答助手,直接调用大模型是不行的:

这时我们就需要想办法让大模型具备与外界进行交互的能力。比如大模型要是能调用高德天气的 API 获取实时天气,就可以解决问题。基于此,行业龙头 OpenAI 为我们提供了解决方案,那就是 Function Calling 机制。该机制可以让大模型审时度势地调用由人类提供的外部工具,从而解决上述问题。
我在《AI 重塑云原生应用开发实战》课程的第一讲详细讲解过 Function Calling 机制,想了解的同学可以点击链接进行查看,由于那一门课程的编程语言是 Go,因此我也提供了一个 Python 的示例放到了我的 GitHub 上。
Function Calling 对于不熟悉 AI 的同学来说,可能还稍微陌生一些。但 Agent,也就是智能体这个词,大家绝对是耳熟能详的。其实呢,Agent 也是类似 Function Calling 一样,能让大模型和外部进行交互的一种思想,今天这节课,我们就来了解其本质。
什么是 Agent?
第一次看到这个词的同学,可能以为是类似 Nginx 的代理,但其实不是。 Agent 简单来说不是一个技术,而是一种 AI 设计模式,一种让大模型变得更聪明的套路。就像我们写传统代码时,会有很多设计模式一样,这些设计模式,就不算是技术,而是纯粹为了让代码写得更高效的套路。
在《雍正王朝》这部史诗级著作中,康熙帝经常会说,“你以为朕处置你,仅仅是因为你处事操切?”。啥叫处事操切?翻译成白话就是,你做事太着急了,为啥不多思考计划一下再行动,并且考虑如何把手下的人用起来呢?
大模型是根据人脑的原理设计的,因此也会犯处事操切的毛病。在 2023 年,曾经有一条封神的提示词,“请一步步的思考”,被无数人拿来炫技。这条提示词的专业名词叫“思维链(CoT)”,算是 Agent 思想的前身,这是因为当时人们还没想好大模型如何与外界实现交互。
后来一篇名叫《ReAct: Synergizing Reasoning and Acting in Language Models》论文的出现,开启了后续 Agent 思想的百家争鸣。
什么是 ReAct
ReAct 包含了 Reason 与 Act 两个部分。可以理解为就是思维链 + 外部工具调用。
ReAct 思想会让大模型把大问题拆分成小问题,一步步地解决,每一步都会尝试调用外部工具来解决问题,并且还会根据工具的反馈结果,思考工具调用是否出了问题。如果判断出问题了,大模型会尝试重新调用工具。这样经过一系列的工具调用后,最终完成目标。
那什么是工具调用出问题呢?可以这么理解,比如我问你 1+1 =?
,你告诉我 3。我会认为没问题。但如果我问你,你不理我,或者说,你问错人了,那我会尝试重新再问一遍。
ReAct 由于简单好理解,一条提示词就可以搞定,实际用起来效果还不错,因此在项目中很常用。当然除此之外,还有很多更复杂的 Agent 设计模式。我在《AI 重塑云原生应用开发实战》的第三讲挑重点讲过几种常见的,你如果感兴趣可以点击链接查看。
接下来,我们来到手写代码的环节。首先是环境准备。
环境准备
- 运行环境:Windows/Linux
- python 版本:3.11
- LLM:官方的 deepseek-chat \ 阿里云百炼平台提供的 deepseek-v3
- SDK:openai 1.63.2
DeepSeek-V3 模型,在官方提供的商业版本(https://platform.deepseek.com/)中叫做 deepseek-chat。但受制于算力不足的约束,官方版本的服务不大稳定,有时会出现无法调用或者崩溃的情况。因此可以在(阿里云百炼平台)也开一个账户,使用阿里云私有化部署的 DeepSeek-V3。
公众号:AI悦创【二维码】

AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Linux、Web、Sql」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh
