Spaces:
Running
Running
File size: 1,363 Bytes
7ce533a 206dd1a 7ce533a 981579e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """
Pydantic models for forensic analysis responses.
"""
from pydantic import BaseModel
from typing import Dict, List, Any, Optional
class FileInfo(BaseModel):
"""Basic file information."""
filename: str
format: Optional[str]
mode: Optional[str]
size: tuple
width: int
height: int
file_size_bytes: int
class TamperingAnalysis(BaseModel):
"""Tampering detection results."""
suspicious_flags: List[str]
confidence: str
analysis: List[str]
class ForensicReportSummary(BaseModel):
"""Summary of forensic analysis."""
has_metadata: bool
suspicious_flags_count: int
authenticity_confidence: str
class ForensicReport(BaseModel):
"""Complete forensic analysis report."""
metadata: Dict[str, Any]
file_info: FileInfo
exif_data: Dict[str, Any]
hashes: Dict[str, str]
tampering_analysis: TamperingAnalysis
ai_detection: Dict[str, Any]
summary: Dict[str, Any]
class AIDetectionSignals(BaseModel):
"""Detection signals for AI analysis."""
noise: Dict[str, Any]
frequency: Dict[str, Any]
jpeg: Dict[str, Any]
color: Dict[str, Any]
class AIDetection(BaseModel):
"""AI-generated image detection results."""
ai_probability: float
classification: str
confidence: str
detection_signals: AIDetectionSignals
summary: Dict[str, int]
|