_const.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from enum import StrEnum
  2. class MatchMethod(StrEnum):
  3. """匹配方式,由 demand 的 match_video_rule 字段推导"""
  4. TEXT = "text" # 文本检索 → /recallTest/matchByText
  5. VIDEO_ID = "video_id" # 以视频搜视频 → /recallTest/matchByVideoId
  6. CONTENT_ID = "content_id" # 以内容搜视频 → /videoSearch/matchTopNVideo
  7. class ConfigCode(StrEnum):
  8. """向量匹配维度"""
  9. VIDEO_TOPIC = "VIDEO_TOPIC"
  10. VIDEO_INSPIRATION = "VIDEO_INSPIRATION"
  11. VIDEO_KEYPOINT = "VIDEO_KEYPOINT"
  12. VIDEO_PURPOSE = "VIDEO_PURPOSE"
  13. class DemandSource(StrEnum):
  14. """需求来源类型"""
  15. PRIORI = "先验需求" # 只有文本描述
  16. POSTERIOR = "后验需求" # 有后验视频ID
  17. SCENE = "场景需求" # 有场景内容ID
  18. class DemandRecommendConst:
  19. """需求-视频匹配常量"""
  20. # ── 策略关键词 → configCode 映射 ──
  21. STRATEGY_CONFIG_MAP = {
  22. "灵感": ConfigCode.VIDEO_INSPIRATION,
  23. "创意": ConfigCode.VIDEO_INSPIRATION,
  24. "关键": ConfigCode.VIDEO_KEYPOINT,
  25. "要点": ConfigCode.VIDEO_KEYPOINT,
  26. "目的": ConfigCode.VIDEO_PURPOSE,
  27. "转化": ConfigCode.VIDEO_PURPOSE,
  28. }
  29. DEFAULT_CONFIG_CODE = ConfigCode.VIDEO_TOPIC
  30. # ── match_video_rule 关键词 → match_method 映射 ──
  31. RULE_METHOD_MAP = {
  32. "场景已看视频": MatchMethod.CONTENT_ID,
  33. "票圈推荐库-关键词": MatchMethod.TEXT,
  34. "票圈推荐库-向量": MatchMethod.VIDEO_ID,
  35. }
  36. # ── 默认值 ──
  37. DEFAULT_TOPN = 10
  38. MAX_WORKERS = 5 # 并发匹配 worker 数
  39. API_TIMEOUT = 30 # 匹配 API 超时(秒)
  40. # ── API 路径 ──
  41. BASE_URL = "http://api-internal.piaoquantv.com/videoVector"
  42. class ApiPath:
  43. MATCH_BY_TEXT = "/recallTest/matchByText"
  44. MATCH_BY_VIDEO_ID = "/recallTest/matchByVideoId"
  45. MATCH_TOP_N_VIDEO = "/videoSearch/matchTopNVideo"
  46. DECONSTRUCT = "/videoSearch/deconstruct"
  47. GET_DECONSTRUCT_RESULT = "/videoSearch/getDeconstructResult"
  48. GET_DECONSTRUCT_RESULT_MINI = "/videoSearch/getDeconstructResultMini"
  49. GET_ALL_CONFIG_CODES = "/videoSearch/getAllConfigCodes"
  50. RECALL_WITH_SCORE = "/videoSearch/recallWithScore"
  51. QUERY_DEMAND_MATCH_RESULT = "/videoSearch/queryDemandMatchResult"
  52. # ── 匹配结果表 ──
  53. MATCH_RESULT_TABLE = "demand_video_match"
  54. MATCH_RESULT_DB = "long_articles"