summaryrefslogtreecommitdiffstats
path: root/src/config/mod.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-10-09 08:28:34 +0800
committerGitHub <noreply@github.com>2024-10-09 08:28:34 +0800
commita3e2c2a14718b4f23831cea9bce14ee4430dc90b (patch)
tree957cee02cd54edf030e630fee7d4bda8f1449294 /src/config/mod.rs
parent4bc74f7e9006fc7f182c9dc6ea309ea83c5bb4f9 (diff)
downloadaichat-a3e2c2a14718b4f23831cea9bce14ee4430dc90b.tar.gz
refactor: throw error if using non-exist RAG in CMD mode (#917)
Diffstat (limited to 'src/config/mod.rs')
-rw-r--r--src/config/mod.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs
index 8e3e2c3..33bde56 100644
--- a/src/config/mod.rs
+++ b/src/config/mod.rs
@@ -205,7 +205,7 @@ impl Default for Config {
agent: None,
model: Default::default(),
functions: Default::default(),
- working_mode: WorkingMode::Command,
+ working_mode: WorkingMode::Cmd,
last_message: None,
}
}
@@ -1199,6 +1199,9 @@ impl Config {
Some(name) => {
let rag_path = config.read().rag_file(name)?;
if !rag_path.exists() {
+ if config.read().working_mode.is_cmd() {
+ bail!("Unknown RAG '{name}'")
+ }
Rag::init(config, name, &rag_path, &[], abort_signal).await?
} else {
Rag::load(config, name, &rag_path)?
@@ -1376,7 +1379,7 @@ impl Config {
pub fn apply_prelude(&mut self) -> Result<()> {
let prelude = match self.working_mode {
- WorkingMode::Command => self.prelude.as_ref(),
+ WorkingMode::Cmd => self.prelude.as_ref(),
WorkingMode::Repl => self.repl_prelude.as_ref().or(self.prelude.as_ref()),
WorkingMode::Serve => return Ok(()),
};
@@ -2043,12 +2046,15 @@ pub fn load_env_file() -> Result<()> {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum WorkingMode {
- Command,
+ Cmd,
Repl,
Serve,
}
impl WorkingMode {
+ pub fn is_cmd(&self) -> bool {
+ *self == WorkingMode::Cmd
+ }
pub fn is_repl(&self) -> bool {
*self == WorkingMode::Repl
}