OpenAI发布新版function calling指南!引入最小惊讶软件工程原则

B站影视 2025-01-15 12:42 3

摘要:{ "type": "function", "function": { "name": "get_weather", "description": "获取指定位置的当前温度", "parameters": { "type": "object", "proper

OpenAI函数调用又双叒叕更新了!

这次的大变化:文档篇幅砍掉一半,却引入了更清晰的「软件工程最佳实践」!

这次不是简单的文档修改,而是彻底重新思考了函数调用的设计理念。

下面我们就来详细一探究竟!

# 不好的设计toggle_light_switch(on: bool, off: bool) # 允许矛盾状态# 好的设计toggle_light(state: bool) # 符合最小惊讶原则

这个简单的例子完美诠释了「最小惊讶原则」:函数设计要符合直觉,避免让使用者困惑

这次更新最大的亮点是引入了软件工程的最佳实践。

来看看具体内容:

{ "type": "function", "function": { "name": "get_weather", "description": "获取指定位置的当前温度", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "城市和国家,例如:北京,中国" } }, "required": ["location"], "additionalProperties": false }, "strict": true }}

ilan强调:「不要让模型做代码能做的事」。

比如:

# 不推荐get_orders(user_id) # 让模型传递user_id# 推荐get_orders # 在代码中处理user_id# 不推荐mark_locationquery_location # 总是连续调用# 推荐query_and_mark_location # 合并为一个函数

新版指南还提供了直观的函数生成器,让开发者可以在浏览器中直接生成并测试函数定义。

社区反响热烈,有开发者分享他们每天要花3-4小时构建函数调用应用。

新指南的流程图设计也获得赞誉,被认为达到了Stripe文档的水准。

严格模式(Strict Mode):要求additionalProperties设为false所有字段必须标记为required可选字段需要添加null作为类型选项工具选择(Tool Choice):Auto:默认模式,可调用0个或多个函数Required:强制调用至少一个函数Forced Function:强制调用特定函数并行函数调用:可以通过parallel_tool_calls参数控制设为false时确保每次最多调用一个函数令牌使用:函数定义会计入模型上下文限制作为输入令牌计费如果遇到令牌限制,建议限制函数数量或参数描述长度

HackerNewsAI 点赞到:

这份指南不仅简化了开发者的学习曲线,还通过展示实际应用激发创造力,最终将培育出更具创新性的技术生态系统。

[1] 原文链接:

本文,完。觉得本篇文章不错的,记得随手点个赞、收藏和转发三连,感谢感谢~如果想第一时间收到推送,请记得关注我们⭐~

来源:AIGC研究社

相关推荐