from pydantic import BaseModel from typing import List, Dict class SearchRequest(BaseModel): search_text: str source_types: List[str] = ["fact_checkers"] class Publisher(BaseModel): name: str site: str class ClaimReview(BaseModel): publisher: Publisher textualRating: str class Claim(BaseModel): claimReview: List[ClaimReview] claimant: str text: str class Summary(BaseModel): fact_checking_sites_queried: int total_sources: int class TokenUsage(BaseModel): prompt_tokens: int completion_tokens: int total_tokens: int class VerificationResult(BaseModel): verdict: str confidence: str evidence: List[str] reasoning: str class EnhancedFactCheckResponse(BaseModel): query: str results: List[Claim] sources: List[str] summary: Summary token_usage: Dict[str, int] total_claims_found: int verification_result: VerificationResult