签署OpenAI函数调用指南
OpenAI发布全新函数调用指南,助开发者扩展模型能力!此指南整合了用户反馈,篇幅缩短50%,内容更清晰,并包含最佳实践、文档内函数生成以及使用天气API的完整示例。OpenAI致力于简化AI工具,使其更易于开发者使用,从而更有效地利用函数调用功能。
OpenAI发布全新函数调用指南!
我们根据您的反馈做出了重要改进:
– 篇幅缩短50%,更清晰易懂 – 新增最佳实践(详情见下文?) – 支持文档内函数生成! – 提供使用天气API的完整功能示例
查看指南并分享您的想法… pic.twitter.com/Id89E9PEff
— ilan bigio (@ilanbigio) January 13, 2025
目录
- OpenAI函数调用工作原理?
- 快速示例:天气API
- 步骤1:定义函数
- 步骤2:使用已定义函数调用模型
- 步骤3:执行函数
- 步骤4:向模型提供结果
- 步骤5:获取最终响应
- 函数调用的最佳实践
- 总结
OpenAI函数调用工作原理?
函数调用允许OpenAI模型与开发者定义的工具交互,使其能够执行超出文本或音频生成的更多任务。以下是简化的流程:
- 定义函数: 创建一个模型可以调用的函数(例如,get_weather)。
- 模型决定调用函数: 基于系统提示和用户输入,模型确定何时调用函数。
- 执行函数: 运行函数代码并返回结果。
- 整合结果: 模型使用函数的输出生成最终响应。
该图片展示了开发者和AI模型之间函数调用的流程。以下是分步说明:
- 工具定义 消息: 开发者定义工具(函数)并发送消息。在本例中,定义了get_weather(location)函数,用户询问:“巴黎的天气如何?”
- 工具调用: 模型识别需要使用参数“paris”调用get_weather函数。
- 执行函数代码: 开发者(或系统)执行实际的get_weather(“paris”)函数。函数返回响应,例如:{“temperature”: 14}。
- 结果: 函数的结果({“temperature”: 14})与所有先前消息一起返回给模型。
- 最终响应: 模型使用函数结果生成自然语言响应,例如:“巴黎目前的温度是14°C。”
另请阅读:支持函数调用的6大顶级LLM
快速示例:天气API
让我们来看一个使用get_weather函数的实际示例。此函数检索给定坐标的当前温度。
步骤1:定义函数
<code>import requests def get_weather(latitude, longitude): response = requests.get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m") data = response.json() return data['current']['temperature_2m']</code>
步骤2:使用已定义函数调用模型
<code>from openai import OpenAI import json client = OpenAI(api_key="sk-api_key”) tools = [{ "type": "function", "function": { "name": "get_weather", "description": "获取提供的坐标(摄氏度)的当前温度。", "parameters": { "type": "object", "properties": { "latitude": {"type": "number"}, "longitude": {"type": "number"} }, "required": ["latitude", "longitude"], "additionalProperties": False }, "strict": True } }] messages = [{"role": "user", "content": "今天巴黎的天气怎么样?"}] completion = client.chat.completions.create( model="gpt-4o", messages=messages, tools=tools, )</code>
步骤3:执行函数
<code>tool_call = completion.choices[0].message.tool_calls[0] args = json.loads(tool_call.function.arguments) result = get_weather(args["latitude"], args["longitude"])</code>
步骤4:向模型提供结果
<code># 附加模型的工具调用消息 messages.append(completion.choices[0].message) # 将结果消息作为字符串附加 messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": json.dumps({"temperature": result}) # 将结果转换为JSON字符串 }) # 创建第二个聊天完成 completion_2 = client.chat.completions.create( model="gpt-4o", messages=messages, tools=tools, )</code>
步骤5:获取最终响应
<code>print(completion_2.choices[0].message.content)</code>
输出:
<code>巴黎目前的温度是-2.8°C。</code>
函数调用的最佳实践
为了帮助您充分利用函数调用,以下是一些专业技巧:
-
编写清晰详细的描述
- 清晰地描述函数的目的、参数和输出。
- 使用系统提示指导模型何时(以及何时不)使用函数。
-
应用软件工程最佳实践
- 使函数直观易懂。
- 使用枚举和对象结构来防止无效状态。
-
减轻模型的负担
- 不要让模型填写您已知的参数。
- 合并总是按顺序调用的函数。
-
保持函数数量较少
- 为了提高准确性,一次最多使用少于20个函数。
-
利用OpenAI资源
- 使用Playground生成和迭代函数模式。
- 考虑针对复杂任务或大量函数进行微调。
了解更多信息,请访问OpenAI。
总结
OpenAI改进后的函数调用指南使开发者能够无缝集成自定义工具,使AI更易于访问和使用。通过简化流程、提供清晰的示例以及优先考虑用户反馈,OpenAI使开发者能够进行创新并构建利用AI全部潜力的解决方案,从而推动现实世界的应用和创造力。
以上是签署OpenAI函数调用指南的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

本文比较了诸如Chatgpt,Gemini和Claude之类的顶级AI聊天机器人,重点介绍了其独特功能,自定义选项以及自然语言处理和可靠性的性能。

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

本文评论了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高级AI语音生成器,重点介绍其功能,语音质量和满足不同需求的适用性。
