| | from pydantic import BaseModel |
| | from typing import Optional, Dict, List, Any |
| | from datetime import datetime |
| |
|
| | |
| |
|
| | class AnalyzeTextRequest(BaseModel): |
| | """Request model for analyzing raw text""" |
| | text: str |
| | user_id: Optional[str] = None |
| | filename: Optional[str] = "untitled.txt" |
| |
|
| | class GetResultRequest(BaseModel): |
| | """Request model for getting a specific result""" |
| | result_id: int |
| |
|
| | class DeleteResultRequest(BaseModel): |
| | """Request model for deleting a result""" |
| | result_id: int |
| |
|
| | class UpdateResultRequest(BaseModel): |
| | """Request model for updating a result""" |
| | result_id: int |
| | notes: Optional[str] = None |
| | is_flagged: Optional[bool] = None |
| |
|
| | |
| |
|
| | class DetectorResultResponse(BaseModel): |
| | """Response model for single detector result""" |
| | detector_name: str |
| | score: float |
| | confidence: Optional[str] = None |
| | explanation: Optional[str] = None |
| | suspicious_spans: List[Dict[str, Any]] = [] |
| | metadata: Dict[str, Any] = {} |
| |
|
| | class AnalysisResponse(BaseModel): |
| | """Response model for analysis result""" |
| | status: str |
| | message: str |
| | result_id: Optional[int] = None |
| | file_id: Optional[str] = None |
| | overall_ai_score: Optional[float] = None |
| | overall_ai_score_percentage: Optional[str] = None |
| | overall_confidence: Optional[str] = None |
| | status_label: Optional[str] = None |
| | detector_results: Optional[Dict[str, DetectorResultResponse]] = None |
| | enabled_detectors: Optional[List[str]] = None |
| | text_stats: Optional[Dict[str, Any]] = None |
| | error_details: Optional[str] = None |
| |
|
| | class ResultListResponse(BaseModel): |
| | """Response model for list of results""" |
| | status: str |
| | message: str |
| | total_count: int |
| | results: List[Dict[str, Any]] = [] |
| | page: int = 1 |
| | page_size: int = 10 |
| |
|
| | class SummaryResponse(BaseModel): |
| | """Response model for summary statistics""" |
| | status: str |
| | message: str |
| | summary: Dict[str, Any] = {} |
| |
|
| | class StatusResponse(BaseModel): |
| | """Response model for system status""" |
| | status: str |
| | message: str |
| | detector_status: Dict[str, Any] = {} |
| | config_summary: Optional[str] = None |
| |
|