diff options
| author | sigoden <sigoden@gmail.com> | 2024-07-01 20:19:41 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-01 20:19:41 +0800 |
| commit | 7c6dac061b2a33aae334c08b725e02459c5e9ade (patch) | |
| tree | 3c2067aaf80a24f988600b42aa12b647675bc383 /src/config/mod.rs | |
| parent | d193950d204ed82bdb3d6a3a111511d189f084bb (diff) | |
| download | aichat-7c6dac061b2a33aae334c08b725e02459c5e9ade.tar.gz | |
feat: support `.rebuild rag` repl command(#672)
Diffstat (limited to 'src/config/mod.rs')
| -rw-r--r-- | src/config/mod.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs index 879f511..25891bd 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -885,11 +885,23 @@ impl Config { Ok(()) } + pub async fn rebuild_rag(config: &GlobalConfig, abort_signal: AbortSignal) -> Result<()> { + let rag_name = match config.read().rag.clone() { + Some(v) => v.name().to_string(), + None => bail!("No RAG"), + }; + let rag_path = config.read().rag_file(&rag_name)?; + let mut rag = Rag::load(config, &rag_name, &rag_path)?; + rag.rebuild(config, &rag_path, abort_signal).await?; + config.write().rag = Some(Arc::new(rag)); + Ok(()) + } + pub fn rag_info(&self) -> Result<String> { if let Some(rag) = &self.rag { rag.export() } else { - bail!("No rag") + bail!("No RAG") } } |
