matrix_chatgpt_bot/ask_gpt.py

35 lines
1 KiB
Python
Raw Normal View History

2023-03-05 14:07:25 +00:00
import aiohttp
import asyncio
import json
async def ask(prompt: str, api_endpoint: str, headers: dict) -> str:
2023-03-05 14:07:25 +00:00
jsons = {
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": prompt,
},
],
}
async with aiohttp.ClientSession() as session:
max_try = 5
while max_try > 0:
2023-03-05 14:07:25 +00:00
try:
async with session.post(url=api_endpoint,
2023-03-05 14:07:25 +00:00
json=jsons, headers=headers, timeout=10) as response:
status_code = response.status
if not status_code == 200:
max_try = max_try - 1
2023-03-05 14:07:25 +00:00
# wait 2s
await asyncio.sleep(2)
2023-03-05 14:07:25 +00:00
continue
resp = await response.read()
await session.close()
return json.loads(resp)['choices'][0]['message']['content']
except Exception as e:
print(e)
pass