base_chunk.py 796 B

123456789101112131415161718192021222324252627282930
  1. from typing import List, Dict, Any
  2. from dataclasses import dataclass, field, asdict
  3. @dataclass
  4. class Chunk:
  5. chunk_id: int
  6. doc_id: str
  7. text: str
  8. tokens: int
  9. topic: str = ""
  10. domain: str = ""
  11. task_type: str = ""
  12. topic_purity: float = 1.0
  13. summary: str = ""
  14. keywords: List[str] = field(default_factory=list)
  15. concepts: List[str] = field(default_factory=list)
  16. questions: List[str] = field(default_factory=list)
  17. entities: List[str] = field(default_factory=list)
  18. @dataclass
  19. class ChunkerConfig:
  20. target_tokens: int = 256
  21. boundary_threshold: float = 0.8
  22. min_sent_per_chunk: int = 3
  23. max_sent_per_chunk: int = 10
  24. enable_adaptive_boundary: bool = True
  25. enable_kg: bool = True
  26. topic_purity_floor: float = 0.8
  27. kg_topk: int = 3