|
|
|
|
@ -149,27 +149,29 @@ def process_audio_file(audio_id: str, db: Session):
|
|
|
|
|
|
|
|
|
|
logger.info(f"🎵 Запуск распознавания для {audio.filename}") |
|
|
|
|
|
|
|
|
|
# Формируем запрос в GigaAM API |
|
|
|
|
# Формируем запрос в GigaAM API - ИСПОЛЬЗУЕМ АСИНХРОННЫЙ ENDPOINT |
|
|
|
|
from apiApp.config import GIGAAM_API_URL |
|
|
|
|
api_url = f"{GIGAAM_API_URL}/api/call/process" |
|
|
|
|
api_url = f"{GIGAAM_API_URL}/api/call/process/async" |
|
|
|
|
|
|
|
|
|
payload = { |
|
|
|
|
"filename": audio.filename |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Отправляем запрос в GigaAM API с увеличенным таймаутом |
|
|
|
|
# Отправляем запрос в GigaAM API - асинхронный endpoint быстро возвращает ответ |
|
|
|
|
import requests |
|
|
|
|
try: |
|
|
|
|
response = requests.post(api_url, json=payload, timeout=60) |
|
|
|
|
response = requests.post(api_url, json=payload, timeout=10) |
|
|
|
|
|
|
|
|
|
if response.status_code == 200 or response.status_code == 202: |
|
|
|
|
logger.info(f"✅ Запущено распознавание для {audio.filename}") |
|
|
|
|
result = response.json() |
|
|
|
|
task_id = result.get('task_id') |
|
|
|
|
logger.info(f"✅ Задача добавлена в очередь для {audio.filename} (task_id: {task_id})") |
|
|
|
|
else: |
|
|
|
|
logger.error(f"❌ Ошибка запуска распознавания для {audio.filename}: {response.status_code} - {response.text}") |
|
|
|
|
|
|
|
|
|
except requests.exceptions.Timeout: |
|
|
|
|
# Таймаут не критичен - распознавание может быть запущено, но ответ ещё не пришёл |
|
|
|
|
logger.warning(f"⏱️ Таймаут ожидания ответа от GigaAM API для {audio.filename}, но распознавание может быть запущено") |
|
|
|
|
# Для асинхронного endpoint таймаут маловероятен, но обрабатываем |
|
|
|
|
logger.warning(f"⏱️ Таймаут при отправке задачи для {audio.filename}") |
|
|
|
|
except requests.exceptions.ConnectionError as e: |
|
|
|
|
logger.error(f"❌ Ошибка подключения к GigaAM API для {audio.filename}: {e}") |
|
|
|
|
|
|
|
|
|
|