From 4961aae1737b77ff77102d37bf5f37f31a43824e Mon Sep 17 00:00:00 2001 From: salmonik Date: Mon, 13 Jul 2026 17:21:21 +0200 Subject: fix assistant and senator Signed-off-by: salmonik --- src/events/mod.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/events') diff --git a/src/events/mod.rs b/src/events/mod.rs index 457ebcd..9a193d0 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -335,20 +335,22 @@ pub async fn handle_message( let is_mention = new_message.mentions_user_id(ctx.cache.current_user().id); let has_keyword = content_lower.contains(&data.config.assistant_keyword); - if (is_mention || has_keyword) && data.config.openrouter_api_key.is_some() { - let api_key = data.config.openrouter_api_key.clone().unwrap(); - let model = data.config.openrouter_model.clone().unwrap_or_else(|| { - "cognitivecomputations/dolphin-mistral-24b-venice-edition:free".into() - }); - - let client = crate::openrouter::OpenRouterClient::new(api_key, model); + if is_mention || has_keyword { + let (api_url, api_key, model) = data.config.resolve_llm(); + let client = crate::openrouter::OpenRouterClient::new(api_url, api_key, model); let assistant_prompt = lang::ASSISTANT_SYSTEM_PROMPT; + let bot_id = ctx.cache.current_user().id; let mut messages = Vec::new(); let mut current_msg = Some(new_message.clone()); for _ in 0..5 { if let Some(msg) = current_msg { - messages.push(("user".into(), msg.content.clone())); + let role = if msg.author.id == bot_id { + "assistant" + } else { + "user" + }; + messages.push((role.into(), msg.content.clone())); current_msg = match msg.message_reference.and_then(|r| r.message_id) { Some(ref_id) => msg.channel_id.message(ctx, ref_id).await.ok(), None => None, -- cgit v1.2.3