我们宣布更新,包括更易操控的 API 模型、函数调用功能、更长的上下文和更低的价格。
我们在今年早些时候发布gpt-3.5-turbo
,gpt-4
在短短几个月内,已经看到开发人员在这些模型之上构建了令人难以置信的应用程序。
今天,我们将跟进一些令人兴奋的更新:
- Chat Completions API 中的新函数调用功能
gpt-4
和的更新和更易于操纵的版本gpt-3.5-turbo
- 新的 16k 上下文版本
gpt-3.5-turbo
(与标准 4k 版本相比) - 我们最先进的嵌入模型的成本降低了 75%
- 输入令牌的成本降低 25%
gpt-3.5-turbo
gpt-3.5-turbo-0301
宣布和gpt-4-0314
模型的弃用时间表
所有这些模型都具有我们在 3 月 1 日推出的相同的数据隐私和安全保证——客户拥有根据他们的请求生成的所有输出,他们的 API 数据不会用于训练。
函数调用
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')
。
- 将自然语言转换为 API 调用或数据库查询
转换“谁是本月我的前十名客户?” 到内部 API 调用,例如get_customers_by_revenue(start_date: string, end_date: string, limit: int)
,或“Acme, Inc. 上个月下了多少订单?” 到一个 SQL 查询使用sql_query(query: string)
。
- 从文本中提取结构化数据
定义一个名为 的函数extract_people_data(people: [{name: string, birthday: string, location: string}])
,以提取维基百科文章中提到的所有人。
/v1/chat/completions
这些用例由我们端点中的新 API 参数启用,functions
并且function_call
允许开发人员通过 JSON 模式向模型描述函数,并可选择要求它调用特定函数。开始使用我们的开发人员文档,如果您发现可以改进函数调用的情况,请添加评估。
函数调用示例
波士顿现在的天气怎么样? | |
---|---|
步骤1·开放人工智能应用程序接口使用函数和用户输入调用模型 | |
Request | Response |
curl api.openai.com/v1/chat/com… -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"] } } ] }' | { "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" }] } |
第2步·第三方接口使用模型响应调用您的 API | |
Request | Response |
curl weatherapi.com/... | { "temperature": 22, "unit": "celsius", "description": "Sunny" } |
步骤 3·开放人工智能应用程序接口将响应发送回模型进行总结 | |
Request | Response |
curl api.openai.com/v1/chat/com… -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"] } } ] }' | { "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" }] } |
自 ChatGPT 插件的 alpha 版本发布以来,我们学到了很多关于如何让工具和语言模型安全地协同工作的知识。然而,仍然存在开放的研究问题。例如,概念验证利用说明了来自工具输出的不受信任的数据如何指示模型执行意外操作。我们正在努力减轻这些和其他风险。开发人员可以通过仅使用来自可信工具的信息并在执行具有现实世界影响的操作(例如发送电子邮件、在线发布或进行购买)之前包括用户确认步骤来保护他们的应用程序。
新机型
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-16kgpt-3.5-turbo
以两倍的价格提供 4 倍的上下文长度:每 1K 输入令牌 0.003 美元和每 1K 输出令牌 0.004 美元。16k 上下文意味着该模型现在可以在单个请求中支持约 20 页文本。
模型弃用
今天,我们将开始对我们在 3 月份宣布的gpt-4
和 的初始版本进行升级和弃用。使用稳定型号名称(、和)的应用程序将在 6 月 27 日自动升级到上面列出的新型号。为了比较版本之间的模型性能,我们的Evals 库支持公共和私有评估,以显示模型更改将如何影响您的用例。 gpt-3.5-turbogpt-3.5-turbogpt-4gpt-4-32k
需要更多时间过渡的开发人员可以通过在 API 请求的“模型”参数中指定gpt-3.5-turbo-0301
、gpt-4-0314
或 来继续使用旧模型。gpt-4-32k-0314
这些旧模型将在 9 月 13 日之前开放,之后指定这些模型名称的请求将失败。您可以通过我们的模型弃用页面了解模型弃用的最新信息。这是这些模型的第一次更新;因此,我们热切欢迎开发人员提供反馈,以帮助我们确保顺利过渡。
更低的价格
我们将继续提高我们的系统效率,并将节省下来的资金转嫁给开发人员,即日起生效。
嵌入
text-embedding-ada-002
是我们最受欢迎的嵌入模型。今天,我们将成本降低 75% 至每 1K 代币 0.0001 美元。
GPT-3.5 turbo
gpt-3.5-turbo
是我们最受欢迎的聊天模型,为数百万用户提供 ChatGPT 支持。今天,我们将 的输入代币成本降低了gpt-3.5-turbo
25%。开发人员现在可以以每 1K 输入令牌 0.0015 美元和每 1K 输出令牌 0.002 美元的价格使用该模型,这相当于每美元大约 700 页。
gpt-3.5-turbo-16k
定价为每 1K 输入代币 0.003 美元,每 1K 输出代币 0.004 美元。
开发者反馈是我们平台发展的基石,我们将继续根据我们听到的建议进行改进。我们很高兴看到开发人员如何在他们的应用程序中使用这些最新模型和新功能。