43 lines
No EOL
930 B
Python
43 lines
No EOL
930 B
Python
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 |