|
|
|
|
@ -162,13 +162,11 @@ def process_audio_file(audio_id: str, db: Session):
|
|
|
|
|
file_size = os.path.getsize(file_path) |
|
|
|
|
logger.info(f"📁 Файл найден: {file_path} (размер: {file_size} bytes)") |
|
|
|
|
|
|
|
|
|
# Формируем запрос в GigaAM API |
|
|
|
|
# Пробуем асинхронный endpoint, если не работает - fallback на обычный |
|
|
|
|
# Формируем запрос в GigaAM API - ТОЛЬКО асинхронный endpoint |
|
|
|
|
from apiApp.config import GIGAAM_API_URL |
|
|
|
|
|
|
|
|
|
# Сначала пробуем асинхронный endpoint |
|
|
|
|
async_api_url = f"{GIGAAM_API_URL}/api/call/process/async" |
|
|
|
|
sync_api_url = f"{GIGAAM_API_URL}/api/call/process" |
|
|
|
|
# Используем только асинхронный endpoint |
|
|
|
|
api_url = f"{GIGAAM_API_URL}/api/call/process/async" |
|
|
|
|
|
|
|
|
|
payload = { |
|
|
|
|
"filename": audio.filename |
|
|
|
|
@ -176,37 +174,20 @@ def process_audio_file(audio_id: str, db: Session):
|
|
|
|
|
|
|
|
|
|
import requests |
|
|
|
|
try: |
|
|
|
|
# Пробуем асинхронный endpoint |
|
|
|
|
response = requests.post(async_api_url, json=payload, timeout=10) |
|
|
|
|
# Отправляем запрос в асинхронный endpoint |
|
|
|
|
response = requests.post(api_url, json=payload, timeout=10) |
|
|
|
|
|
|
|
|
|
if response.status_code == 200 or response.status_code == 202: |
|
|
|
|
result = response.json() |
|
|
|
|
task_id = result.get('task_id') |
|
|
|
|
logger.info(f"✅ Задача добавлена в очередь для {audio.filename} (task_id: {task_id})") |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
# Если асинхронный endpoint вернул ошибку, пробуем синхронный |
|
|
|
|
if response.status_code == 404: |
|
|
|
|
logger.warning(f"⚠️ Асинхронный endpoint не найден, пробуем синхронный") |
|
|
|
|
response = requests.post(sync_api_url, json=payload, timeout=60) |
|
|
|
|
|
|
|
|
|
if response.status_code == 200: |
|
|
|
|
logger.info(f"✅ Запущено синхронное распознавание для {audio.filename}") |
|
|
|
|
else: |
|
|
|
|
logger.error(f"❌ Ошибка запуска распознавания для {audio.filename}: {response.status_code} - {response.text}") |
|
|
|
|
else: |
|
|
|
|
logger.error(f"❌ Ошибка запуска распознавания для {audio.filename}: {response.status_code} - {response.text}") |
|
|
|
|
|
|
|
|
|
# Дополнительная диагностика для 404 |
|
|
|
|
if response.status_code == 404: |
|
|
|
|
logger.error(f"🔍 Диагностика 404:") |
|
|
|
|
logger.error(f" - FileAudioAPI путь: {file_path}") |
|
|
|
|
logger.error(f" - Файл существует: {os.path.exists(file_path)}") |
|
|
|
|
logger.error(f" - Async URL: {async_api_url}") |
|
|
|
|
logger.error(f" - Sync URL: {sync_api_url}") |
|
|
|
|
error_detail = response.text |
|
|
|
|
logger.error(f"❌ Ошибка запуска распознавания для {audio.filename}: {response.status_code}") |
|
|
|
|
logger.error(f" Detail: {error_detail}") |
|
|
|
|
|
|
|
|
|
except requests.exceptions.Timeout: |
|
|
|
|
logger.warning(f"⏱️ Таймаут при отправке задачи для {audio.filename}") |
|
|
|
|
logger.error(f"❌ Таймаут при отправке задачи для {audio.filename}") |
|
|
|
|
except requests.exceptions.ConnectionError as e: |
|
|
|
|
logger.error(f"❌ Ошибка подключения к GigaAM API для {audio.filename}: {e}") |
|
|
|
|
|
|
|
|
|
|