搜索
首页科技周边人工智能签署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模型与开发者定义的工具交互,使其能够执行超出文本或音频生成的更多任务。以下是简化的流程:

  1. 定义函数: 创建一个模型可以调用的函数(例如,get_weather)。
  2. 模型决定调用函数: 基于系统提示和用户输入,模型确定何时调用函数。
  3. 执行函数: 运行函数代码并返回结果。
  4. 整合结果: 模型使用函数的输出生成最终响应。

Checkout the OpenAI Function Calling Guide

该图片展示了开发者和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}&current=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>

函数调用的最佳实践

为了帮助您充分利用函数调用,以下是一些专业技巧:

  1. 编写清晰详细的描述
    • 清晰地描述函数的目的、参数和输出。
    • 使用系统提示指导模型何时(以及何时不)使用函数。
  2. 应用软件工程最佳实践
    • 使函数直观易懂。
    • 使用枚举和对象结构来防止无效状态。
  3. 减轻模型的负担
    • 不要让模型填写您已知的参数。
    • 合并总是按顺序调用的函数。
  4. 保持函数数量较少
    • 为了提高准确性,一次最多使用少于20个函数。
  5. 利用OpenAI资源
    • 使用Playground生成和迭代函数模式。
    • 考虑针对复杂任务或大量函数进行微调。

了解更多信息,请访问OpenAI。

总结

OpenAI改进后的函数调用指南使开发者能够无缝集成自定义工具,使AI更易于访问和使用。通过简化流程、提供清晰的示例以及优先考虑用户反馈,OpenAI使开发者能够进行创新并构建利用AI全部潜力的解决方案,从而推动现实世界的应用和创造力。

以上是签署OpenAI函数调用指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何使用Huggingface Smollm建立个人AI助手如何使用Huggingface Smollm建立个人AI助手Apr 18, 2025 am 11:52 AM

利用“设备” AI的力量:建立个人聊天机器人CLI 在最近的过去,个人AI助手的概念似乎是科幻小说。 想象一下科技爱好者亚历克斯(Alex)梦见一个聪明的本地AI同伴 - 不依赖

通过斯坦福大学激动人心的新计划,精神健康的AI专心分析通过斯坦福大学激动人心的新计划,精神健康的AI专心分析Apr 18, 2025 am 11:49 AM

他们的首届AI4MH发射于2025年4月15日举行,著名的精神科医生兼神经科学家汤姆·因斯尔(Tom Insel)博士曾担任开幕式演讲者。 Insel博士因其在心理健康研究和技术方面的杰出工作而闻名

2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争2025年WNBA选秀课程进入联盟成长并与在线骚扰作斗争Apr 18, 2025 am 11:44 AM

恩格伯特说:“我们要确保WNBA仍然是每个人,球员,粉丝和公司合作伙伴,感到安全,重视和授权的空间。” anno

Python内置数据结构的综合指南 - 分析VidhyaPython内置数据结构的综合指南 - 分析VidhyaApr 18, 2025 am 11:43 AM

介绍 Python擅长使用编程语言,尤其是在数据科学和生成AI中。 在处理大型数据集时,有效的数据操作(存储,管理和访问)至关重要。 我们以前涵盖了数字和ST

与替代方案相比,Openai新型号的第一印象与替代方案相比,Openai新型号的第一印象Apr 18, 2025 am 11:41 AM

潜水之前,一个重要的警告:AI性能是非确定性的,并且特定于高度用法。简而言之,您的里程可能会有所不同。不要将此文章(或任何其他)文章作为最后一句话 - 目的是在您自己的情况下测试这些模型

AI投资组合|如何为AI职业建立投资组合?AI投资组合|如何为AI职业建立投资组合?Apr 18, 2025 am 11:40 AM

建立杰出的AI/ML投资组合:初学者和专业人士指南 创建引人注目的投资组合对于确保在人工智能(AI)和机器学习(ML)中的角色至关重要。 本指南为建立投资组合提供了建议

代理AI对安全操作可能意味着什么代理AI对安全操作可能意味着什么Apr 18, 2025 am 11:36 AM

结果?倦怠,效率低下以及检测和作用之间的差距扩大。这一切都不应该令任何从事网络安全工作的人感到震惊。 不过,代理AI的承诺已成为一个潜在的转折点。这个新课

Google与Openai:AI为学生打架Google与Openai:AI为学生打架Apr 18, 2025 am 11:31 AM

直接影响与长期伙伴关系? 两周前,Openai提出了强大的短期优惠,在2025年5月底之前授予美国和加拿大大学生免费访问Chatgpt Plus。此工具包括GPT-4O,A A A A A

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。