欢迎访问chatgpt中文教程网,学习chatgpt相关知识,以下是正文内容:
OpenAI近日发布了新版Function Calling指南,引入了“最小惊讶”等软件工程原则,旨在提升开发者体验和代码可维护性。新版指南强调函数调用的设计应遵循直观性和一致性,减少开发者在调用API时的困惑和错误。通过简化接口设计和明确功能边界,OpenAI希望帮助开发者更高效地构建应用,同时降低代码复杂性和潜在bug。这一更新也反映了OpenAI对开发者社区的持续支持,旨在推动AI工具在更多场景中的广泛应用。
OpenAI近期对其函数调用功能进行了重大更新,不仅在文档结构上进行了大幅精简,更引入了多项软件工程最佳实践,为开发者提供了更清晰、更高效的开发指导。
推荐使用GPT中文版,国内可直接访问:https://ai.gpt86.top
更新亮点概览
1、文档精简50%:新版文档去除了冗余内容,聚焦核心功能,使开发者能够更快速地找到所需信息。
2、引入最佳实践指南:新增的指南详细阐述了函数调用的设计原则和实现方法,帮助开发者避免常见错误。
3、集成函数生成器:开发者可以直接在文档中生成并测试函数定义,显著提升开发效率。
4、完整API示例:以天气API为例,从理论到实践,为开发者提供了完整的学习路径。
核心设计原则:最小惊讶原则
OpenAI开发者体验团队的Ilan Bigio分享了本次更新的核心理念——最小惊讶原则,这一原则强调函数设计应符合直觉,避免让使用者感到困惑。
不推荐的设计 toggle_light_switch(on: bool, off: bool) # 允许矛盾状态 推荐的设计 toggle_light(state: bool) # 符合最小惊讶原则
通过这种设计,函数的行为更加直观,减少了使用者的理解成本。
软件工程最佳实践
本次更新最大的亮点之一是引入了多项软件工程最佳实践,具体包括:
1、清晰的函数定义
新版指南要求函数定义必须清晰明确,避免歧义。
{ "type": "function", "function": { "name": "get_weather", "description": "获取指定位置的当前温度", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "城市和国家,北京,中国" } }, "required": ["location"], "additionalProperties": false }, "strict": true } }
2、减轻模型负担
Ilan强调:“不要让模型做代码能做的事”。
不推荐 get_orders(user_id) # 让模型传递user_id 推荐 get_orders() # 在代码中处理user_id
3、函数合并原则
对于总是连续调用的函数,建议将其合并为一个函数,以减少调用开销:
不推荐 mark_location() query_location() # 总是连续调用 推荐 query_and_mark_location() # 合并为一个函数
实战流程与开发者反馈
新版指南还提供了直观的函数生成器,开发者可以在浏览器中直接生成并测试函数定义,这一功能显著提升了开发效率,获得了开发者社区的高度评价。
社区反响热烈,有开发者表示,新指南的流程图设计达到了Stripe文档的水准,极大地简化了开发流程。
重要细节解析
1、严格模式(Strict Mode)
- 要求additionalProperties
设为false
- 所有字段必须标记为required
- 可选字段需要添加null
作为类型选项
2、工具选择(Tool Choice)
Auto:默认模式,可调用0个或多个函数
Required:强制调用至少一个函数
Forced Function:强制调用特定函数
3、并行函数调用
- 通过parallel_tool_calls
参数控制
- 设为false
时确保每次最多调用一个函数
4、令牌使用
- 函数定义会计入模型上下文限制
- 作为输入令牌计费
- 建议限制函数数量或参数描述长度以应对令牌限制
HackerNewsAI评价道:“这份指南不仅简化了开发者的学习曲线,还通过展示实际应用激发创造力,最终将培育出更具创新性的技术生态系统。”
OpenAI此次更新不仅提升了文档的可读性和实用性,更为开发者提供了更高效的开发工具和最佳实践,标志着函数调用功能的进一步成熟。
参考链接
[1] OpenAI官方文档: [https://platform.OpenAI.com/docs/guides/function-calling](https://platform.openai.com/docs/guides/function-calling)
网友评论