test_query_prompt_config.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. from pathlib import Path
  2. from content_agent.integrations.query_prompt_config import (
  3. DEFAULT_PROFILE,
  4. QUERY_PROMPTS_PATH,
  5. load_profile,
  6. )
  7. ROOT = Path(__file__).resolve().parents[1]
  8. def test_load_profile_reads_douyin_v1_from_json():
  9. profile = load_profile("douyin", "V1", root_dir=ROOT)
  10. assert profile["prompt_version"] == "query_variant.v1"
  11. assert profile["temperature"] == 0.4
  12. assert profile["max_tokens"] == 64
  13. assert profile["variants_per_seed"] == 1
  14. assert "generic_filter" in profile
  15. def test_load_profile_missing_file_returns_default(tmp_path):
  16. profile = load_profile("douyin", "V1", root_dir=tmp_path)
  17. assert profile == DEFAULT_PROFILE
  18. profile["temperature"] = 1.0
  19. assert DEFAULT_PROFILE["temperature"] == 0.4
  20. def test_load_profile_unknown_key_returns_default():
  21. assert load_profile("xhs", "V9", root_dir=ROOT) == DEFAULT_PROFILE
  22. def test_default_profile_matches_json_profile():
  23. assert load_profile("douyin", "V1", root_dir=ROOT) == DEFAULT_PROFILE
  24. def test_default_profile_preserves_prompt_sampling_evidence_and_generic_filter():
  25. profile = load_profile("douyin", "V1", root_dir=ROOT)
  26. assert QUERY_PROMPTS_PATH.as_posix() == "product_documents/配置/query_prompts.v1.json"
  27. assert profile["system"].startswith("You generate one concise Chinese short-video search query.")
  28. assert "{seed_term}" in profile["user"]
  29. assert "{evidence_context}" in profile["user"]
  30. assert profile["evidence_fields"] == [
  31. "seed_term",
  32. "seed_terms",
  33. "existing_search_queries",
  34. "source_field",
  35. "source_index",
  36. "itemset_items",
  37. "category_bindings",
  38. "element_bindings",
  39. "pattern_source_system",
  40. "pattern_execution_id",
  41. "mining_config_id",
  42. "source_post_id",
  43. "matched_post_ids",
  44. "itemset_ids",
  45. "support",
  46. "absolute_support",
  47. "confidence",
  48. ]
  49. assert profile["generic_filter"]["queries"] == [
  50. "内容",
  51. "视频",
  52. "热门",
  53. "推荐",
  54. "短视频",
  55. "热门视频",
  56. "推荐视频",
  57. "热门内容",
  58. "推荐内容",
  59. "相关视频",
  60. "相关内容",
  61. "热点视频",
  62. "热点内容",
  63. ]
  64. assert profile["generic_filter"]["tokens"] == [
  65. "短视频",
  66. "热门",
  67. "推荐",
  68. "相关",
  69. "热点",
  70. "内容",
  71. "视频",
  72. "素材",
  73. "资料",
  74. "信息",
  75. "话题",
  76. ]