улучшено логироание, обработка застрявшизх файлов
This commit is contained in:
@@ -228,15 +228,39 @@ async def mark_recognition_failed(request: RecognitionFailedRequest, db: Session
|
|||||||
"""
|
"""
|
||||||
audio = db.query(Audio).filter(Audio.filename == request.filename).first()
|
audio = db.query(Audio).filter(Audio.filename == request.filename).first()
|
||||||
if not audio:
|
if not audio:
|
||||||
|
logger.warning(f"⚠️ Попытка пометить failed для несуществующего аудио: {request.filename}, error={request.error}")
|
||||||
raise HTTPException(status_code=404, detail=f"Файл не найден: {request.filename}")
|
raise HTTPException(status_code=404, detail=f"Файл не найден: {request.filename}")
|
||||||
|
|
||||||
audio.recognition_status = "failed"
|
audio.recognition_status = "failed"
|
||||||
audio.recognition_last_error = request.error
|
audio.recognition_last_error = request.error
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
|
logger.warning(f"❌ Распознавание помечено failed для {request.filename}. Причина: {request.error}")
|
||||||
|
|
||||||
|
# Отправляем вебхук об ошибке в Calls_WEB_Client_main, чтобы синхронизировать pipeline_status
|
||||||
|
try:
|
||||||
|
if (audio.sourse or "").lower() != "external":
|
||||||
|
failed_webhook_payload = {
|
||||||
|
"audio_id": str(audio.id),
|
||||||
|
"filename": request.filename,
|
||||||
|
"status": "failed",
|
||||||
|
"error": request.error
|
||||||
|
}
|
||||||
|
webhook_url = f"{CALLS_WEB_CLIENT_URL}/api/transcription/failed"
|
||||||
|
logger.info(f"📤 Отправка failed-webhook в Calls_WEB_Client_main: {webhook_url}")
|
||||||
|
requests.post(
|
||||||
|
webhook_url,
|
||||||
|
json=failed_webhook_payload,
|
||||||
|
headers={"X-Webhook-Key": WEBHOOK_API_KEY},
|
||||||
|
timeout=10
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"❌ Ошибка отправки failed-webhook в Calls_WEB: {e}")
|
||||||
|
|
||||||
return AiConclusionResponse(
|
return AiConclusionResponse(
|
||||||
success=True,
|
success=True,
|
||||||
message="Recognition marked as failed",
|
message="Recognition marked as failed",
|
||||||
audio_id=str(audio.id),
|
audio_id=str(audio.id),
|
||||||
filename=audio.filename
|
filename=audio.filename
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user