diff --git a/botserver/src/llm/claude.rs b/botserver/src/llm/claude.rs index bec15736..0c7c145e 100644 --- a/botserver/src/llm/claude.rs +++ b/botserver/src/llm/claude.rs @@ -382,7 +382,11 @@ impl ClaudeClient { tx: mpsc::Sender, model_name: &str, ) -> Result<(), Box> { - let url = format!("{}/v1/messages", self.base_url.trim_end_matches('/')); + let url = if self.base_url.contains("/v1/messages") || self.base_url.contains("/messages") { + self.base_url.clone() + } else { + format!("{}/v1/messages", self.base_url.trim_end_matches('/')) + }; let start_time = Instant::now(); trace!( @@ -659,7 +663,11 @@ impl LLMProvider for ClaudeClient { trace!("CLAUDE request: model={}, body_len={}", model_name, body.len()); let start = Instant::now(); - let url = format!("{}/v1/messages", self.base_url.trim_end_matches('/')); + let url = if self.base_url.contains("/v1/messages") || self.base_url.contains("/messages") { + self.base_url.clone() + } else { + format!("{}/v1/messages", self.base_url.trim_end_matches('/')) + }; // Use reqwest for non-streaming let client = reqwest::Client::builder()