from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict from typing import Dict class ColdStartConfig(BaseSettings): """冷启动配置""" # 分类映射 cold_start_category_map: Dict[str, str] = Field( default_factory=lambda: { "知识科普": "20250813032110801233225", "国家大事": "20250813032845706844854", "历史人物": "20250813033415138644740", "奇闻趣事": "20250813033056703155233", "名人八卦": "20250813033257335290696", "怀旧时光": "20250813033536622149424", "情感故事": "20250813033605574986309", "社会法治": "20250813033829272898432", "现代人物": "20250813034015084388155", "社会现象": "20250813034056506771309", "健康养生": "20250813034120792523588", "家长里短": "20250813034159621236902", "军事历史": "20250813034227997109122", "财经科技": "20250813034253336624837", "政治新闻": "20250813034320561348119", } ) # 输入源映射 input_source_map: Dict[str, int] = Field( default_factory=lambda: {"weixin": 5, "toutiao": 6} ) # 冷启动分品类阈值 category_threshold_map: Dict[str, Dict[str, float]] = { "知识科普": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "军事历史": { "num": 50, "read_threshold": 500, "read_times_threshold": 1.3, }, "家长里短": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "社会法治": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "奇闻趣事": { "num": 150, "read_threshold": 500, "read_times_threshold": 1.4, }, "名人八卦": { "num": 200, "read_threshold": 3000, "read_times_threshold": 1.4, }, "健康养生": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "情感故事": { "num": 200, "read_threshold": 500, "read_times_threshold": 1.3, }, "国家大事": { "num": 200, "read_threshold": 3000, "read_times_threshold": 1.3, }, "现代人物": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "怀旧时光": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "政治新闻": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "历史人物": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, "社会现象": { "num": 200, "read_threshold": 500, "read_times_threshold": 1.3, }, "财经科技": { "num": 100, "read_threshold": 500, "read_times_threshold": 1.3, }, } model_config = SettingsConfigDict( env_prefix="COLD_START_", env_file=".env", case_sensitive=False, extra="ignore" )