OpenAI重磅:Function Calling 2.0!看完这一篇你就懂了!!

前言

前段时间OpenAI发布了全新的Function Calling指南,这次更新不仅让文档缩短了50%,还带来了一些重要的最佳实践。作为Agent的核心能力之一,Function Calling的正确使用对于构建强大的AI Agents应用至关重要。所以今天给家人们分享一下这次更新的重点内容!

Function Calling的两大核心应用

文中明确指出,Function Calling主要有两个核心应用场景:

  1. 获取数据(Fetching Data)
  • 检索最新信息并整合到模型响应中

  • 适用于搜索知识库和获取特定API数据(如天气数据)

  • 本质是一种RAG(检索增强生成)的实现方式

  1. 执行动作(Taking Action)
  • 提交表单、调用API

  • 修改应用状态(前端/后端)

  • 执行Agent工作流动作(如对话交接)

全新的最佳实践

这次更新最重要的是提供了一系列实用的最佳实践,让我们重点来看几个:

  1. 写清晰的函数定义
# 好的示例  
def get_weather(location: str):  
    """获取指定位置的当前温度  
    Args:  
        location: 城市和国家,例如:'北京, 中国'  
    """  
    pass  
  
# 糟糕的示例  
def toggle_light_switch(on: bool, off: bool):  
    """这个设计允许无效状态的存在"""  
    pass  

  1. 应用软件工程最佳实践
  • 让函数直观且符合最小惊讶原则(维基百科上叫:Principle of least astonishment, https://en.wikipedia.org/wiki/Principle_of_least_astonishment)

  • 使用枚举和对象结构,避免无效状态

  • 通过"实习生测试":如果一个实习生只看函数定义就能正确使用,说明设计的不错

  1. 尽可能减轻模型负担
# 不推荐  
def get_orders(user_id: str):  
    pass  
  
# 推荐  
def get_orders():  
    # 在代码中传递user_id  
    pass  

  1. 保持函数数量精简
  • 建议同时使用的函数不超过20个

  • 如果发现两个函数总是一起调用,考虑合并它们

重要的配置选项

  1. 工具选择模式(tool_choice)

# 自动模式(默认)  
tool_choice="auto"  # 可以调用零个、一个或多个函数  
  
# 强制模式  
tool_choice="required"  # 必须调用至少一个函数  
  
# 指定函数  
tool_choice={  
    "type": "function",   
    "function": {"name": "get_weather"}  
}  # 强制调用特定函数  

  1. 严格模式(Strict Mode)
{  
    "type": "function",  
    "function": {  
        "name": "get_weather",  
        "strict": True,  # 启用严格模式  
        "parameters": {  
            "type": "object",  
            "properties": {  
                "location": {  
                    "type": "string"  
                },  
                "units": {  
                    "type": ["string", "null"],  # 可选参数  
                    "enum": ["celsius", "fahrenheit"]  
                }  
            },  
            "required": ["location", "units"],  
            "additionalProperties": false  
        }  
    }  
}  

流式处理的支持

OpenAI还优化了流式处理的支持,让你能实时展示函数调用的过程:

stream = client.chat.completions.create(  
    model="gpt-4o",  
    messages=[{"role": "user", "content": "北京今天天气如何?"}],  
    tools=tools,  
    stream=True  
)  
  
for chunk in stream:  
    delta = chunk.choices[0].delta  
    print(delta.tool_calls)  # 实时显示函数调用进度  

最后

这次的更新,主要是提供了一些的最佳实践。随着o1-mini即将支持Function Calling(官方确认),昨天还开始发布了tasks的功能,可以期待在2025年看到真正的Agents

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值