This commit is contained in:
54
backend/app/schemas/__init__.py
Normal file
54
backend/app/schemas/__init__.py
Normal file
@@ -0,0 +1,54 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class HealthResponse(BaseModel):
|
||||
status: str
|
||||
version: str
|
||||
|
||||
|
||||
class CheckResponse(BaseModel):
|
||||
task_id: str
|
||||
status: str
|
||||
message: str
|
||||
|
||||
|
||||
class MatchResult(BaseModel):
|
||||
method: str = Field(..., description="exact | fuzzy | semantic")
|
||||
similarity: float = Field(..., ge=0, le=100)
|
||||
source_title: Optional[str] = None
|
||||
source_db: Optional[str] = None
|
||||
url: Optional[str] = None
|
||||
source_id: Optional[str] = None
|
||||
fragment_text: Optional[str] = None
|
||||
fragment_start: Optional[int] = None
|
||||
fragment_end: Optional[int] = None
|
||||
|
||||
|
||||
class ReportResponse(BaseModel):
|
||||
task_id: str
|
||||
status: str
|
||||
overall_similarity: Optional[float] = None
|
||||
matches: Optional[List[MatchResult]] = None
|
||||
source_text: Optional[str] = None
|
||||
created_at: Optional[datetime] = None
|
||||
completed_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class ReportSummary(BaseModel):
|
||||
task_id: str
|
||||
status: str
|
||||
overall_similarity: Optional[float] = None
|
||||
created_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class ReportsListResponse(BaseModel):
|
||||
tasks: List[ReportSummary]
|
||||
|
||||
|
||||
class StatsResponse(BaseModel):
|
||||
total_documents_indexed: int
|
||||
faiss_index_size: int
|
||||
elasticsearch_available: bool
|
||||
api_version: str
|
||||
Reference in New Issue
Block a user