Python调用ChatGPT接口(2023)

本篇将使用 python调用chatgpt接口

注册OpenAi账号#

随便找一个魔法软件登录OpenAi。地址就算漂亮国或新加坡吧,进入OpenAi官网:Product (openai.com),点击右上方的log in

img

进入后便可以注册你的 openai账号了,使用下面的Goodgle账号登录,再注册一个谷歌账号,然后按要求写就行。

注意最重要的来了!

电话号码由于国内的号码openai不支持,这时就需要使用外网的虚拟电话号进行接收短信验证码了。使用SMS网站:SMS-Activate是在线接受短信的虚拟号码服务,然后在左边的侧边栏里的搜索框输入openai,再选着一个号码,我选的是印度尼西亚的,只需要10p(0.1美元),但是初始是没有钱的,先注册登录这个网站,然后右上方账户下面有个加号,这里就是充值的地方。img

最新的SMS仅支持最低充值2美元,也就是14RMB的样子,准备好钱钱哦~,里面的支付方式比较熟悉的有支付宝。

充值完成后购买一个外网的号码,这时会自动给你跳转到接收短信的页面。

返回刚刚的Openai官网登录界面,这时将过程中不支持国内的号码改成刚刚买的外网号码就可以了。

获取OpenAi密钥(key)#

登录openai后会出现下面的界面,选择API即可

img

然后再点击右上角头像选择查看API key:

img

然后再点击Create new sercet key就可以查看你的key了

img

在Python中实现chatgpt对话窗#

直接复制下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import requests
# 用于存储API返回的上下文
class gpt:
def send_request(self,messages):
# 设置代理服务器的地址和端口
proxies = {
"http": "http://127.0.0.1:7890",
"https": "http://127.0.0.1:7890"
}
# ChatGPT API的URL
url = "https://api.openai.com/v1/chat/completions"
# ChatGPT API的访问密钥
api_key = "【在这输入 ChatGPT API的访问密钥】"
# 请求参数
parameters = {
"model": "gpt-3.5-turbo-0301", #gpt-3.5-turbo-0301
"messages":messages# [{"role": "user", "content": context}]
}
# 请求头
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
# 发送请求
response = requests.post(url, headers=headers, json=parameters, proxies=proxies)

# 解析响应
if response.status_code == 200:
data = response.json()
text = data["choices"][0]["message"]

return text
else:
print(response)
return "Sorry, something went wrong."

def start_conversation(self,messages):
print("Welcome to ChatGPT! How can I help you today?")

# 进入对话循环
while True:
# 获取用户输入
user_input = input("> ")
user_message={"role": "user", "content": user_input}
# 将用户输入添加到messages中
messages.append(user_message)
# 发送API请求
response = self.send_request(messages)
# 输出API返回内容
print("ChatBot:",response["content"])

#将API接口返回的内容添加至messages,以用作多轮对话
messages.append(response)
# 如果API返回的内容包含"goodbye",则结束对话循环
if "goodbye" in user_input:
print("Goodbye!")
break
if __name__ == '__main__':
messages=[{"role": "system", "content": "你是一个助手"}] #初始化prompt
gpt().start_conversation(messages)

记得修改你的openai key

查看你的剩余额度:

img

返回刚刚的openai网站,点击这个Upgrade就可以查看了。