From 0aa93fa86da428b08bdc5dba77ca76d213322524 Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 13 Nov 2024 09:16:33 +0800 Subject: refactor: don't init agent RAG/variables when using `--info` (#989) --- src/config/agent.rs | 6 +++++- src/config/mod.rs | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/config') diff --git a/src/config/agent.rs b/src/config/agent.rs index e16e7a7..49d5835 100644 --- a/src/config/agent.rs +++ b/src/config/agent.rs @@ -66,7 +66,7 @@ impl Agent { let rag = if rag_path.exists() { Some(Arc::new(Rag::load(config, DEFAULT_AGENT_NAME, &rag_path)?)) - } else if !definition.documents.is_empty() { + } else if !definition.documents.is_empty() && !config.read().print_info_only { let mut ans = false; if *IS_STDOUT_TERMINAL { ans = Confirm::new("The agent has the documents, init RAG?") @@ -109,6 +109,7 @@ impl Agent { pub fn init_agent_variables( agent_variables: &[AgentVariable], variables: &IndexMap, + no_interaction: bool, ) -> Result> { let mut output = IndexMap::new(); if agent_variables.is_empty() { @@ -127,6 +128,9 @@ impl Agent { output.insert(key, value); continue; } + if no_interaction { + continue; + } if *IS_STDOUT_TERMINAL { if !printed { println!("⚙ Init agent variables..."); diff --git a/src/config/mod.rs b/src/config/mod.rs index aa0fe00..7c523c5 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -153,6 +153,8 @@ pub struct Config { #[serde(skip)] pub working_mode: WorkingMode, #[serde(skip)] + pub print_info_only: bool, + #[serde(skip)] pub last_message: Option<(Input, String)>, } @@ -212,6 +214,7 @@ impl Default for Config { model: Default::default(), functions: Default::default(), working_mode: WorkingMode::Cmd, + print_info_only: false, last_message: None, } } @@ -1860,8 +1863,11 @@ impl Config { Some(v) => v, None => return Ok(()), }; - let new_variables = - Agent::init_agent_variables(agent.defined_variables(), agent.config_variables())?; + let new_variables = Agent::init_agent_variables( + agent.defined_variables(), + agent.config_variables(), + self.print_info_only, + )?; agent.set_shared_variables(new_variables); Ok(()) } @@ -1878,7 +1884,11 @@ impl Config { shared_variables.clone() }; all_variables.extend(session.agent_variables().clone()); - let new_variables = Agent::init_agent_variables(agent.defined_variables(), &all_variables)?; + let new_variables = Agent::init_agent_variables( + agent.defined_variables(), + &all_variables, + self.print_info_only, + )?; if shared_variables.is_empty() { agent.set_shared_variables(new_variables.clone()); } -- cgit v1.2.3