логирование ошибок транскрибации для битых файлов
This commit is contained in:
@@ -62,6 +62,11 @@ class AiConclusionResponse(BaseModel):
|
||||
error: Optional[str] = None
|
||||
|
||||
|
||||
class RecognitionFailedRequest(BaseModel):
|
||||
filename: str
|
||||
error: str
|
||||
|
||||
|
||||
class ConclusionByFilenameResponse(BaseModel):
|
||||
"""Заключение по имени файла"""
|
||||
filename: str
|
||||
@@ -154,6 +159,11 @@ async def save_ai_conclusion(request: AiConclusionRequest, db: Session = Depends
|
||||
db.commit()
|
||||
logger.info(f"✅ Заключение сохранено для {request.filename}")
|
||||
|
||||
# Обновляем статус распознавания у Audio
|
||||
audio.recognition_status = "completed"
|
||||
audio.recognition_last_error = None
|
||||
db.commit()
|
||||
|
||||
# Для внешних файлов — отправляем результат клиенту из FileAudioAPI
|
||||
if (audio.sourse or "").lower() == "external" and request.callback_url:
|
||||
_send_callback(request.callback_url, audio, conclusion_data)
|
||||
@@ -207,3 +217,25 @@ async def save_ai_conclusion(request: AiConclusionRequest, db: Session = Depends
|
||||
status_code=500,
|
||||
detail=str(e)
|
||||
)
|
||||
|
||||
|
||||
@ai_conclusion_router.post("/conclusion/failed", response_model=AiConclusionResponse)
|
||||
async def mark_recognition_failed(request: RecognitionFailedRequest, db: Session = Depends(get_db)):
|
||||
"""
|
||||
Помечает распознавание как failed для файла (чтобы auto-restore не пытался бесконечно).
|
||||
Используется GigaAM_API при невозможности получить результат.
|
||||
"""
|
||||
audio = db.query(Audio).filter(Audio.filename == request.filename).first()
|
||||
if not audio:
|
||||
raise HTTPException(status_code=404, detail=f"Файл не найден: {request.filename}")
|
||||
|
||||
audio.recognition_status = "failed"
|
||||
audio.recognition_last_error = request.error
|
||||
db.commit()
|
||||
|
||||
return AiConclusionResponse(
|
||||
success=True,
|
||||
message="Recognition marked as failed",
|
||||
audio_id=str(audio.id),
|
||||
filename=audio.filename
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user