我是Python新手,找不到工作解决方案,因此我向你寻求帮助
这是我的代码:
import requests
import json
import sseclient
API_KEY = 'Hidden for reasons'
def performRequestWithStreaming():
reqUrl = 'https://api.openai.com/v1/completions'
reqHeaders = {
'accept': 'text/event-stream',
'authorization': 'bearer ' + API_KEY
}
reqBody = {
"model": "text-davinci-003",
"prompt": "what is python",
"maxtokens": 100,
"temperature": 0,
"stream": True,
}
request = requests.post(reqUrl, stream=True, headers=reqHeaders, json=reqbody)
client = sseclient.SSEClient(request)
for event in client.events():
if event.data != 'DONE':
print(json.loads(event.data)['choices'][0]['text'], end="", flush=True)
if __name__ =='__main__':
performRequestWithStreaming()
我收到错误:
Exception has occurred: NameError
name 'reqUrl' is not defined
File bot.py", line 20, in <module>
request = requests.post(reqUrl, stream=True, headers=reqHeaders, json=reqbody)
NameError: name 'reqUrl' is not defined
尝试再次定义它,或者在顶部,在请求 API 中尝试不同的命令,或者将它们创建为对象,但没有成功
您必须将
reqBody...
的位置缩进到 print(json.loa...
上一级。
正确代码:
import requests
import json
import sseclient
API_KEY = 'Hidden for reasons'
def performRequestWithStreaming():
reqUrl = 'https://api.openai.com/v1/completions'
reqHeaders = {
'accept': 'text/event-stream',
'authorization': 'bearer ' + API_KEY
}
reqBody = {
"model": "text-davinci-003",
"prompt": "what is python",
"maxtokens": 100,
"temperature": 0,
"stream": True,
}
request = requests.post(reqUrl, stream=True, headers=reqHeaders, json=reqbody)
client = sseclient.SSEClient(request)
for event in client.events():
if event.data != 'DONE':
print(json.loads(event.data)['choices'][0]['text'], end="", flush=True)
if __name__ =='__main__':
performRequestWithStreaming()