Spaces:
Runtime error
Runtime error
| from pydantic import BaseModel, HttpUrl, Field | |
| from typing import Union, Literal, Optional | |
| class TextAnalysisRequest(BaseModel): | |
| content_type: Literal["text"] | |
| text: str = Field(..., description="Text content to analyze for deepfake detection") | |
| class Config: | |
| json_schema_extra = { | |
| "example": { | |
| "content_type": "text", | |
| "text": "Some text that might be AI-generated" | |
| } | |
| } | |
| class ImageAnalysisRequest(BaseModel): | |
| content_type: Literal["image"] | |
| image_url: HttpUrl = Field(..., description="URL of the image to analyze") | |
| class Config: | |
| json_schema_extra = { | |
| "example": { | |
| "content_type": "image", | |
| "image_url": "https://example.com/image.jpg" | |
| } | |
| } | |
| class VideoAnalysisRequest(BaseModel): | |
| content_type: Literal["video"] | |
| video_url: HttpUrl = Field(..., description="URL of the video to analyze") | |
| class Config: | |
| json_schema_extra = { | |
| "example": { | |
| "content_type": "video", | |
| "video_url": "https://example.com/video.mp4" | |
| } | |
| } | |
| class FileAnalysisRequest(BaseModel): | |
| content_type: Literal["file"] | |
| file_url: HttpUrl = Field(..., description="URL of the file to analyze") | |
| class Config: | |
| json_schema_extra = { | |
| "example": { | |
| "content_type": "file", | |
| "file_url": "https://example.com/video.mp4" | |
| } | |
| } | |
| AnalysisRequest = Union[ | |
| TextAnalysisRequest, | |
| ImageAnalysisRequest, | |
| VideoAnalysisRequest, | |
| FileAnalysisRequest, | |
| ] | |
| class AnalysisResponse(BaseModel): | |
| is_deepfake: bool = Field(..., description="Whether the content is detected as a deepfake") | |
| confidence: float = Field(..., ge=0.0, le=1.0, description="Confidence score between 0.0 and 1.0") | |
| analysis_time: float = Field(..., description="Time taken for analysis in seconds") | |
| model_used: str = Field(..., description="The detector model that was used") | |
| content_type: str = Field(..., description="Type of content analyzed (text/image/video/file)") | |
| class Config: | |
| json_schema_extra = { | |
| "example": { | |
| "is_deepfake": True, | |
| "confidence": 0.847, | |
| "analysis_time": 1.234, | |
| "model_used": "mock", | |
| "content_type": "image" | |
| } | |
| } | |
| class ErrorResponse(BaseModel): | |
| error: str = Field(..., description="Error message") | |
| status_code: int = Field(..., description="HTTP status code") | |
| details: Optional[str] = Field(None, description="Additional error details") | |
| class Config: | |
| json_schema_extra = { | |
| "example": { | |
| "error": "Invalid URL format", | |
| "status_code": 400, | |
| "details": "The provided URL is not valid" | |
| } | |
| } | |
| class HealthResponse(BaseModel): | |
| status: str = Field(..., description="Service status") | |
| service: str = Field(..., description="Service name") | |
| version: str = Field(..., description="Service version") | |
| available_models: dict = Field(..., description="Available detector models per content type") | |
| supported_types: list = Field(..., description="Supported content types") | |