fix: ollama provider ignores api_key parameter to prevent builder error

Ollama is a local service that doesn't use API keys - the api_key parameter is now ignored to prevent it being misinterpreted as base_url
This commit is contained in:
Argenis 2026-02-15 09:47:57 -05:00 committed by GitHub
parent 322f24fd63
commit 64a64ccd3a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -98,9 +98,9 @@ pub fn create_provider(name: &str, api_key: Option<&str>) -> anyhow::Result<Box<
"openrouter" => Ok(Box::new(openrouter::OpenRouterProvider::new(api_key))), "openrouter" => Ok(Box::new(openrouter::OpenRouterProvider::new(api_key))),
"anthropic" => Ok(Box::new(anthropic::AnthropicProvider::new(api_key))), "anthropic" => Ok(Box::new(anthropic::AnthropicProvider::new(api_key))),
"openai" => Ok(Box::new(openai::OpenAiProvider::new(api_key))), "openai" => Ok(Box::new(openai::OpenAiProvider::new(api_key))),
"ollama" => Ok(Box::new(ollama::OllamaProvider::new( // Ollama is a local service that doesn't use API keys.
api_key.filter(|k| !k.is_empty()), // The api_key parameter is ignored to avoid it being misinterpreted as a base_url.
))), "ollama" => Ok(Box::new(ollama::OllamaProvider::new(None))),
"gemini" | "google" | "google-gemini" => { "gemini" | "google" | "google-gemini" => {
Ok(Box::new(gemini::GeminiProvider::new(api_key))) Ok(Box::new(gemini::GeminiProvider::new(api_key)))
} }
@ -267,6 +267,9 @@ mod tests {
#[test] #[test]
fn factory_ollama() { fn factory_ollama() {
assert!(create_provider("ollama", None).is_ok()); assert!(create_provider("ollama", None).is_ok());
// Ollama ignores the api_key parameter since it's a local service
assert!(create_provider("ollama", Some("dummy")).is_ok());
assert!(create_provider("ollama", Some("any-value-here")).is_ok());
} }
#[test] #[test]