date: 2023-03-02 15:12:08
tags: gpt python
在3月1日刚发布的gpt-3.5-turbo,学习一下它的调用方法
- 以post方法调用
import requests
url = 'https://api.openai.com/v1/chat/completions'
Question = input("Question:")
data = {"model": "gpt-3.5-turbo","messages": [{"role": "user", "content": Question}]}
headers = {
'Authorization': 'Bearer sk-' #后面输入自己的api-key
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
x = response.json()
print(x['choices'][0]['message']['content'])
else:
print("error:",response.status_code)
启动程序之后输入问题然后发送请求。
- 以python openai模块调用
import openai
openai.api_key="sk-"
message=[]
while(True):
Q = input("user:")
message.append({"role":"user","content":Q})
com=openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=message)
message.append({"role":"assistant","content":com.choices[0].message.content})
print("assistant:",com.choices[0].message.content)
跟上面的代码功能有所不同的是,这个可以联系上下文,类似网页上与chatgpt对话的过程。 用户的角色设置为user,ai的角色设置为assistant。 目前不管是直接post请求还是用python的openai模块,都不需要连接外网,平时使用较为方便。
程序大小问题
在实际测试后发现:直接用post的版本,生成exe的大小在6M左右。而使用openai模块的版本,因为要打包openai模块,大小在70M左右。所以还是建议用post的版本 以下程序也可实现联系上下文
import requests
url = 'https://api.openai.com/v1/chat/completions'
headers = {
'Authorization': 'Bearer sk-'
}
message=[]
while(True):
Q = input("user:")
message.append({"role":"user","content":Q})
data = {"model": "gpt-3.5-turbo","messages": message}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
x = response.json()
print("assistant:",x['choices'][0]['message']['content'])
message.append({"role":"assistant","content":x['choices'][0]['message']['content']})
else:
print("error:",response.status_code)
break