本文会简单介绍一下ChatGPT、GPT和ChatGPT Plus,以及如何访问ChatGPT、注册ChatGPT以及升级为ChatGPT Plus,最后会介绍ChatGPT的另一种访问方式:OpenAI API,这种访问方式将让任何应用拥有ChatGPT的能力。通过对本文的学习,读者可以完全驾驭ChatGPT。
1. ChatGPT和GPT的区别
ChatGPT 是由 OpenAI 开发的一款大型语言生成模型,基于 OpenAI 的 GPT(Generative Pre-trained Transformer)架构。GPT 是一种深度学习模型,利用 Transformer 结构来生成和理解人类语言。GPT 是一种预训练生成型转换器模型,主要用于自然语言处理(NLP)任务,包括文本生成、机器翻译、问答系统、图像处理、编写代码、数学计算、逻辑处理等。
ChatGPT 与 GPT 的区别如下:
(1) ChatGPT 是专门为会话任务设计的,而 GPT 是一个更通用的模型,可用于广泛的语言相关任务。
(2) ChatGPT 是基于 GPT 的基础模型框架(如 GPT-3.5 或 GPT-4),但在训练过程中使用了真实的对话数据和人类反馈的强化学习。
(3) 与 GPT 相比,ChatGPT 可能接受的数据量较少,这可能会对其生成多样化和细微差别响应的能力产生一定影响。
需要注意的是,ChatGPT 在训练过程中会专注于对话任务,但其实际应用仍可以涵其他领域,例如文本摘要、翻译、图像处理等。此外,具体使用的 GPT 版本可能会根据实际情况而有所不同。
2. ChatGPT和ChatGPT Plus的区别
平常说的注册ChatGPT账户,然后就可以使用的ChatGPT,其实是GPT-3.5,这也是ChatGPT的免费账户,任何人,只需要注册ChatGPT账户,就可以不限时间,不限使用量地使用ChatGPT。不过免费版ChatGPT在高峰时期可能不太稳定,有时回复会比较慢,而且无法使用GPT-4(目前最强大的预训练模型),为了获得更好的体验,只能将免费账户升级为收费账户,也就是ChatGPT Plus,每个月需要支付20美金,可以取消订阅,也可以恢复订阅。
ChatGPT与ChatGPT Plus的主要区别如下:
(1) ChatGPT Plus的响应速度要比ChatGPT快,OpenAI的计算资源会优先满足ChatGPT Plus付费用户。
(2) ChatGPT只能使用GPT-3.5,而ChatGPT Plus的用户可以选择使用GPT-3.5或GPT-4,不过由于最近OpenAI的计算资源紧张以及GPT-4会消耗大量的资源(估计是在忙自己的GPT-5,所以导致计算资源异常紧张),所以对GPT-4的消息数量做了限制,目前是每3小时可以发25条消息,如果超过了25条消息,那么就要等3小时以后再发送消息了。所以目前每天最多可以用GPT-4发送200条消息。
(3) ChatGPT Plus可以使用OpenAI以及第三方开发者提供了大量插件(目前应该有几百个),通过这些插件,可以让ChatGPT Plus更强大。用户也可以自己开发插件,并上传到Plugin Store。
(4) 开通ChatGPT Plus后,可以直接在ChatGPT API中使用GPT-4等模型,让生成的内容更精准。
(5) ChatGPT Plus更适合企业级应用、专业人士和教育领域等场景。
3. 访问ChatGPT官网
OpenAI的官网是https://openai.com,ChatGPT聊天页面的网址是https://chat.openai.com,前者国内访问没什么问题,后者在国内无法直接访问,需要用美国或其他欧美国家的IP才可以访问,推荐使用美国IP,因此需要科学上网,至于方法吗,这里不便说,你懂的!这一步大家可以自助解决。
4. 注册ChatGPT账号
这一步相当重要,是一切的开始,具体注册步骤如下:
(1)创建账号
第一次打开网站https://chat.openai.com,会显示如下图所示的页面。
这一步需要通过Email创建ChatGPT账号,推荐使用Gmail。
(2)输入个人信息
创建账户后,点击Continue按钮,会显示如下图所示的页面,要求输入姓名和生日。
(3)验证电话号
点击Continue按钮,进入如下图所示的页面。在该页面输入一个接收验证码的手机号,输入完,点击Send code按钮进入下一个页面。
划重点,这一步相当关键,因为国内和香港的手机号不好使,所以需要国外的手机号,美国、欧洲等地的手机号都没问题,为了保证可以接收到验证码,推荐使用美国手机号。不过问题是,如何获取美国手机号呢?这里有一个比较廉价的方式,就是使用虚拟电话卡(没有实体电话卡,只有手机号,可以多次使用,通常不能发短信,但可以无限次接收短信),
该网站支持中文页面。
首先要注册账号,然后登录。首先要说明,使用虚拟电话卡,没接收一次短信,都是要收费的,但不贵,根据选择的国家不同,收费也不一样,美国是最贵的,但几乎可以100%收到短信。如果嫌贵,可以选择东南亚的小国,但不能保证每次都能收到短信,如果收不到短信,不会收费。
另外,这个网站付费支持国内的支付宝,所以大家不用担心无法支付费用。
就拿美国来说,每接收一次短信,大概收费8元人民币左右(这是虚拟电话卡,如果购买物理电话卡,更贵,但一般不会超过10元人民币),其他国家的费用都不会超过这个金额。注意,这里的费用是指每接收一次短信的收费,购买物理或虚拟电话卡还需要支付一定的费用,但比较便宜(通常1到3元人民币),所以每接收一次短信的费用一般不会超过8元人民币(1美元左右)。
在选择国家之前,先要充值,点击页面右上角的+按钮,会进入充值页面,选择后面的支付宝即可,至少要充值2美元。
充完值后,在页面左侧的“服务选择”下方输入OpenAI,下面就会出现OpenAI列表项,如下图所示。
点击OpenAI列表项,会看到如下图所示的每个国家购买和接收短信的费用,P是俄罗斯的货币单位:卢布。如果你的账户余额足够,可以点击一个比较便宜的国家。然后就可以发送验证码了。
注意,在注册ChatGPT账户的过程中,选择接收短信手机号的国家要与虚拟电话卡对应的国家一直,如选择印度尼西亚,就都要选择印度尼西亚,否则无法接收到验证码。
上面一切工作都搞定后,就可以成功接收到验证码,并成功注册ChatGPT账号。
下面是虚拟电话卡的一些服务规则:
这项服务适用于需要通过接听电话和输入来电号码的最后几位数字进行验证的情况。您不需要亲自接听电话,数字将显示在“激活”页面上。号码有效时间为5分钟。如果超过这段时间,即使没有收到电话,激活也将被视为完成。如果在激活过程中出现问题,请在5分钟内及时取消号码购买。购买该服务后,您还可以在20分钟内无限制地接收发送到已购买号码的短信。验证服务的费用适用于所有服务,并具有统一优惠价格。
您只能获得一个号码。如果您接收到了来电并得到了确认数字,将无法退款。
5. 升级为ChatGPT Plus账号
升级为ChatGPT Plus账户的步骤如下:
(1)显示plan页面
在ChatGPT页面左下角有一个Upgrade to Plus,如下图所示,点击Upgrade to Plus会进入plan。
(2) 进入ChatGPT Plus订购页面
通过上一步会显示如下图所示的plan页面。
点击plan页面的Upgrade plan按钮,会进入如下图所示的订购页面。
输入信用卡信息后,点击“订阅”按钮,如果信用卡信息是正确的,那么就会成功订阅ChatGPT Plus服务。成功订阅ChatGPT Plus服务后的页面如下图所示。
划重点,这一步的关键是信用卡,国内的信用卡不行,visa卡,开通国际消费能力也不行,需要美国信用卡,这里使用了美国的visa卡。并不需要申请实体卡,只要一张虚拟信用卡即可,可以进行国外消费。
这里对接这是一个正规的虚拟信用卡申请网站,总部在英国,支持多个国家货币结算(包括美元,欧元等)。支持中文界面和中文客服,下面是nobepay的主页面,至于如何申请虚拟信用卡,这里就不介绍详细的步骤了,nobepay网站上有详细的说明,还不明白,可以直接联系客服小姐姐。总之,只要选择最新的美国visa或万事达卡段,大多数情况下是可以支付ChatGPT Plus账户费用的,如果不行就再申请一张其他卡段的虚拟信用卡。另外,nobepay也支持支付宝付款。
(3)取消订阅
在ChatGPT Plus的订购页面右侧有一个“取消方案”按钮,如果想取消订阅,点击该按钮即可,如果成功取消订阅,在当前续费周期结束之前,仍然可以继续使用ChatGPT Plus。只是下一个续费周期将不会再从信用卡扣钱了,并降级为ChatGPT免费用户。
(4)恢复订阅
取消订阅后,“取消方案”按钮就变成了“更新方案”,点击该按钮,就会进入如下图所示的续订方案页面,点击“续订方案”按钮,就会恢复订阅。但要注意,恢复订阅后,开始时间并不是从恢复订阅的那天算的,而是按订阅周期算的。例如,ChatGPT Plus账号的某一个使用续费周期是2023-6-24到2023-7-23,如果在2023-7-23取消订阅,在2023-8-20恢复订阅,那么你的ChatGPT Plus账户使用时间是2023-7-24到2023-8-23日。而不是2023-8-20到2023-9-19,所以在2023-8-20恢复订阅,只有4天的使用时间(需要支付20美元),尽管在2023-7-24到2023-8-20期间未订阅ChatGPT Plus服务,但仍然算在续费周期里。这样做估计是为了防止用户频繁取消和续订。所以恢复订阅的最佳时间是在上一个续费周期结束后的第1天,也就是每个月的24日。
成功升级ChatGPT Plus账户后,在ChatGPT聊天页面上方会出现如下图所示的选项,用户可以选择GPT-3.5或GPT-4。不过目前GPT-4限制了每3小时只能发送25条消息,所以如果像大量发消息,可以使用GPT-3.5,ChatGPT Plus中的GPT-3.5要比免费版ChatGPT中的GPT-3.5的响应速度快得多。
6. OpenAI API
ChatGPT除了可以直接在聊天界面提问,还可以通过OpenAI API使用ChatGPT,只不过OpenAI API是按使用量收费的。根据使用的不同模型,收费也不同。读者可以从https://openai.com/pricing页面获取具体的收费规则。
OpenAI API里面的使用量就是指tokens[1]的消耗量,包括输入token消耗量和输出token消耗量。前者是指向ChatGPT提的问题消耗的token数,后者是指ChatGPT的回复消耗的token数。如果选择了gpt-3.5-turbo模型,1000个输入tokens需要0.0015美元,1000个输出tokens需要0.002美元。如果选择了GPT-4模型,那么要贵得多(因为消耗的计算资源更大),1000个输入tokens需要0.03美元,1000个输出tokens需要0.06美元。GPT-4较gpt-3.5-turbo,输入tokens贵了20倍,输出tokens贵了30倍。所以选择模型要谨慎,否则你充的钱很快就会被耗光。
在注册ChatGPT账户后,你的账户上会有5美元余额,作为测试OpenAI API的费用,不过这5美元不是永久的,有效期大概4个月左右,不用就作废了。如果想长久使用OpenAI API,可以进入下面的页面(需要先登录OpenAI官网)。
https://platform.openai.com/account/billing/overview
然后点击Set uppaid account按钮,会弹出如下图所示的页面,输入信用卡信息,绑定即可。如果成功绑定信用卡,使用OpenAI API时,在每个自然月结束后,会自动从信用卡中扣除OpenAI API消耗的费用。
使用ChatGPT API之前,要先获得API Key。API Key是一个以sk为前缀的字符串。读者可以到下面的页面去申请API Key,当然,首先要有一个ChatGPT账户。
https://platform.openai.com/account/api-keys
进入API Key申请页面后,点击Create new secret key按钮,可以申请任意多个API Key,如下图所示。
申请完API Key后,用API Key设置openai.api_key。API Key不要泄露给别人,否则任何人都可以使用自己的API Key。另外,使用ChatGPT API是需要花钱的,费用在前面已经介绍了,所以别人得到了你的API Key,就相当于使用你自己的钱。当然,万一泄露了API Key也不要紧,只需要删除旧的API Key,创建新的API Key即可,这样旧的API Key就作废了。
如果读者要利用ChatGPTAPI开发应用,推荐自己做一个服务端程序,再将ChatGPT API包装一层,将API Key放到服务端,这样别人就很难拿到你的API Key了。
OpenAI API可以使用多种语言开发,并为这些语言提供了相应的库。如Python、Java、JavaScript、Go、C++、Rust等。有的库是OpenAI官方提供的,有的库是第三方开发的。本节会使用Python语言演示如何使用OpenAI API提问并接收和输出回复。
调用OpenAI API需要使用openai模块,可以使用下面的命令安装该模块。
pip3 install openai
然后使用下面的代码向ChatGPT发送问题,并接收、输出回复以及消耗的token数。
import openaiopenai.api_key = "这里应该填写API Key"# 向ChatGPT发送请求response =openai.ChatCompletion.create( model="gpt-3.5-turbo", # 选择了gpt-3.5-turbo模型 messages=[ {"role": "user","content": "用Python实现冒泡排序程序"}, ])# 输出回复内容print(response.choices[0].message.content)# 输出总共消耗的tokens数print('消耗的token数:',response.usage.total_tokens)
这行这段程序,会输出如下内容:
以下是Python实现冒泡排序程序的示例代码:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already sorted
for j in range(0, n-i-1):
# 如果当前元素大于下一个元素,则交换它们
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1],arr[j]
# 示例
arr = [64, 34, 25, 12, 22,11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" %arr[i], end=' ')
```
输出结果:
```
排序后的数组:
11 12 22 25 34 64 90
```
消耗的token数:221
李宁老师新课程《ChatGPT自动化编程实战》上线发布,https://edu.51cto.com/course/34342.html,超豪华AIGC(ChatGPT、GitHub Copilot、New Bing、Claude2、Google Bard)阵容,完全不需要编写一行代码,搞定上万行各种类型的程序,包括Java、JavaScript、Python、VBA、Kotlin等。