"""催化事件领域模型。""" from datetime import datetime from pydantic import BaseModel, Field class CatalystTheme(BaseModel): theme_id: str theme_name: str relevance: float = Field(default=0, ge=0, le=100) reason: str = "" class CatalystInput(BaseModel): title: str content: str = "" source: str = "manual" url: str = "" published_at: datetime | None = None class CatalystAnalysis(BaseModel): title: str summary: str = "" source: str = "manual" url: str = "" published_at: datetime | None = None catalyst_type: str = "news" strength: float = Field(default=0, ge=0, le=100) freshness: float = Field(default=0, ge=0, le=100) confidence: float = Field(default=0, ge=0, le=100) themes: list[CatalystTheme] = [] raw_text: str = "" llm_reason: str = "" generated_by: str = "rules" class ThemeCatalystScore(BaseModel): theme_id: str theme_name: str catalyst_score: float = 0 catalyst_count: int = 0 top_reasons: list[str] = [] generated_by: str = "rules"