feat(rag): wire RAG settings to Hook API and add simulation tests
This commit is contained in:
@@ -357,6 +357,11 @@ class AppController:
|
||||
'mma_epic_input': 'ui_epic_input',
|
||||
'mma_status': 'mma_status',
|
||||
'rag_status': 'rag_status',
|
||||
'rag_enabled': 'rag_enabled',
|
||||
'rag_source': 'rag_source',
|
||||
'rag_emb_provider': 'rag_emb_provider',
|
||||
'rag_chunk_size': 'rag_chunk_size',
|
||||
'rag_chunk_overlap': 'rag_chunk_overlap',
|
||||
'mma_active_tier': 'active_tier',
|
||||
'ui_new_track_name': 'ui_new_track_name',
|
||||
'ui_new_track_desc': 'ui_new_track_desc',
|
||||
@@ -498,6 +503,41 @@ class AppController:
|
||||
def thinking_indicator(self) -> bool:
|
||||
return self.ai_status in ("sending...", "streaming...")
|
||||
|
||||
@property
|
||||
def rag_enabled(self) -> bool:
|
||||
return self.rag_config.enabled if self.rag_config else False
|
||||
@rag_enabled.setter
|
||||
def rag_enabled(self, value: bool) -> None:
|
||||
if self.rag_config: self.rag_config.enabled = value
|
||||
|
||||
@property
|
||||
def rag_source(self) -> str:
|
||||
return self.rag_config.vector_store.provider if self.rag_config else 'mock'
|
||||
@rag_source.setter
|
||||
def rag_source(self, value: str) -> None:
|
||||
if self.rag_config: self.rag_config.vector_store.provider = value
|
||||
|
||||
@property
|
||||
def rag_emb_provider(self) -> str:
|
||||
return self.rag_config.embedding_provider if self.rag_config else 'gemini'
|
||||
@rag_emb_provider.setter
|
||||
def rag_emb_provider(self, value: str) -> None:
|
||||
if self.rag_config: self.rag_config.embedding_provider = value
|
||||
|
||||
@property
|
||||
def rag_chunk_size(self) -> int:
|
||||
return self.rag_config.chunk_size if self.rag_config else 1000
|
||||
@rag_chunk_size.setter
|
||||
def rag_chunk_size(self, value: int) -> None:
|
||||
if self.rag_config: self.rag_config.chunk_size = value
|
||||
|
||||
@property
|
||||
def rag_chunk_overlap(self) -> int:
|
||||
return self.rag_config.chunk_overlap if self.rag_config else 200
|
||||
@rag_chunk_overlap.setter
|
||||
def rag_chunk_overlap(self, value: int) -> None:
|
||||
if self.rag_config: self.rag_config.chunk_overlap = value
|
||||
|
||||
@property
|
||||
def operations_live_indicator(self) -> bool:
|
||||
return not self.is_viewing_prior_session
|
||||
@@ -526,6 +566,7 @@ class AppController:
|
||||
'btn_prune_logs': self.cb_prune_logs,
|
||||
'btn_reset_base_prompt': self._cb_reset_base_prompt,
|
||||
'btn_show_base_prompt_diff': self._cb_show_base_prompt_diff,
|
||||
'btn_rebuild_rag_index': self._rebuild_rag_index,
|
||||
}
|
||||
self._predefined_callbacks: dict[str, Callable[..., Any]] = {
|
||||
'_test_callback_func_write_to_file': self._test_callback_func_write_to_file,
|
||||
|
||||
Reference in New Issue
Block a user