diff --git a/atlasbot/engine/answerer.py b/atlasbot/engine/answerer.py index bdbd511..ea72cec 100644 --- a/atlasbot/engine/answerer.py +++ b/atlasbot/engine/answerer.py @@ -77,6 +77,8 @@ class ModePlan: chunk_lines: int chunk_top: int chunk_group: int + kb_max_chars: int + kb_max_files: int parallelism: int score_retries: int use_deep_retrieval: bool @@ -335,7 +337,7 @@ class AnswerEngine: if observer: observer("retrieve", "scoring chunks") chunks = _chunk_lines(summary_lines, plan.chunk_lines) - kb_lines = self._kb.chunk_lines() if self._kb else [] + kb_lines = self._kb.chunk_lines(max_files=plan.kb_max_files, max_chars=plan.kb_max_chars) if self._kb else [] if kb_lines: kb_chunks = _chunk_lines(kb_lines, plan.chunk_lines) for idx, chunk in enumerate(kb_chunks): @@ -1135,6 +1137,8 @@ def _mode_plan(settings: Settings, mode: str) -> ModePlan: chunk_lines=6, chunk_top=10, chunk_group=4, + kb_max_chars=5000, + kb_max_files=18, parallelism=4, score_retries=3, use_deep_retrieval=True, @@ -1154,6 +1158,8 @@ def _mode_plan(settings: Settings, mode: str) -> ModePlan: chunk_lines=8, chunk_top=8, chunk_group=4, + kb_max_chars=3000, + kb_max_files=12, parallelism=2, score_retries=2, use_deep_retrieval=True, @@ -1172,6 +1178,8 @@ def _mode_plan(settings: Settings, mode: str) -> ModePlan: chunk_lines=12, chunk_top=5, chunk_group=5, + kb_max_chars=1200, + kb_max_files=6, parallelism=1, score_retries=1, use_deep_retrieval=False,