diff options
Diffstat (limited to 'src/config/mod.rs')
| -rw-r--r-- | src/config/mod.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs index 62ed28e..26c0bda 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -115,6 +115,8 @@ pub struct Config { pub rag_min_score_vector_search: f32, pub rag_min_score_keyword_search: f32, pub rag_min_score_rerank: f32, + #[serde(default)] + pub rag_document_loaders: HashMap<String, String>, pub rag_template: Option<String>, pub highlight: bool, @@ -174,6 +176,7 @@ impl Default for Config { rag_min_score_vector_search: 0.0, rag_min_score_keyword_search: 0.0, rag_min_score_rerank: 0.0, + rag_document_loaders: Default::default(), rag_template: None, save_session: None, @@ -229,6 +232,7 @@ impl Config { config.setup_model()?; config.setup_highlight(); config.setup_light_theme()?; + config.setup_rag_document_loaders(); Ok(config) } @@ -1440,6 +1444,19 @@ impl Config { }; Ok(()) } + + fn setup_rag_document_loaders(&mut self) { + [ + ("pdf", "pdftotext $1 -"), + ("docx", "pandoc --to plain $1"), + ("url", "curl -fsSL $1"), + ] + .into_iter() + .for_each(|(k, v)| { + let (k, v) = (k.to_string(), v.to_string()); + self.rag_document_loaders.entry(k).or_insert(v); + }); + } } #[derive(Debug, Clone, Deserialize, Default)] |
