2023年6月13日,OpenAI针对开发者调用的API做了重大更新,包括更易操控的 API模型、函数调用功能、更长的上下文和更低的价格。

在今年早些时候发布gpt-3.5-turbo,gpt-4在短短几个月内,已经看到开发人员在这些模型之上构建了令人难以置信的应用程序。

今天,我们将跟进一些令人兴奋的更新:

  • Chat Completions API 中的新函数调用功能
  • gpt-4和的更新和更易于操纵的版本gpt-3.5-turbo
  • 新的 16k 上下文版本gpt-3.5-turbo(与标准 4k 版本相比)
  • 我们最先进的嵌入模型的成本降低了 75%
  • 输入令牌的成本降低,gpt-3.5-turbo模型降低了25%
  • gpt-3.5-turbo-0301和gpt-4-0314模型宣布弃用时间表

所有这些模型都具有我们在 3 月 1 日推出的相同的数据隐私和安全保证——客户拥有根据他们的请求生成的所有输出,他们的 API 数据不会用于训练。

模型更新相关

GPT-4

  • 新增了gpt-4-0613模型,这个是一个带有函数调用的更新和改进模型。
  • gpt-4-32k-0613包括与 相同的改进gpt-4-0613,以及扩展的上下文长度,以便更好地理解更大的文本。
  • 通过这些更新,我们将在未来几周内邀请候补名单中的更多人试用 GPT-4,目的是使用此模型完全删除候补名单。感谢所有耐心等待的人,我们很高兴看到您使用 GPT-4 构建的内容!

GPT-3.5 Turbo

  • gpt-3.5-turbo-0613包括与 GPT-4 相同的函数调用以及通过系统消息更可靠的可操纵性,这两个功能允许开发人员更有效地指导模型的响应。
  • gpt-3.5-turbo-16k和gpt-3.5-turbo以两倍的价格提供4倍的上下文长度:每 1K 输入令牌 0.003 美元和每 1K 输出令牌 0.004 美元。16k 上下文意味着该模型现在可以在单个请求中支持约 20 页文本。

模型弃用

今天,我们将开始对我们在三月份宣布的gpt-4和gpt-3.5-turbo的初始版本进行升级和弃用。使用稳定模型名称(gpt-3.5-turbo、gpt-4和gpt-4-32k)的应用将在6月27日自动升级到上述新模型。为了比较版本之间的模型性能,我们的 Evals 库支持公开和私有评估,以显示模型变化对您的用例的影响。

需要更多时间进行过渡的开发者可以通过在API请求的 'model' 参数中指定gpt-3.5-turbo-0301、gpt-4-0314或gpt-4-32k-0314,继续使用旧模型。这些旧模型将一直可以使用到9月13日,之后指定这些模型名称的请求将会失败。您可以通过我们的模型弃用页面来跟踪模型弃用的最新信息。这是对这些模型的第一次更新,因此,我们非常欢迎开发者提供反馈,以帮助我们确保平稳过渡。

函数调用

gpt-4-0613跟gpt-3.5-turbo-0613模型支持函数调用,让模型智能地选择输出包含参数的 JSON 对象来调用这些函数。这是一种更可靠地将 GPT 功能与外部工具和 API 连接的新方法。

这些模型已经过微调,可以检测何时需要调用函数(取决于用户的输入)并使用符合函数签名的 JSON 进行响应。函数调用允许开发人员更可靠地从模型中获取结构化数据。例如,开发人员可以:

创建通过调用外部工具(例如 ChatGPT 插件)来回答问题的聊天机器人

  • 将诸如“给 Anya 发电子邮件,看看她下周五是否想喝咖啡”之类的查询转换为函数调用
send_email(to: string, body: string)
  • 例如:波士顿的天气怎么样?
get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')

从文本中提取结构化数据

定义一个名为 的函数extract_people_data(people: [{name: string, birthday: string, location: string}]),以提取维基百科文章中提到的所有人。

函数调用示例

调用OpenAI的API时,需要增加functions参数,这个参数是json格式字符串。

curl https://api.openai.com/v1/chat/completions -u :$OPENAI_API_KEY -H 'Content-Type: application/json' -d '{
"model": "gpt-3.5-turbo-0613",
"messages": [
{"role": "user", "content": "What is the weather like in Boston?"}
],
"functions": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'

OpenAI会返回一个Json字符串:

{
"id": "chatcmpl-123",
...
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"function_call": {
"name": "get_current_weather",
"arguments": "{ \"location\": \"Boston, MA\"}"
}
},
"finish_reason": "function_call"
}]
}

调用第三方接口,使用模型响应调用您的 API

curl https://weatherapi.com/...

响应:

{ "temperature": 22, "unit": "celsius", "description": "Sunny" }

将响应结果发送给OpenAI进行总结

这个时候我们看到messages中的数组元素变多了,增加了上下文,并且其中有role=function的对象,在content中带上了上一步api返回的结果。

curl https://api.openai.com/v1/chat/completions -u :$OPENAI_API_KEY -H 'Content-Type: application/json' -d '{
"model": "gpt-3.5-turbo-0613",
"messages": [
{"role": "user", "content": "What is the weather like in Boston?"},
{"role": "assistant", "content": null, "function_call": {"name": "get_current_weather", "arguments": "{ \"location\": \"Boston, MA\"}"}},
{"role": "function", "name": "get_current_weather", "content": "{\"temperature\": "22", \"unit\": \"celsius\", \"description\": \"Sunny\"}"}
],
"functions": [
{
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
]
}'

OpenAI将响应发送回模型进行总结,返回了一句完整的话:波士顿目前天气晴朗,气温为22摄氏度。

{
"id": "chatcmpl-123",
...
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "The weather in Boston is currently sunny with a temperature of 22 degrees Celsius.",
},
"finish_reason": "stop"
}]
}

函数调用相关开发文档:

函数如何调用

https://platform.openai.com/docs/guides/gpt/function-calling

了解如何在简单和高级用例中通过API使用函数调用

https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_with_chat_models.ipynb

函数调用总结

自 ChatGPT 插件的 alpha 版本发布以来,我们学到了很多关于如何让工具和语言模型安全地协同工作的知识。然而,仍然存在开放的研究问题。例如,概念验证利用说明了来自工具输出的不受信任的数据如何指示模型执行意外操作。我们正在努力减轻这些和其他风险。开发人员可以通过仅使用来自可信工具的信息并在执行具有现实世界影响的操作(例如发送电子邮件、在线发布或进行购买)之前包括用户确认步骤来保护他们的应用程序。

函数调用其实跟网页版的插件功能差不多,就是让api调用有更多的扩展性,但是目前感觉调用还是比较麻烦的,查询一个天气功能要请求三次。

更低的价格

我们将继续提高我们的系统效率,并将节省下来的资金转嫁给开发人员,即日起生效。

嵌入

text-embedding-ada-002是我们最受欢迎的嵌入模型。今天,我们将成本降低 75% 至每 1K 代币 0.0001 美元。

GPT-3.5 Turbo

  • gpt-3.5-turbo是我们最受欢迎的聊天模型,为数百万用户提供 ChatGPT 支持。今天,我们将 的输入代币成本降低了25%。开发人员现在可以以每1K输入令牌0.0015美元和每1K输出令牌0.002 美元的价格使用该模型,这相当于1美元大约700页。

  • gpt-3.5-turbo-16k定价为每1K输入代币0.003 美元,每 1K 输出代币 0.004 美元。

开发者反馈是我们平台发展的基石,我们将继续根据我们听到的建议进行改进。我们很高兴看到开发人员如何在他们的应用程序中使用这些最新模型和新功能。

总结

以上就是OpenAI 2023年6月13日发布的更新内容,大家也可以去看原文:

https://openai.com/blog/function-calling-and-other-api-updates?ref=upstract.com

公众号:楚少AI

ChatGPT手机版: https://ai004.com/

OpenAI发布ChatGPT函数调用和API更新的更多相关文章

  1. 实时Bug检测工具Bugsnag发布API更新

    原文地址: http://www.uml.org.cn/itnews/2013082609.asp 在应用开发过程中,开发者常常会碰到一个非常头疼的问题,就是应用崩溃.而Bugsnag可以很好地解决这 ...

  2. Entity Framework 6 Recipes 2nd Edition(9-1)译->用Web Api更新单独分离的实体

    第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程, ...

  3. win10 uwp 发布旁加载自动更新

    在很多企业使用的程序都是不能通过微软商店发布,原因很多,其中我之前的团队开发了很久的应用,结果发现没有用户能从微软应用商店下载所以我对应用商店没有好感.但是作为一个微软粉丝,怎么能不支持 UWP 开发 ...

  4. hi-nginx-1.4.2发布,多项重要更新

    支持多种编程语言混合开发web应用的通用服务器hi-nginx-1.4.2已经发布了. 此次发布包含多项重要更新: 支持python2和3,通过编译选项--with-http-hi-python-ve ...

  5. 织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面

    织梦DedeCMS信息发布员发布文章默认自动审核更新并生成HTML页面 一直以为DEDECMS的信息发布员在后台发布文章后,非要管理员审核才能显示,今天一哥们问我这个问题.问:“能不能直接发布,并自动 ...

  6. 尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性

    本文首发于<尝新体验ASP.NET Core 6预览版本中发布的最小Web API(minimal APIS)新特性> 概述 .NET开发者们大家好,我是Rector. 几天前(美国时间2 ...

  7. homebrew 无法从 API 更新错误问题

    今天中午吃饭前,想看看有没有更新,于是打开终端模拟器(我用的是 WezTerm),brew update,结果更新出了点问题 大致情况就是我不能从 API 更新,这个特性是从 homebrew 进入 ...

  8. 0基础搭建基于OpenAI的ChatGPT钉钉聊天机器人

    前言:以下文章来源于我去年写的个人公众号.最近chatgpt又开始流行,顺便把原文内容发到博客园上遛一遛. 注意事项和指引: 注册openai账号,需要有梯子进行访问,最好是欧美国家的IP,亚洲国家容 ...

  9. Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关

    在 Apache ShardingSphere 5.1.1 发布后,ShardingSphere 合并了来自全球的团队或个人的累计 1028 个 PR,为大家带来 5.1.2 新版本.该版本在功能.性 ...

  10. 【基于OpenAI的ChatGPT】搭建属于自己的微信聊天机器人(附带注册英国手机号码方式)

    前言:这几天 OpenAI的聊天机器人很火,前两天也爆发了很多关于ChatGPT接入微信的文章.我就顺便[借用别人已有的项目],来部署一个属于自己的微信聊天机器人.项目地址见下文. 1.首先需要有一个 ...

随机推荐

  1. vue在js公用文件中使用this

    main.js 中 let $vue = new Vue({ router, el: '#app', render: h => h(App) }); export default $vue 在j ...

  2. selenium验证码处理-打码平台操作

    1.进入打码平台(超人,斐斐) 斐斐-------官网: 超人-------官网: 2.选择对应的开发文档,下载对应的demo示例,并把demo的python脚本放到项目包管理地址去 参考: 超人的开 ...

  3. Android APP开机启动,安卓APP开发自启动,安卓启动后APP自动启动 Android让程序开机自动运行APP 全开源下载

    让APP在安卓系统启动自动运行可以带来以下几个好处:用户方便:当用户打开设备时,自动启动所需的APP可以让用户更方便地使用设备,不必手动打开APP.提高用户黏性:自动启动APP可以让用户更快地开始使用 ...

  4. 如何在Solidity中建立DAO(去中心化自治组织)?

    本文将帮助您理解 DAO 的概念,并帮助您构建一个基本的 DAO. 什么是 DAO? 您可以将 DAO 视为基于互联网的实体(比如企业),由其股东(拥有代币和比例投票权的成员)共同拥有和管理.在 DA ...

  5. AI开发实践:关于停车场中车辆识别与跟踪

    摘要:本案例我们使用FairMOT进行车辆检测与跟踪.yolov5进行车牌检测.crnn进行车牌识别,在停车场入口.出口.停车位对车辆进行跟踪与车牌识别,无论停车场路线多复杂,小车在你掌控之中! 本文 ...

  6. Visual Studio 2022 不支持 .NET Framework 4.5 项目的解决办法

    概述 升级到Visual Studio  2022后,打开速度快了很多,开发体验也舒服很多.只是使用过程中遇到了一个比较尴尬的问题:默认Visual Studio 2022 不再支持安装 .NET F ...

  7. pandas之iteration遍历

    遍历是众多编程语言中必备的一种操作,比如 Python 语言通过 for 循环来遍历列表结构.那么 Pandas 是如何遍历 Series 和 DataFrame 结构呢?我们应该明确,它们的数据结构 ...

  8. [Oracle]创建数据库表【待完善】

    1 前期准备 -- 参考文献 https://www.it1352.com/597381.html -- step1 创建用户<JOHNY>, 来创建对应的(默认)数据库模式(SCHEMA ...

  9. 【论文阅读笔记】Class-Incremental Learning with Strong Pre-trained Models

    Key_words: Continual learning, strong pretrained model, fix, fusion Create_time: April 14, 2022 6:32 ...

  10. django渲染模版时比实际少了8小时?

    这是因为django的时间是UTC时间. 我们通过改配置文件将其改成本地时间 修改配置文件 # 将时间从UTC转化成当前时间 TIME_ZONE = 'Asia/Shanghai' # USE_TZ ...