Files
parser/services/gpt_client.py
giteaadmin 8b07841687
All checks were successful
continuous-integration/drone/push Build is passing
Обновить services/gpt_client.py
+ print gpt
2026-04-29 07:26:44 +00:00

50 lines
1.8 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)
print(response.text)
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 ""