| 123456789101112131415161718192021222324252627282930313233343536373839 |
- from typing import List, Dict, Optional
- from pydantic import BaseModel, Field
- from pydantic import ConfigDict
- class ActivityThresholds(BaseModel):
- """活跃度阈值配置"""
- extreme_active_recent_7d: int = Field(default=15, description="极高活跃:近7天发布阈值")
- high_active_recent_7d: int = Field(default=8, description="高活跃:近7天发布阈值")
- medium_active_recent_7d: int = Field(default=3, description="中活跃:近7天发布阈值")
- low_active_recent_7d: int = Field(default=1, description="低活跃:近7天发布阈值")
- dormant_recent_30d: int = Field(default=1, description="休眠:近30天发布阈值")
- new_user_total: int = Field(default=0, description="新用户:总视频数阈值")
- class ActivityLevel(BaseModel):
- """活跃度等级配置"""
- label: str = Field(description="活跃度标签")
- priority: int = Field(description="优先级")
- class ActivityLevels(BaseModel):
- """活跃度等级映射"""
- new_user: ActivityLevel = Field(default=ActivityLevel(label="新用户", priority=0))
- extreme_active: ActivityLevel = Field(default=ActivityLevel(label="极高活跃", priority=1))
- high_active: ActivityLevel = Field(default=ActivityLevel(label="高活跃", priority=2))
- medium_active: ActivityLevel = Field(default=ActivityLevel(label="中活跃", priority=3))
- low_active: ActivityLevel = Field(default=ActivityLevel(label="低活跃", priority=4))
- dormant: ActivityLevel = Field(default=ActivityLevel(label="休眠", priority=5))
- zombie: ActivityLevel = Field(default=ActivityLevel(label="僵尸", priority=6))
- class ActivityCalculatorConfig(BaseModel):
- """活跃度计算器配置"""
- platforms: List[str] = Field(default=["xiaoniangao", "zhongqingkandian"], description="要分析的平台列表")
- activity_thresholds: ActivityThresholds = Field(default=ActivityThresholds(), description="活跃度阈值配置")
- activity_levels: ActivityLevels = Field(default=ActivityLevels(), description="活跃度等级配置")
-
- model_config = ConfigDict(extra='forbid') # 使用V2兼容的方式
|