fix
This commit is contained in:
@@ -162,23 +162,38 @@ def process_audio_file(audio_id: str, db: Session):
|
|||||||
file_size = os.path.getsize(file_path)
|
file_size = os.path.getsize(file_path)
|
||||||
logger.info(f"📁 Файл найден: {file_path} (размер: {file_size} bytes)")
|
logger.info(f"📁 Файл найден: {file_path} (размер: {file_size} bytes)")
|
||||||
|
|
||||||
# Формируем запрос в GigaAM API - ИСПОЛЬЗУЕМ АСИНХРОННЫЙ ENDPOINT
|
# Формируем запрос в GigaAM API
|
||||||
|
# Пробуем асинхронный endpoint, если не работает - fallback на обычный
|
||||||
from apiApp.config import GIGAAM_API_URL
|
from apiApp.config import GIGAAM_API_URL
|
||||||
api_url = f"{GIGAAM_API_URL}/api/call/process/async"
|
|
||||||
|
# Сначала пробуем асинхронный endpoint
|
||||||
|
async_api_url = f"{GIGAAM_API_URL}/api/call/process/async"
|
||||||
|
sync_api_url = f"{GIGAAM_API_URL}/api/call/process"
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"filename": audio.filename
|
"filename": audio.filename
|
||||||
}
|
}
|
||||||
|
|
||||||
# Отправляем запрос в GigaAM API - асинхронный endpoint быстро возвращает ответ
|
|
||||||
import requests
|
import requests
|
||||||
try:
|
try:
|
||||||
response = requests.post(api_url, json=payload, timeout=10)
|
# Пробуем асинхронный endpoint
|
||||||
|
response = requests.post(async_api_url, json=payload, timeout=10)
|
||||||
|
|
||||||
if response.status_code == 200 or response.status_code == 202:
|
if response.status_code == 200 or response.status_code == 202:
|
||||||
result = response.json()
|
result = response.json()
|
||||||
task_id = result.get('task_id')
|
task_id = result.get('task_id')
|
||||||
logger.info(f"✅ Задача добавлена в очередь для {audio.filename} (task_id: {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:
|
else:
|
||||||
logger.error(f"❌ Ошибка запуска распознавания для {audio.filename}: {response.status_code} - {response.text}")
|
logger.error(f"❌ Ошибка запуска распознавания для {audio.filename}: {response.status_code} - {response.text}")
|
||||||
|
|
||||||
@@ -187,10 +202,10 @@ def process_audio_file(audio_id: str, db: Session):
|
|||||||
logger.error(f"🔍 Диагностика 404:")
|
logger.error(f"🔍 Диагностика 404:")
|
||||||
logger.error(f" - FileAudioAPI путь: {file_path}")
|
logger.error(f" - FileAudioAPI путь: {file_path}")
|
||||||
logger.error(f" - Файл существует: {os.path.exists(file_path)}")
|
logger.error(f" - Файл существует: {os.path.exists(file_path)}")
|
||||||
logger.error(f" - GigaAM API URL: {api_url}")
|
logger.error(f" - Async URL: {async_api_url}")
|
||||||
|
logger.error(f" - Sync URL: {sync_api_url}")
|
||||||
|
|
||||||
except requests.exceptions.Timeout:
|
except requests.exceptions.Timeout:
|
||||||
# Для асинхронного endpoint таймаут маловероятен, но обрабатываем
|
|
||||||
logger.warning(f"⏱️ Таймаут при отправке задачи для {audio.filename}")
|
logger.warning(f"⏱️ Таймаут при отправке задачи для {audio.filename}")
|
||||||
except requests.exceptions.ConnectionError as e:
|
except requests.exceptions.ConnectionError as e:
|
||||||
logger.error(f"❌ Ошибка подключения к GigaAM API для {audio.filename}: {e}")
|
logger.error(f"❌ Ошибка подключения к GigaAM API для {audio.filename}: {e}")
|
||||||
|
|||||||
Reference in New Issue
Block a user