frimeet-api-nlp / app /modules /posts /domain /clustering.py
AlleksDev's picture
Fix: Custom Feed
5c793cc unverified
Raw
History Blame Contribute Delete
1.09 kB
from dataclasses import dataclass
@dataclass(frozen=True)
class PostEmbedding:
post_id: str
vector: list[float]
@dataclass(frozen=True)
class ClusterAssignment:
post_id: str
cluster_id: int
distance: float
@dataclass(frozen=True)
class KMeansResult:
centroids: list[list[float]]
assignments: list[ClusterAssignment]
inertia: float
silhouette_score: float | None
parameters: dict[str, int | float | str]
@dataclass(frozen=True)
class ClusterRunResult:
run_id: str
k: int
sample_size: int
inertia: float
silhouette_score: float | None
status: str
@dataclass(frozen=True)
class ClusterStatus:
active_run_id: str | None
k: int | None
sample_size: int | None
silhouette_score: float | None
activated_at: str | None
@dataclass(frozen=True)
class ClusterRunDetail:
run_id: str
status: str
k: int
sample_size: int
inertia: float | None
silhouette_score: float | None
started_at: str
completed_at: str | None
activated_at: str | None
error_message: str | None