Python+openai 模块搭建ChatGPT,只需三分钟

2023-04-2109:02:56后端程序开发Comments2,174 views字数 1720阅读模式

ChatGPT 是什么

ChatGPT 的全称是 Chat Generative Pre-trained Transformer 。我的理解她是一个基于 Transformer 模型 由预训练数据生成对话信息的应用。(PS:Transformer 模型,是谷歌在 2017 年推出的 NLP 经典模型)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

由她的名字,我猜测,ChatGPT 并不是在全网实时搜索最佳答案,而是根据预先训练的数据,实时拼凑出一个答案。这个答案可能并不一定是正确的,但不管你信不信,反正 ChatGPT 自己是相信这个答案的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

ChatGPT 的前世今生

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

我们所说的 ChatGPT 其实是基于 GPT-3.5 模型 开发得到的。截至目前,OpenAI 公司并没有开放 GPT-3.5 的接口。因此我们只能通过 OpenAI 的官方网站 https://chat.openai.com/ 来访问 ChatGPT。(https://ai.com 这个地址是 OpenAI 花重金购买的,同样可以跳转到 ChatGPT 官网)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

现在网上出现的一些 ChatGPT 中文版,ChatGPT 微信版等等都是基于 2020 年的 GPT-3 模型 开发而来。虽然和基于GPT-3.5 模型演化而来的 ChatGPT 没法比。但是同样能带我们体验人工智能的美妙。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

而我们今天要搭建的 ChatGPT 同样是基于GPT-3 模型开发。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

(注意,广告来了~)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

(广告结束~)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

用 Python 搭建 ChatGPT

获取 OpenAI API Key

由我的另一篇博客 超详细注册 OpenAI 接口账号的教程 获取 OpenAI API Key 。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

安装 openai 模块

使用如下代码安装 openai 模块。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

pip install openai

调用接口获取返回信息文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

代码

调用 openai.Completion.create 函数获取返回信息。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

import osimport openai
# 填写注册OpenAI接口账号时获取的 OpenAI API Keyopenai.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)

参数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

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

    Python+openai 模块搭建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

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

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

最后

免费的 API 接口是有额度限制的。每个账号有 18 美元 的免费额度,限期 3 个月 。不同的模式计费不同,text-davinci-003 这个模式大约每 1000 个 tokens 扣费 0.02 美元。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

除此以外,OpenAI 的接口还有如下功能,静待你的挖掘。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

Python+openai 模块搭建ChatGPT,只需三分钟文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/36492.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/36492.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定