写在前面

ChatGPT 近期以强壮的对话和信息整合能力风行全网。起初,她并没有引起我很大的兴趣。我认为这不过又是互联网公司寻求新的经济增长点的风口而已。

就像几年前的 区块链 ,大大小小的公司趋之若鹜,记得我其时的老东家也推出一款去中心化的 APP,用于存储自己的基因数据。现在现已没有人谈及区块链技术了。

就像最近 1-2 年的 元世界 ,据说甚至有校园成立了元世界学院,自从扎克伯格晒出一个简陋无比的元世界照片之后,简直是将元世界的破烂底裤展示在世人面前。如今,元世界成了个笑话。

根据我浅陋的认知,我并没有过多关注 ChatGPT 。直到今日的一些私人原因,我才开始正式了解她。

ChatGPT 是什么

ChatGPT 的全称是 Chat Generative Pre-trained Transformer 。我的了解她是一个根据 Transformer 模型 由预练习数据生成对话信息的使用。(PS:Transformer 模型,是谷歌在 2017 年推出的 NLP 经典模型)

由她的名字,我猜想,ChatGPT 并不是在全网实时搜索最佳答案,而是根据预先练习的数据,实时拼凑出一个答案。这个答案或许并不一定是正确的,但不管你信不信,反正 ChatGPT 自己是相信这个答案的。

ChatGPT 的前世今生

3分钟教你用Python搭建ChatGPT

我们所说的 ChatGPT 其实是根据 GPT-3.5 模型 开发得到的。截至现在,OpenAI 公司并没有敞开 GPT-3.5 的接口。因而我们只能通过 OpenAI 的官方网站 chat.openai.com/ 来访问 ChatGPT。(ai.com 这个地址是 OpenAI 花重金购买的,相同能够跳转到 ChatGPT 官网)

现在网上呈现的一些 ChatGPT 中文版,ChatGPT 微信版等等都是根据 2020 年的 GPT-3 模型 开发而来。虽然和根据GPT-3.5 模型演化而来的 ChatGPT 无法比。可是相同能带我们体会人工智能的美妙。

而我们今日要建立的 ChatGPT 相同是根据GPT-3 模型开发。

用 Python 建立 ChatGPT

获取 OpenAI API Key

由我的另一篇博客 超详细注册 OpenAI 接口账号的教程 获取 OpenAI API Key

3分钟教你用Python搭建ChatGPT

安装 openai 模块

使用如下代码安装 openai 模块。

pip install openai

调用接口获取回来信息

代码

调用 openai.Completion.create 函数获取回来信息。

import os
import openai
# 填写注册OpenAI接口账号时获取的 OpenAI API Key
openai.api_key = os.getenv("OPENAI_API_KEY")
# 发问
issue = '你是谁?'
# 访问OpenAI接口
response = openai.Completion.create(
  model='text-davinci-003',
  prompt=issue,
  temperature=0.9,
  max_tokens=150,
  top_p=1,
  frequency_penalty=0.0,
  presence_penalty=0.6
)
# 回来信息
resText = response.choices[0].text
print(resText)

参数

  • model:使用的模型,可选内容如下:

3分钟教你用Python搭建ChatGPT

  • prompt:发问,发问描述越详细,回答越准确
  • temperature:操控成果的随机性,假如期望成果更有差异性 0.9,或许期望有固定成果能够测验 0.0
  • max_tokens:生成成果时的最大 tokens 数。均匀一个汉字是 2 个 tokens,text-davinci-003 最多是 4000 个 tokens,也就是 2000 个汉字左右
  • top_p:一个可用于替代 temperature 的参数,对应机器学习中 nucleus sampling,假如设置 0.1 意味着只考虑构成前 10% 概率质量的 tokens
  • frequency_penalty:操控字符的重复度,取值为 -2.0 ~ 2.0 之间的数字
  • presence_penalty:操控主题的重复度,取值为 -2.0 ~ 2.0 之间的数字

测验 ChatGPT

3分钟教你用Python搭建ChatGPT

3分钟教你用Python搭建ChatGPT

3分钟教你用Python搭建ChatGPT

别的不敢点评,就是这个最后用 python 写冒泡排序,我给打 99 分。代码最后不可思议多出一个逗号,原以为这代码肯定会报错,谁知道测验了下能够正常运转,运转成果也是对的。后来查了一下材料,本来 print()后边加上逗号能够让回车符失效,ChatGPT 是故意这么做的,这是我不知道的知识点。给她扣掉一分,是因为这代码空格和回车有点太随意了,并不是特别工整。

最后

免费的 API 接口是有额度限制的。每个账号有 18 美元 的免费额度,限期 3 个月 。 不同的形式计费不同,text-davinci-003 这个形式大约每 1000 个 tokens 扣费 0.02 美元。

3分钟教你用Python搭建ChatGPT

除此以外,OpenAI 的接口还有如下功能,静待你的挖掘。

3分钟教你用Python搭建ChatGPT