Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field | |
| from typing import Optional | |
| class AnalyzeRequest(BaseModel): | |
| topic: str = Field(..., min_length=1, max_length=200) | |
| top_k: int = Field(default=10, ge=1, le=20) | |
| class ArticleResult(BaseModel): | |
| source: str | |
| source_bias: str | |
| source_bias_provenance: Optional[str] = None | |
| url: str | |
| title: Optional[str] = None | |
| description: Optional[str] = None | |
| publishedAt: Optional[str] = None | |
| text: str | |
| text_label: str | |
| confidence: float | |
| similarity_score: float | |
| probabilities: dict | |
| class SourceSummary(BaseModel): | |
| source_bias: str | |
| Biased: int | |
| Not_Biased: int = Field(alias="Not Biased") | |
| total: int | |
| class Config: | |
| populate_by_name = True | |
| class AnalyzeResponse(BaseModel): | |
| topic: str | |
| total_articles: int | |
| results: list[ArticleResult] | |
| summary: dict[str, SourceSummary] | |
| class IngestRequest(BaseModel): | |
| topic: str = Field(..., min_length=1, max_length=200) | |
| page_size: int = Field(default=10, ge=1, le=50) | |
| class IngestResponse(BaseModel): | |
| topic: str | |
| articles_fetched: int | |
| articles_stored: int | |
| status: str | |