3分钟教你用Python搭建ChatGPT

写在前面

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

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

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

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

ChatGPT 是什么

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

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

ChatGPT 的前世今生

3分钟教你用Python搭建ChatGPT-1.png

我们所说的 ChatGPT 其实是基于 GPT-3.5 模型 开发得到的。截至目前,OpenAI 公司并没有开放 GPT-3.5 的接口。因此我们只能通过 OpenAI 的官方网站 https://chat.openai.com/ 来访问 ChatGPT。(https://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-2.png

安装 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-3.png
  • 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-4.png
3分钟教你用Python搭建ChatGPT-5.png
3分钟教你用Python搭建ChatGPT-6.png

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

最后

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

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

[站外图片上传中...(image-9f61b9-1677113856911)]


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容