summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-07-01 20:19:41 +0800
committerGitHub <noreply@github.com>2024-07-01 20:19:41 +0800
commit7c6dac061b2a33aae334c08b725e02459c5e9ade (patch)
tree3c2067aaf80a24f988600b42aa12b647675bc383 /src/config
parentd193950d204ed82bdb3d6a3a111511d189f084bb (diff)
downloadaichat-7c6dac061b2a33aae334c08b725e02459c5e9ade.tar.gz
feat: support `.rebuild rag` repl command(#672)
Diffstat (limited to 'src/config')
-rw-r--r--src/config/mod.rs14
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")
}
}