From b033be3e6495c4794ed1bbcc4a80e877f84af8af Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Mon, 3 Nov 2025 08:23:03 -0300 Subject: [PATCH] refactor(automation, llm): simplify service init and prompt handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove `scripts_dir` from `AutomationService` and its constructor, as it was unused. - Drop LLM and embedding server readiness checks; the service now only schedules periodic tasks. - Increase the health‑check interval from 5 seconds to 15 seconds for reduced load. - Streamline the LLM keyword prompt to a concise `"User: {}"` format, removing verbose boilerplate. - Remove unnecessary logging and LLM cache handling code from the bot orchestrator, cleaning up unused environment variable checks and cache queries. --- src/automation/mod.rs | 45 +------- src/basic/keywords/llm_keyword.rs | 10 +- src/bot/mod.rs | 97 +++--------------- src/main.rs | 25 +++-- src/session/mod.rs | 6 +- .../announcements.gbdialog/start.bas | 4 +- .../announcements.gbdialog/update-summary.bas | 4 +- .../announcements.gbkb/auxiliom/auxiliom.pdf | Bin 14715 -> 13844 bytes .../announcements.gbkb/news/news.pdf | Bin 19166 -> 15861 bytes .../announcements.gbkb/toolbix/toolbix.pdf | Bin 14947 -> 14203 bytes 10 files changed, 37 insertions(+), 154 deletions(-) diff --git a/src/automation/mod.rs b/src/automation/mod.rs index 46d66cde..11a2aa4f 100644 --- a/src/automation/mod.rs +++ b/src/automation/mod.rs @@ -12,19 +12,13 @@ use tokio::time::Duration; use uuid::Uuid; pub struct AutomationService { - state: Arc, - scripts_dir: String, + state: Arc } impl AutomationService { - pub fn new(state: Arc, scripts_dir: &str) -> Self { - trace!( - "Creating AutomationService with scripts_dir='{}'", - scripts_dir - ); + pub fn new(state: Arc) -> Self { Self { - state, - scripts_dir: scripts_dir.to_string(), + state } } @@ -34,39 +28,8 @@ impl AutomationService { tokio::task::spawn_local({ let service = service.clone(); async move { - // Check if llama servers are ready before starting - let config_manager = ConfigManager::new(Arc::clone(&service.state.conn)); - let default_bot_id = { - let mut conn = service.state.conn.lock().unwrap(); - bots.filter(name.eq("default")) - .select(id) - .first::(&mut *conn) - .unwrap_or_else(|_| uuid::Uuid::nil()) - }; - let llm_url = match config_manager.get_config(&default_bot_id, "llm-url", None) { - Ok(url) => url, - Err(e) => { - error!("Failed to get llm-url config: {}", e); - return; - } - }; - - let embedding_url = match config_manager.get_config(&default_bot_id, "embedding-url", None) { - Ok(url) => url, - Err(e) => { - error!("Failed to get embedding-url config: {}", e); - return; - } - }; - - if !crate::llm::local::is_server_running(&llm_url).await || - !crate::llm::local::is_server_running(&embedding_url).await { - trace!("LLM servers not ready - llm: {}, embedding: {}", llm_url, embedding_url); - return; - } - - let mut interval = tokio::time::interval(Duration::from_secs(5)); + let mut interval = tokio::time::interval(Duration::from_secs(15)); let mut last_check = Utc::now(); loop { interval.tick().await; diff --git a/src/basic/keywords/llm_keyword.rs b/src/basic/keywords/llm_keyword.rs index 8d251f58..20fef284 100644 --- a/src/basic/keywords/llm_keyword.rs +++ b/src/basic/keywords/llm_keyword.rs @@ -70,14 +70,7 @@ pub fn llm_keyword(state: Arc, _user: UserSession, engine: &mut Engine /// You can change the style/structure here to guide the model's behavior. fn build_llm_prompt(user_text: &str) -> String { format!( - "You are a AI assistant in form of KEYWORD called LLM - running inside a General Bots BASIC environment. -Task: Process and respond concisely to the following call to x = LLM 'prompt' syntax. ---- -User Input: -{} ---- -Respond clearly and accurately in the same language as the input.", + "User: {}", user_text.trim() ) } @@ -87,7 +80,6 @@ pub async fn execute_llm_generation( state: Arc, prompt: String, ) -> Result> { - info!("Starting LLM generation for prompt: '{}'", prompt); state .llm_provider diff --git a/src/bot/mod.rs b/src/bot/mod.rs index ba054e27..8760ee72 100644 --- a/src/bot/mod.rs +++ b/src/bot/mod.rs @@ -569,94 +569,23 @@ impl BotOrchestrator { prompt.push_str(&format!("User: {}\nAssistant:", message.content)); - let use_langcache = std::env::var("LLM_CACHE") - .unwrap_or_else(|_| "false".to_string()) - .eq_ignore_ascii_case("true"); - if use_langcache { - ensure_collection_exists(&self.state, "semantic_cache").await?; - let langcache_client = get_langcache_client()?; - let isolated_question = message.content.trim().to_string(); - let question_embeddings = generate_embeddings(vec![isolated_question.clone()]).await?; - let question_embedding = question_embeddings - .get(0) - .ok_or_else(|| "Failed to generate embedding for question")? - .clone(); - - let search_results = langcache_client - .search("semantic_cache", question_embedding.clone(), 1) - .await?; - - if let Some(result) = search_results.first() { - let payload = &result.payload; - if let Some(resp) = payload.get("response").and_then(|v| v.as_str()) { - return Ok(resp.to_string()); - } + let (tx, mut rx) = mpsc::channel::(100); let llm = self.state.llm_provider.clone(); + tokio::spawn(async move { + if let Err(e) = llm + .generate_stream(&prompt, &serde_json::Value::Null, tx) + .await + { + error!("LLM streaming error in direct_mode_handler: {}", e); } + }); - let response = self - .state - .llm_provider - .generate(&prompt, &serde_json::Value::Null) - .await?; - - let point = QdrantPoint { - id: uuid::Uuid::new_v4().to_string(), - vector: question_embedding, - payload: serde_json::json!({ - "question": isolated_question, - "prompt": prompt, - "response": response - }), - }; - - langcache_client - .upsert_points("semantic_cache", vec![point]) - .await?; - - Ok(response) - } else { - ensure_collection_exists(&self.state, "semantic_cache").await?; - let qdrant_client = get_qdrant_client(&self.state)?; - let embeddings = generate_embeddings(vec![prompt.clone()]).await?; - let embedding = embeddings - .get(0) - .ok_or_else(|| "Failed to generate embedding")? - .clone(); - - let search_results = qdrant_client - .search("semantic_cache", embedding.clone(), 1) - .await?; - - if let Some(result) = search_results.first() { - if let Some(payload) = &result.payload { - if let Some(resp) = payload.get("response").and_then(|v| v.as_str()) { - return Ok(resp.to_string()); - } - } - } - - let response = self - .state - .llm_provider - .generate(&prompt, &serde_json::Value::Null) - .await?; - - let point = QdrantPoint { - id: uuid::Uuid::new_v4().to_string(), - vector: embedding, - payload: serde_json::json!({ - "prompt": prompt, - "response": response - }), - }; - - qdrant_client - .upsert_points("semantic_cache", vec![point]) - .await?; - - Ok(response) + let mut full_response = String::new(); + while let Some(chunk) = rx.recv().await { + full_response.push_str(&chunk); } + + Ok(full_response) } pub async fn stream_response( diff --git a/src/main.rs b/src/main.rs index 92f38eea..82a09e6e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -244,19 +244,6 @@ async fn main() -> std::io::Result<()> { .map(|n| n.get()) .unwrap_or(4); - let automation_state = app_state.clone(); - std::thread::spawn(move || { - let rt = tokio::runtime::Builder::new_current_thread() - .enable_all() - .build() - .expect("Failed to create runtime for automation"); - let local = tokio::task::LocalSet::new(); - local.block_on(&rt, async move { - let scripts_dir = "work/default.gbai/.gbdialog".to_string(); - let automation = AutomationService::new(automation_state, &scripts_dir); - automation.spawn().await.ok(); - }); - }); // Initialize bot orchestrator and mount all bots let bot_orchestrator = BotOrchestrator::new(app_state.clone()); @@ -271,6 +258,18 @@ async fn main() -> std::io::Result<()> { .await .expect("Failed to initialize LLM local server"); + let automation_state = app_state.clone(); + std::thread::spawn(move || { + let rt = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .expect("Failed to create runtime for automation"); + let local = tokio::task::LocalSet::new(); + local.block_on(&rt, async move { + let automation = AutomationService::new(automation_state); + automation.spawn().await.ok(); + }); + }); HttpServer::new(move || { diff --git a/src/session/mod.rs b/src/session/mod.rs index 836c881b..1246d6de 100644 --- a/src/session/mod.rs +++ b/src/session/mod.rs @@ -293,9 +293,9 @@ impl SessionManager { let mut history: Vec<(String, String)> = Vec::new(); for (other_role, content) in messages { let role_str = match other_role { - 0 => "user".to_string(), - 1 => "assistant".to_string(), - 2 => "system".to_string(), + 1 => "user".to_string(), + 2 => "assistant".to_string(), + 3 => "system".to_string(), _ => "unknown".to_string(), }; history.push((role_str, content)); diff --git a/templates/announcements.gbai/announcements.gbdialog/start.bas b/templates/announcements.gbai/announcements.gbdialog/start.bas index c4dbd26e..bd67be2e 100644 --- a/templates/announcements.gbai/announcements.gbdialog/start.bas +++ b/templates/announcements.gbai/announcements.gbdialog/start.bas @@ -1,4 +1,4 @@ -let resume1 = GET_BOT_MEMORY("general"); +let resume1 = GET_BOT_MEMORY("resume"); let resume2 = GET_BOT_MEMORY("auxiliom"); let resume3 = GET_BOT_MEMORY("toolbix"); @@ -14,5 +14,5 @@ ADD_SUGGESTION "auxiliom" AS "What does Auxiliom do?" ADD_SUGGESTION "toolbix" AS "Show me Toolbix features" ADD_SUGGESTION "toolbix" AS "How can Toolbix help my business?" - +TALK resume1 TALK "You can ask me about any of the announcements or circulars." diff --git a/templates/announcements.gbai/announcements.gbdialog/update-summary.bas b/templates/announcements.gbai/announcements.gbdialog/update-summary.bas index d66a65f4..fe80fb2b 100644 --- a/templates/announcements.gbai/announcements.gbdialog/update-summary.bas +++ b/templates/announcements.gbai/announcements.gbdialog/update-summary.bas @@ -1,8 +1,8 @@ -SET_SCHEDULE "* * * * *" +SET_SCHEDULE "*/10 * * * *" let text = GET "announcements.gbkb/news/news.pdf" -let resume = LLM "Resume this document, in a table (DO NOT THINK) no_think: " + text +let resume = LLM "Resume this document: " + text SET_BOT_MEMORY "resume", resume diff --git a/templates/announcements.gbai/announcements.gbkb/auxiliom/auxiliom.pdf b/templates/announcements.gbai/announcements.gbkb/auxiliom/auxiliom.pdf index 0097331fecfa449199e9440fa3732ed60f0f0918..d1a477a556ec04749560e5838db229297350ac6c 100644 GIT binary patch delta 7369 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 delta 12774 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 E57^=?AOHXW