在人工智能浪潮席卷的今天,大模型的能力令人惊叹,但要让大模型真正 “动起来”,能帮我们处理实际事务,function call 是关键的一环。对于刚入门的小白来说,开发基于大模型 + function call 的 agent 应用,可能听起来有些复杂,但只要掌握了核心要点,就能快速上手。本文就为小白们详细拆解这一过程。
一、function call 是什么?
function call 即函数调用,是大模型与外部工具进行交互的桥梁。简单来说,当大模型接收到用户的问题或指令后,它会判断这个需求是否需要借助外部工具(比如数据库查询、API 调用、计算器等)来完成。如果需要,大模型就会按照特定的格式生成一段指令,告诉系统该调用哪个函数、传入什么参数,进而让外部工具执行相应操作,最后再将工具返回的结果整理成自然语言反馈给用户。
举个例子,当用户问 “明天上海的天气如何?” 时,大模型自身没有实时更新的天气数据,这时它就会通过 function call 调用天气查询 API,获取到数据后,再用通俗易懂的语言告诉用户明天的气温、是否有雨等信息。
二、为什么需要 function call?
大模型虽然拥有强大的语言理解和生成能力,但也存在明显的局限性。它的知识是有截止日期的,无法获取实时信息;对于复杂的数学计算、数据统计等任务,其准确性和效率也不够理想;而且它不能直接操作外部系统,比如控制设备、发送邮件等。
而 function call 正好能解决这些问题。通过 function call,agent 应用可以:
-
获取实时数据,如新闻资讯、股票行情、交通状况等;
-
完成复杂计算,如财务报表分析、科学公式运算等;
-
操作外部系统,如预订机票、发送消息、控制智能家居等。
可以说,function call 让大模型从一个 “只会说话的智者” 变成了一个 “能动手做事的助手”,极大地拓展了大模型的应用边界。
同时大模型本身的一些缺陷,例如:
1. 知识有时效性缺陷
比如你问 “2025 年 NBA 总冠军是谁?”(假设现在是 2025 年),模型如果没学过 2025 年的新数据,就答不上来。但用 Function Call 调用体育新闻 API,马上能拿到实时结果。
2. 不会做专业操作
模型懂医学知识,但不能直接帮你查医院排班;懂数学公式,但不会用 Excel 算工资表。而 Function Call 能喊医院系统、办公软件来干活,实现 “理论 + 实操” 结合。
三、怎么做一个基于 function call 的应用?
1)用户发起请求(用户→应用系统):用户通过自然语言向应用系统提出问题,例如“查询上海的天气”。
2)提示词编排(应用系统→大语言模型):应用系统把用户的问题转换成结构化提示词,调用大语言模型并请求其进行决策。
3)工具调用判断(大语言模型决策环节):
- 无需调用工具:大语言模型直接生成文本形式的回复,比如回答常识性问题。
- 需要调用工具:大语言模型输出所需工具的名称及相关参数,例如“天气API:{地点:‘上海’}”。
4)安全审批(应用系统→主机系统):若涉及工具调用,需经过权限验证和风险审核,审核通过后触发执行确认。
5)函数执行(主机系统):主机系统依据参数调用目标工具(如天气API),获取原始结果(如JSON格式数据)。
6-8)结果整合(逆向传递流程):
工具返回的结果依次经过主机系统→应用系统→大语言模型传递,大语言模型将这些数据转化为自然语言,例如“上海今天多云,气温28°C”。
9)最终响应(应用系统→用户):应用系统将大语言模型生成的易懂回复反馈给用户,整个流程至此结束。
四、小白开发中可能有的几个核心疑问
1、如何让大模型准确判断是否需要调用函数?
这需要通过精心设计提示词(Prompt)来引导大模型。在提示词中,要明确告诉大模型什么情况下需要调用函数,什么情况下可以直接回答,以及函数的功能和参数要求。可以通过多次测试和调整提示词,让大模型逐渐掌握判断的标准。
2、函数调用的格式不正确怎么办?
不同的大模型对 function call 的格式有不同要求,有的需要用特定的标签包裹,有的需要严格的 JSON 格式。小白在开发时,要仔细阅读大模型的官方文档,按照要求的格式设计函数调用指令。如果出现格式错误,检查是否遗漏了必填字段或符号,逐步调试即可。
3、调用外部工具失败该如何处理?
调用外部工具可能会因为网络问题、参数错误、工具本身故障等原因失败。这时候,应用需要有错误处理机制,比如当检测到调用失败时,让大模型重新生成调用指令,或者提示用户当前无法完成操作,稍后再试。
4、没有编程基础能开发这样的应用吗?
虽然有编程基础会更方便,但小白也可以借助一些低代码或无代码平台来开发。现在有不少平台集成了大模型和 function call 的功能,提供了可视化的操作界面,小白只需要按照指引配置相关参数、选择函数,就能快速搭建简单的 agent 应用。当然,要开发更复杂的应用,还是需要学习一些基础的编程知识。
5、 tools的样式是什么样的?怎么准备tools?
OpenAI协议中,tools目前通用格式如下:
tools = [
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "当你想知道现在的时间时非常有用。",
}
},
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "当你想查询指定城市的天气时非常有用。",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市或县区,比如北京市、杭州市、余杭区等。",
}
},
"required": ["location"]
}
}
}
]
tool_name = [tool["function"]["name"] for tool in tools]
print(f"创建了{len(tools)}个工具,为:{tool_name}\n")
其中,
-
type
字段固定为"function"
; -
function
字段为 Object 类型; -
name
字段为自定义的工具函数名称,建议使用与函数相同的名称,如get_current_weather
或get_current_time
; -
description
字段是对工具函数功能的描述,大模型会参考该字段来选择是否使用该工具函数。 -
parameters
字段是对工具函数入参的描述,类型是 Object ,大模型会参考该字段来进行入参的提取。如果工具函数不需要输入参数,则无需指定parameters
参数。 -
type
字段固定为"object"
; -
properties
字段描述了入参的名称、数据类型与描述,为 Object 类型,Key 值为入参的名称,Value 值为入参的数据类型与描述; -
required
字段指定哪些参数为必填项,为 Array 类型。
五、总结
开发基于大模型 + function call 的 agent 应用,核心在于理解大模型如何通过函数调用与外部世界交互。只要按照明确需求、选择模型、准备工具、设计流程、开发测试这几个步骤逐步推进,小白也能快速入门。在开发过程中,遇到问题不要怕,多查阅文档、多进行测试,就能不断提升应用的效果。希望本文能为小白们提供一个清晰的入门路径,让你在人工智能应用开发的道路上迈出坚实的一步。
六、如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。