feat: improve generation analytics and maintenance
This commit is contained in:
@@ -220,21 +220,33 @@ class GenerationProviderStatResponse(BaseModel):
|
||||
estimated_cost_usd: float = 0.0
|
||||
|
||||
|
||||
class GenerationProviderFailureReasonResponse(BaseModel):
|
||||
"""Aggregated failed provider call reason."""
|
||||
|
||||
reason: str
|
||||
count: int
|
||||
|
||||
|
||||
class GenerationProviderStatsResponse(BaseModel):
|
||||
"""Provider call stats aggregated from generation job events."""
|
||||
|
||||
story_id: int
|
||||
window_days: int | None = None
|
||||
capability: str | None = None
|
||||
total_calls: int
|
||||
successful_calls: int
|
||||
failed_calls: int
|
||||
avg_latency_ms: float | None = None
|
||||
estimated_cost_usd: float = 0.0
|
||||
by_provider: list[GenerationProviderStatResponse] = Field(default_factory=list)
|
||||
failure_reasons: list[GenerationProviderFailureReasonResponse] = Field(default_factory=list)
|
||||
|
||||
|
||||
class GenerationProviderAnalyticsResponse(BaseModel):
|
||||
"""Provider call stats aggregated across one user's generation history."""
|
||||
|
||||
window_days: int | None = None
|
||||
capability: str | None = None
|
||||
total_calls: int
|
||||
successful_calls: int
|
||||
failed_calls: int
|
||||
@@ -243,6 +255,33 @@ class GenerationProviderAnalyticsResponse(BaseModel):
|
||||
job_count: int
|
||||
story_count: int
|
||||
by_provider: list[GenerationProviderStatResponse] = Field(default_factory=list)
|
||||
failure_reasons: list[GenerationProviderFailureReasonResponse] = Field(default_factory=list)
|
||||
|
||||
|
||||
class GenerationRecentFailureResponse(BaseModel):
|
||||
"""One recent failed generation task for operations summary."""
|
||||
|
||||
job_id: str
|
||||
story_id: int | None = None
|
||||
story_title: str | None = None
|
||||
output_mode: str
|
||||
current_step: str
|
||||
error_message: str | None = None
|
||||
failure_label: str
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class GenerationOpsSummaryResponse(BaseModel):
|
||||
"""Recent generation health summary for one user."""
|
||||
|
||||
window_hours: int
|
||||
stale_threshold_minutes: int
|
||||
active_jobs: int
|
||||
stale_running_jobs: int
|
||||
failed_jobs: int
|
||||
degraded_jobs: int
|
||||
asset_retry_jobs: int
|
||||
recent_failures: list[GenerationRecentFailureResponse] = Field(default_factory=list)
|
||||
|
||||
|
||||
class AchievementItem(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user