1
0

search_models.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. """搜索意图数据模型 —— SearchIntent 及检索参数的数据结构定义."""
  2. from __future__ import annotations
  3. from dataclasses import dataclass, field
  4. @dataclass
  5. class SearchIntent:
  6. query: str = ""
  7. raw_user_message: str = ""
  8. keywords: list[str] = field(default_factory=list)
  9. authors: list[str] = field(default_factory=list)
  10. venues: list[str] = field(default_factory=list)
  11. year_from: int | None = None
  12. year_to: int | None = None
  13. sort: str = "relevance"
  14. max_results: int = 10
  15. target_titles: list[str] = field(default_factory=list)
  16. target_authors: list[str] = field(default_factory=list)
  17. arxiv_categories: list[str] = field(default_factory=list)
  18. arxiv_id_list: list[str] = field(default_factory=list)
  19. use_llm_rank: bool = True
  20. rerank_recall_max: int = 24
  21. ranking_rationale: str = ""
  22. is_short_acronym: bool = False
  23. wants_classic: bool = False
  24. wants_recent: bool = False
  25. use_tavily: bool | None = None
  26. confidence_level: str = "medium"
  27. search_strategy: str = "hybrid"
  28. sources: list[str] = field(default_factory=list)
  29. ranking_strategy: str = "hybrid"
  30. main_conference_proceedings_only: bool = False
  31. __all__ = [
  32. "SearchIntent",
  33. ]