cold_start.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. from pydantic import Field
  2. from pydantic_settings import BaseSettings, SettingsConfigDict
  3. from typing import Dict
  4. class ColdStartConfig(BaseSettings):
  5. """冷启动配置"""
  6. # 分类映射
  7. cold_start_category_map: Dict[str, str] = Field(
  8. default_factory=lambda: {
  9. "知识科普": "20250813032110801233225",
  10. "国家大事": "20250813032845706844854",
  11. "历史人物": "20250813033415138644740",
  12. "奇闻趣事": "20250813033056703155233",
  13. "名人八卦": "20250813033257335290696",
  14. "怀旧时光": "20250813033536622149424",
  15. "情感故事": "20250813033605574986309",
  16. "社会法治": "20250813033829272898432",
  17. "现代人物": "20250813034015084388155",
  18. "社会现象": "20250813034056506771309",
  19. "健康养生": "20250813034120792523588",
  20. "家长里短": "20250813034159621236902",
  21. "军事历史": "20250813034227997109122",
  22. "财经科技": "20250813034253336624837",
  23. "政治新闻": "20250813034320561348119",
  24. }
  25. )
  26. # 输入源映射
  27. input_source_map: Dict[str, int] = Field(
  28. default_factory=lambda: {"weixin": 5, "toutiao": 6}
  29. )
  30. # 冷启动分品类阈值
  31. category_threshold_map: Dict[str, Dict[str, float]] = {
  32. "知识科普": {
  33. "num": 100,
  34. "read_threshold": 500,
  35. "read_times_threshold": 1.3,
  36. },
  37. "军事历史": {
  38. "num": 50,
  39. "read_threshold": 500,
  40. "read_times_threshold": 1.3,
  41. },
  42. "家长里短": {
  43. "num": 100,
  44. "read_threshold": 500,
  45. "read_times_threshold": 1.3,
  46. },
  47. "社会法治": {
  48. "num": 100,
  49. "read_threshold": 500,
  50. "read_times_threshold": 1.3,
  51. },
  52. "奇闻趣事": {
  53. "num": 150,
  54. "read_threshold": 500,
  55. "read_times_threshold": 1.4,
  56. },
  57. "名人八卦": {
  58. "num": 200,
  59. "read_threshold": 3000,
  60. "read_times_threshold": 1.4,
  61. },
  62. "健康养生": {
  63. "num": 100,
  64. "read_threshold": 500,
  65. "read_times_threshold": 1.3,
  66. },
  67. "情感故事": {
  68. "num": 200,
  69. "read_threshold": 500,
  70. "read_times_threshold": 1.3,
  71. },
  72. "国家大事": {
  73. "num": 200,
  74. "read_threshold": 3000,
  75. "read_times_threshold": 1.3,
  76. },
  77. "现代人物": {
  78. "num": 100,
  79. "read_threshold": 500,
  80. "read_times_threshold": 1.3,
  81. },
  82. "怀旧时光": {
  83. "num": 100,
  84. "read_threshold": 500,
  85. "read_times_threshold": 1.3,
  86. },
  87. "政治新闻": {
  88. "num": 100,
  89. "read_threshold": 500,
  90. "read_times_threshold": 1.3,
  91. },
  92. "历史人物": {
  93. "num": 100,
  94. "read_threshold": 500,
  95. "read_times_threshold": 1.3,
  96. },
  97. "社会现象": {
  98. "num": 200,
  99. "read_threshold": 500,
  100. "read_times_threshold": 1.3,
  101. },
  102. "财经科技": {
  103. "num": 100,
  104. "read_threshold": 500,
  105. "read_times_threshold": 1.3,
  106. },
  107. }
  108. model_config = SettingsConfigDict(
  109. env_prefix="COLD_START_", env_file=".env", case_sensitive=False, extra="ignore"
  110. )