| 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 |
|
|