OpenAI官方发布ChαtGΡΤ和Whisper的接囗,开发人员现在可以通过API使用最新的文本生成和语音转文本功能。OpenAI称:通过一系列系统级优化,自去年12月以来,ChαtGΡΤ的成本降低了90%;现在OpenAI用这些节省下来的成本造福广大开发者。开发人员现在通过API使用Whisper v2大模型,从而获得更快的速度和更经济成本。ChαtGΡΤ模型会不断得到升级改进,并提供专用容量来对模型进行更深入的控制。

在这里插入图片描述

文章目录

    • ChαtGΡΤ接囗
      • 模型
      • 接口
      • 最佳实践
    • Whisper接囗
      • transcribe
      • translate

ChαtGΡΤ接囗

模型

OpenAI发布的ChαtGΡΤ模型名称为gpt-3.5-turbo,它与ChαtGΡΤ产品中使用的模型相同。价格0.002美元/1000 token,比之前的text-davinci-003便宜10倍。gpt-3.5-turbo在聊天场景下表现经验,许多非聊天场景应用也可以表现优秀,开发者只需要极少调整就可以将模型由text-davinci-003切换到gpt-3.5-turbo。

在这里插入图片描述

OpenAI会不断改进 ChαtGΡΤ 模型,因此gpt-3.5-turbo模型会不断更新(4月会升级到最新稳定版本),OpenAI也推荐大家使用gpt-3.5-turbo模型。为了满足开发者对特定模型版本的需求,OpenAI还提供了特定快照版。目前提供的特定快照版为gpt-3.5-turbo-0301,该版本在接下来的三个月内不更新,有效期到2023年6月1日。

模型名称 描述 最大请求 训练数据
gpt-3.5-turbo 功能最强大的 GPT-3.5 模型,并针对聊天场景进行了专门优化,成本仅为 text-davinci-003 的 1/10。 会不断迭代更新。 4,096 tokens 截至2021年6月
gpt-3.5-turbo-0301 gpt-3.5-turbo的2023年3月1日快照版本。此模型在加下来3个月内不会更新,有效期截止2023年6月1日。 4,096 tokens 截至2019年10月

接口

由于gpt-3.5-turbo为聊天而场景设计,所以接口设计上发生了一点变化。在GPT-3接口中,问题是通过prompt字段传入的,gpt-3.5-turbo没有prompt字段,取而代之的是messages数组。下面是一个典型的接口调用例子:

import openai

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "你是一个聪明的助理"},
        {"role": "user", "content": "哪支球队赢得了2018世界杯?"},
        {"role": "assistant", "content": "法国国家男子足球队获得2018年俄罗斯世界杯。"},
        {"role": "user", "content": "决赛对手是谁?"}
    ]
)
print(completion

上面示例代码中,我们将多轮对话封装到messages数组中,每条消息都有role和content。role的可选值为system, user, assistant,content是消息内容。

通常,对话的格式首先是system消息,然后是交替的user消息和assistant消息。

system消息有助于设置模型的行为。在上面的例子中,模型被告知“你是一个聪明的助理”,模型就会扮演一个助理角色,输出的内容会尽可能像一个助理一样简洁清晰。

user消息有助于指导模型。它即可以是用户的问题(通常是最后一条),也可以是开发人员的指令设置或上下文提示。

assistant消息有助于存储上下文。它即可以是模型之前的输出,也可以由开发人员编写,用于给出所需行为的示例。

由于模型没有过去请求的记忆,所以必须通过对话提供所有相关信息。因此包含历史回话有助于模型更好理解问题。上面实例中,如果没有中间的user消息和assistant消息,单独问模型”决赛对手是谁?”模型是很难给出正确回答的。

gpt-3.5-turbo的返回数据格式也稍有变化。GPT-3接口的输出封装在text字段中,gpt-3.5-turbo的输出封装在message字段中,并且同样由role和content构成。我们可以简单地通过completion[‘choices’][0][‘message’][‘content’]获取输出。

最佳实践

由于gpt-3.5-turbo的表现与text-davinci-003类似,但价格是text-davinci-003的1/10,因此官方建议在大多数使用情况下使用gpt-3.5-turbo。

对于开发者来说,需要改动的地方很少,只需要将prompt改为messages格式即可。

"prompt": "哪支球队赢得了2018世界杯?

改为:

messages: [
    {"role": "system", "content": "你是一个聪明的助理"},
    {"role": "user", "content": "哪支球队赢得了2018世界杯?"}
]

或者更简单地改为:

messages: [
    {"role": "user", "content": "哪支球队赢得了2018世界杯?"}
]

⚠注意:gpt-3.5-turbo和gpt-3.5-turbo-0301不支持微调。

Whisper接囗

Whisper是OpenAI于2022年9月开源的语音转文本模型,推出后获得开发者社区的极大赞誉。现在我们可以通过API调用Whisper v2模型,价格为0.006美元/分钟。与其他服务相比,高度优化的服务堆可确保Whisper具有更快的性能。

在这里插入图片描述

Whisper API提供transcribe 和 translate接口,支持多种音频格式(m4a、mp3、mp4、mpeg、mpga、wav、webm)。

transcribe

import openai

audio_file= open("/path/to/file/audio.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file)

translate

import openai

audio_file= open("/path/to/file/audio.mp3", "rb")
transcript = openai.Audio.translate("whisper-1", audio_file)

Whisper目前支持南非荷兰语、阿拉伯语、亚美尼亚语、阿塞拜疆语、白俄罗斯语、波斯尼亚语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、冰岛语、印度尼西亚语、 意大利语、日语、卡纳达语、哈萨克语、韩语、拉脱维亚语、立陶宛语、马其顿语、马来语、马拉地语、毛利语、尼泊尔语、挪威语、波斯语、波兰语、葡萄牙语、罗马尼亚语、俄语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、斯瓦希里语、瑞典语、他加禄语、 泰米尔语、泰语、土耳其语、乌克兰语、乌尔都语、越南语和威尔士语。