最近哈士奇的chatGPT总是出现问题,可能因为节点或者网络问题总是无法使用,这可难倒了靠chat为生的哈士奇,怎样才能稳定使用chatGPT呢?

但是聪明的哈士奇通过调用chatGPT接口找到了使用chatGPT的新办法,大家都可以试试哦!!

一、准备一个chatGPT的API
大家需要搜索chatgpt,找到Introducing ChatGPT

接着在API中点击Docs

点击锁的图标,进入API KEYS

在其中选择create new secret key创建一个api,记住,创建api需要电话验证,如果你的账号已经有了就直接创建,记得一定要保存好你的API,不然只能重新创建API,然后复制你的API,备用
二、选择一个开发环境(在线或本地)
哈士奇使用的是Python调用接口,因此提供在线和本地
在线版:
这里哈士奇给大家推荐的在线开发环境是Colaboratory

在文件中新建一个笔记本

点击上面打圈的就可以直接运行python代码
本地版
哈士奇的本地开发环境是Spyder,大家使用Pycharm也可以
首先大家需要在控制台中安装openai的包
打开控制台(搜索cmd)
点击命令提示符进入控制台
安装完毕以后我们就可以开始敲代码了!!!
三、代码讲解
python
import openai
openai.api_key="你的API"
def generate_data_by_openai(prompt):
response=openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
temperature=0.5,
max_tokens=2048,
top_p=1
)
return response.choices[0].text
while True:
print("请输入你的问题:")
prompt=input()
print("回答:"+generate_data_by_openai(prompt))
openai.Completion 是一个预训练的语言模型,可以自动生成文本。openai.Completion.create()
是一个用于创建新的 OpenAI Completion 实例的函数。
我们在其中创建一个engine在其中填入text-davinci-003,这里要敲黑板了,这个语言模型是OpenAI训练出来的语言模型之一,最大的优势是生成指令
所以大家可能会觉得它比chatGPT笨点这也很正常(代替使用了)
prompt是指的大家给语言模型的主题(就是大家的问题)
接下来是temperature=0.5
temperature是语言生成模型中的一个超参数,值在0.1~1.0之间 当我们需要语言模型解释的东西更精确的时候就调低temperature的数值,这样会导致模型生成更精准的词汇, 但是如果我们调高数值的话,它就会使得它更具有多样性,表现为结果的变得更天马行空
简而言之,temperature的值越低,生成文本更保守,值越高,生成文本更有创意
max_tokens=2048
这串代码主要是用于限制生成的最大字数
哈士奇再给大家分享两个可能用得到的变量 frequency_penalty, presence_penalty
frequency_penalty主要用于控制字符的重复度,它的值是介于-2.0 ~ 2.0 之间的数字,如果是正值则会根据新 tokens 在文本中的频率对其进行惩罚,从而降低模型逐字重复同一行的可能性
presence_penalty则是用于控制主题的重复度,它的值是介于-2.0 ~ 2.0 之间的数字,如果是正值则会根据到目前为止是否出现在文本中来惩罚新 tokens,从而增加模型谈论新主题的可能性
response.choices[0].text
将生成的全部答案中的第一个回答转化为文本
最后我们简单写个while循环持续使用
让大家看看效果

大家快使用起来吧!!!