All checks were successful
continuous-integration/drone/push Build is passing
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
"""
|
|
GPT клиент - отправка запросов к нейросети
|
|
"""
|
|
import time
|
|
import requests
|
|
from config import GPT_SERVER_URL, GPT_MAX_RETRIES, GPT_TIMEOUT
|
|
from utils import logger
|
|
import work_parser as wp
|
|
|
|
|
|
def gpt_response_message(content: str, name_promt: str) -> str:
|
|
"""
|
|
Отправляет текст на обработку GPT серверу
|
|
Возвращает ответ или пустую строку при ошибке
|
|
"""
|
|
contentGPT = wp.get_promt(name_promt).replace('{content}', content)
|
|
|
|
url = GPT_SERVER_URL
|
|
params = {'text': contentGPT}
|
|
|
|
max_retries = GPT_MAX_RETRIES
|
|
retries = 0
|
|
|
|
while retries < max_retries:
|
|
try:
|
|
response = requests.get(url, params=params, timeout=GPT_TIMEOUT)
|
|
return response.text
|
|
except requests.exceptions.ConnectTimeout as e:
|
|
print(f"Ошибка подключения (timeout): {e}")
|
|
logger.warning(f"gpt_response_message timeout:")
|
|
retries += 1
|
|
if retries < max_retries:
|
|
time.sleep(2 ** (retries - 1))
|
|
except requests.exceptions.ConnectionError as e:
|
|
print(f"Ошибка соединения: {e}")
|
|
logger.warning(f"gpt_response_message connection error: ")
|
|
retries += 1
|
|
if retries < max_retries:
|
|
time.sleep(2 ** (retries - 1))
|
|
except Exception as ex:
|
|
print(f"Ошибка при запросе к GPT: {ex}")
|
|
logger.error(f"gpt_response_message: ")
|
|
retries += 1
|
|
if retries < max_retries:
|
|
time.sleep(2 ** (retries - 1))
|
|
|
|
logger.info(f"Превышен лимит запросов {max_retries}")
|
|
return ""
|