astock-agent/backend/app/catalyst/models.py
2026-05-14 11:10:17 +08:00

45 lines
1.1 KiB
Python

"""催化事件领域模型。"""
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"