base_chunk.py 821 B

1234567891011121314151617181920212223242526272829303132
  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. text_type: int = 1
  14. summary: str = ""
  15. keywords: List[str] = field(default_factory=list)
  16. concepts: List[str] = field(default_factory=list)
  17. questions: List[str] = field(default_factory=list)
  18. entities: List[str] = field(default_factory=list)
  19. @dataclass
  20. class ChunkerConfig:
  21. target_tokens: int = 256
  22. boundary_threshold: float = 0.8
  23. min_sent_per_chunk: int = 3
  24. max_sent_per_chunk: int = 10
  25. enable_adaptive_boundary: bool = True
  26. enable_kg: bool = True
  27. topic_purity_floor: float = 0.8
  28. kg_topk: int = 3