本文详细介绍了OpenAI的Function Calling功能它允许开发者向GPT-4和GPT-3.5-turbo模型描述函数模型会智能地选择输出一个包含调用这些函数参数的JSON对象。Function Calling解决了大模型在信息实时性、数据局限性和功能扩展性方面的问题通过调用外部工具和API提供更加时效和全面的服务。文章还深入解析了Function Calling的工作原理并通过实例对比了有无Function Calling时GPT模型的工作流程差异。此外本文还对比了不同厂商OpenAI、Anthropic、Google Gemini的Function Calling实现并探讨了其优缺点及可能的解决方案。对于想要利用大模型提升应用实用性和灵活性的开发者来说本文提供了宝贵的指导和参考。什么是Function Calling2023年6月13日 OpenAI 公布了 Function Calling函数调用 功能Function Call 允许开发者向 GPT-4 和 GPT-3.5-turbo 模型描述函数,模型会智能地选择输出一个包含调用这些函数参数的JSON对象。这是一种更可靠地将 GPT 的功能与外部工具和 API 相连接的新方法。GPT4 及 GPT-3.5-turbo 模型之所以能够使用函数 Function Calling 功能是因为这些模型经过训练不仅可以检测到何时需要调用函数根据用户的输入并且又可以回复符合函数参数的 JSON对象而不是直接返回常规的文本简而言之函数调用使开发者能够更可靠地从模型中获得结构化数据。解决大模型什么问题1、信息实时性大模型训练时使用的数据集往往有时间限制无法包含最新的信息如最新的新闻、实时股价等。通过Function Calling模型可以实时获取最新数据提供更加时效的服务。2、数据局限性模型的训练数据量庞大但有限无法覆盖所有可能的查询如医学、法律等领域的专业咨询。Function Calling允许模型调用外部数据库或API获取特定领域的详细信息。3、功能扩展性大模型虽然功能强大但不可能内置所有可能需要的功能。通过Function Calling可以轻松扩展模型能力如调用外部工具进行复杂计算、数据分析等。总的来说Function Calling功能的出现极大地提升了大型语言模型的实用性和灵活性使其能够更好地服务于用户的各种需求。Function Calling 工作原理我们通过举例分别对比有无Function Calling功能时GPT模型工作流程的差异当没有函数调用(funciton-call)时候我们调用GPT构建AI应用的模式非常简单。用户(client)发请求给我们的服务(chat server)我们的服务(chat server)给GPT提示词当有函数调用(funciton-call)时候我们调用GPT构建AI应用的模式比之前要复杂一些用户(client)发请求提示词以及可以调用的函数给我们的服务(chat server)GPT模型根据用户的提示词判断是用普通文本还是函数调用的格式响应我们的服务(chat server)如果是函数调用格式它会输出一个结构化的JSON请求其中包含了要调用的函数名和参数那么Chat Server就会执行这个函数并且将结果返回给GPT 然后模型使用提供的数据用连贯的文本响应。返回流程分四步一、预定义工具每次调用模型或每个会话都要把 tools 定义带进去tools [ { type: function, name: get_weather, description: Get weather by location, parameters: { type: object, properties: { location: { type: string } }, required: [ location ] } }, { type: function, name: get_stock_price, description: Get stock price by ticker, parameters: { type: object, properties: { ticker: { type: string } }, required: [ ticker ] } }]二、模型返回“工具调用指令”结构化 JSON{ tool_calls: [ {name:get_weather,arguments: {location:Beijing}}, {name:get_stock_price,arguments: {ticker:AAPL}} ]}三、我们自己后台程序做工具调用def get_weather(location): returnweather_api.query(location) def get_stock_price(ticker): returnmarket_api.query(ticker)四、拿到工具结果组装提示词最终调用模型生成回答tool_results [ {name:get_weather,content:...}, {name:get_stock_price,content:...} ]final llm_call(messages tool_results)可以看出并不是大模型调用了我们的工具还是我们自己的应用程序调用了工具Function Calling解决的问题就是单个模型怎么“按你定义的 JSON 协议”去调你自己的API的问题三大厂商的Function Calling实现对比不同厂商、不同版本的API可能有细微差异要为多个模型适配特性OpenAIAnthropicGoogle Gemini字段名toolstoolstools或tool_declaration工具定义嵌套在function里直接定义function_declarations参数定义parametersinput_schemaparameters模型输出tool_callstool_use(在block中)function_call参数获取tool_call.function.arguments(需json.loads)block.input(直接是dict)part.function_call.args工具选择tool_choice自动或指定自动返回格式JSON字符串字典对象Protobuf对象InternalError.Algo.InvalidParameter: The tool call is not supported这通常意味着我们尝试调用一个模型不支持的函数或工具。在大型语言模型的API调用中当我们使用函数调用Function Calling或工具调用Tool Calling时我们需要确保我们传递给模型的工具描述是符合模型要求的并且模型确实支持这种工具调用。缺点Function Calling是大模型LLM与外部代码间一种结构化的交互方式用于描述和调用Tool但这也有两个问题第一如果Tools工具过多数组过多这个也是要占用上下文长度的所以真实使用会做很多小处理第二Fuction Calling 使用好坏非常依赖于模型本身对意图识别的能力模型判断要不要调用一个函数主要是根据description参数来的再进一步发展 单个Agent调用单个工具没什么问题但如果工具很多Agent也很多的情况下就带来了问题维护工作量成倍增长例如 企业中有10个AI AgentN需要接入20个数据源/工具M如果每个应用都为每个工具编写专用适配代码就需要200个集成点。这里面维护成本是较高的任何工具API变更都会很烦。可能同时调用ChatGPT、Gemini还有DeepSeek而他们每个Tools调用接口都不一样这个维护起来就更麻烦了不过这个问题上一篇介绍了Spring AI的意义也就解决了这个问题。如何解决这些问题下回分解MCP计算机领域中的所有问题都可以通过增加一个中间层来解决无论后端是什么工具MCP提供统一接口大模型的知识又多又杂到底怎么学做这行久了被问最多的问题就一个大模型的知识又多又杂我到底先学啥翻了一堆资料看啥都像重点结果啥都没学进去。今天把我自己一路摸出来的顺序捋一遍零基础、应届生、转行的都适用。跟着走至少方向不乱、不瞎忙学完拿得出手。第一阶段10天初阶应用这一阶段就一个目标把大模型真正玩明白不是只会聊天那种而是能调教它、能用代码把大模型和业务接起来。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用这阶段正式进实战目标很实在做出两个能拿出手的东西——一个私有知识库一个 agent 对话机器人。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…走完这 30 天Python 或 JavaScript 背景的基本能独立做一套 RAG 应用简历上也敢写大模型应用开发了。第三阶段约20天动手微调学到这你已经开始 “造” 模型了 —— 通过微调搞出垂直领域的专用小模型。为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你从 “只会用” 变成 “能造” 的 AI 小子。那么你还想往下探索吗想要入局AI大模型赛道、抢占行业红利的朋友微信扫描下方CSDN官方认证二维码即可100%免费领取全套学习资料第四阶段20天商业闭环部署落地技术学完落地才算数。这阶段带你搞明白大模型怎么真正跑起来、用起来。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…想要入坑大模型的朋友给大家准备了一份2026 年最新 AI 大模型全套学习资料1、大模型系统化学习路线2、大模型学习视频教程3、大模型学习书籍电子文档4、AI大模型最新行业报告5、大模型项目实战配套源码6、2026大模型大厂面试真题7、为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。8、适合谁学传统后端 / Java / 前端开发想转型 AI 应用大学生、应届生想拿更好的 offer产品经理、运营想武装职业竞争力技术负责人想给团队落地提效学习是反人性的但回报是真金白银。技术会更新赛道会切换但只要你先动手机会就永远站在你这边。9、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。想要入局AI大模型赛道、抢占行业红利的朋友微信扫描下方CSDN官方认证二维码即可100%免费领取全套学习资料好了就写到这。路线是死的人是活的卡住了随时来问我。觉得有用就点个收藏别让它进收藏夹吃灰——动起来比啥都强。