|
|
|
@ -62,6 +62,41 @@ class AiConclusionResponse(BaseModel): |
|
|
|
error: Optional[str] = None |
|
|
|
error: Optional[str] = None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConclusionByFilenameResponse(BaseModel): |
|
|
|
|
|
|
|
"""Заключение по имени файла""" |
|
|
|
|
|
|
|
filename: str |
|
|
|
|
|
|
|
audio_id: str |
|
|
|
|
|
|
|
conclusion: Dict[str, Any] |
|
|
|
|
|
|
|
index_date: Optional[datetime] = None |
|
|
|
|
|
|
|
end_date: Optional[datetime] = None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ai_conclusion_router.get("/conclusion/by-filename/{filename}", response_model=ConclusionByFilenameResponse) |
|
|
|
|
|
|
|
async def get_conclusion_by_filename(filename: str, db: Session = Depends(get_db)): |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
Возвращает заключение по распознаванию по имени файла. |
|
|
|
|
|
|
|
Имя файла задаётся в path (то же, что сохранено в БД при загрузке). |
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
audio = db.query(Audio).filter(Audio.filename == filename).first() |
|
|
|
|
|
|
|
if not audio: |
|
|
|
|
|
|
|
raise HTTPException(status_code=404, detail=f"Файл не найден: {filename}") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
conclusion_row = db.query(AiConclusion).filter(AiConclusion.audio_id == audio.id).first() |
|
|
|
|
|
|
|
if not conclusion_row: |
|
|
|
|
|
|
|
raise HTTPException( |
|
|
|
|
|
|
|
status_code=404, |
|
|
|
|
|
|
|
detail=f"Заключение по распознаванию для файла не найдено: {filename}" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ConclusionByFilenameResponse( |
|
|
|
|
|
|
|
filename=audio.filename, |
|
|
|
|
|
|
|
audio_id=str(audio.id), |
|
|
|
|
|
|
|
conclusion=conclusion_row.conclusion or {}, |
|
|
|
|
|
|
|
index_date=conclusion_row.index_date, |
|
|
|
|
|
|
|
end_date=conclusion_row.end_date, |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ai_conclusion_router.post("/conclusion/save", response_model=AiConclusionResponse) |
|
|
|
@ai_conclusion_router.post("/conclusion/save", response_model=AiConclusionResponse) |
|
|
|
async def save_ai_conclusion(request: AiConclusionRequest, db: Session = Depends(get_db)): |
|
|
|
async def save_ai_conclusion(request: AiConclusionRequest, db: Session = Depends(get_db)): |
|
|
|
""" |
|
|
|
""" |
|
|
|
|