You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
961 B
45 lines
961 B
from pydantic import BaseModel, Field |
|
from typing import Optional, Dict, Any |
|
from datetime import datetime |
|
import uuid |
|
|
|
|
|
class AiConclusionBase(BaseModel): |
|
audio_id: uuid.UUID |
|
conclusion: Optional[Dict[str, Any]] = None |
|
|
|
class AiConclusionCreate(AiConclusionBase): |
|
pass |
|
|
|
|
|
class AiConclusionResponse(BaseModel): |
|
id: uuid.UUID |
|
audio_id: uuid.UUID |
|
conclusion: Dict[str, Any] |
|
index_date: Optional[datetime] = None |
|
end_date: Optional[datetime] = None |
|
|
|
class Config: |
|
from_attributes = True |
|
|
|
class RecognitionStatus(BaseModel): |
|
task_id: str |
|
audio_id: uuid.UUID |
|
status: str # pending, processing, completed, error |
|
result: Optional[Dict[str, Any]] = None |
|
error: Optional[str] = None |
|
|
|
|
|
class RecognitionStartResponse(BaseModel): |
|
status: str |
|
message: str |
|
task_id: str |
|
audio_id: uuid.UUID |
|
|
|
|
|
class MessageResponse(BaseModel): |
|
message: str |
|
|
|
|
|
class ErrorResponse(BaseModel): |
|
detail: str
|
|
|