ChatGPT官方API可以抢先体验了
创始人
2024-05-22 08:34:56
0

        ChatGPT官方API目前还在内测当中,OpenAI官网上也没有任何接口介绍和文档。这对于开发和调用来说不怎么方便。但是,比较好的地方在于内测过程中调用是免费的,没有次数限制。此外,API接口调用不需要梯子或代理(使用代理反而可能会报错“Error communicating with OpenAI”),只需要API Key就可以了,且当前API Key使用免费

        尽管ChatGPT 官方API还在内测而没有使用文档,但我们知道该模型应该也属于文本补全模型(completion),与GPT3模型保持一致。我们可以类比GPT3模型来猜测其调用方式,然后得出ChatGPT模型调用方式。

1 GPT3模型调用

        现有大多数ChatGPT API实际上是OpenAI GPT3模型接口,模型名称为“text-davinci-003”,调用费用为0.02美元/1000tokens,折合下来差不多0.1元400~500字。这个字数包括问题和返回结果字数。

GPT3模型调用方式如下,输入主要有7个参数:

  1. model:模型名称,text-davinci-003
  2. prompt:问题或待补全内容,例如“how are you”。
  3. temperature:控制结果随机性,0.0表示结果固定,随机性大可以设置为0.9。
  4. max_tokens:最大返回字数(包括问题和答案),通常汉字占两个token。假设设置成100,如果prompt问题中有40个汉字,那么返回结果中最多包括10个汉字。
  5. top_p:设置为1即可。
  6. frequency_penalty:设置为0即可。
  7. presence_penalty:设置为0即可。
import openai
openai.api_key = "你的API Key"
response = openai.Completion.create(model="text-davinci-003",prompt="how are you",temperature=0.7,max_tokens=256,top_p=1,frequency_penalty=0,presence_penalty=0
)
print(response)

        返回结果如下所示,结果在text字段中,可通过response["choices"][0]["text"]进行读取。

{"id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7","object": "text_completion","created": 1589478378,"model": "text-davinci-003","choices": [{"text": "\n\nThis is indeed a test","index": 0,"logprobs": null,"finish_reason": "length"}],"usage": {"prompt_tokens": 5,"completion_tokens": 7,"total_tokens": 12}
}

2 ChatGPT API调用方式

        ChatGPT API接口模型估计是2023年1月26日开始内测的,从它的模型名称就可以看出来。其调用方式如下所示,与GPT3模型调用基本一致,各个参数可参考上文介绍。下面各个参数目前是类比猜测出来的,没有conversation_id之类的。后续,如果新的参数更新,将在本文中及时进行更新,敬请关注

import openai
openai.api_key = "你的APIKey"
response = openai.Completion.create(model="请关注“乐乐感知学堂”公众号,公众号内输入“名称”即可获得模型名称。",prompt="请用100字中文介绍RdChat。",temperature=0,max_tokens=50,stream=False,#请注意查看下文说明。top_p=1,frequency_penalty=0,presence_penalty=0
)

ChatGPT API允许的最大token数量为4097,即max_tokens最大设置为4097减去prompt问题的token数量。

需要注意,上述输入参数增加stream,即是否采用控制流的方式输出

  1. 如果stream取值为False,那么返回结果与第1节GPT3接口一致,完全返回全部文字结果,可通过response["choices"][0]["text"]进行读取。但是,字数越多,等待返回时间越长,时间可参考控制流读出时的4字/每秒。
  2. 如果steam取值为True时,那么返回结果是一个Python generator,需要通过迭代获取结果,平均大约每秒钟4个字(33秒134字,39秒157字),读取程序如下所示。可以看到,读取结果的结束字段为“<|im_end|>”。
res = ''
for r in response:res += r["choices"][0]["text"]
res = res.replace('<|im_end|>', '')
print(res)

3 ChatGPT API接口效果

        下图为调用结果效果图。后续,如果新的参数更新,将在本文中及时进行更新,敬请关注。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...