diff --git a/pkg/providers/factory_provider.go b/pkg/providers/factory_provider.go index 155317a3b..14be375cd 100644 --- a/pkg/providers/factory_provider.go +++ b/pkg/providers/factory_provider.go @@ -84,12 +84,17 @@ func CreateProviderFromConfig(cfg *config.ModelConfig) (LLMProvider, string, err if apiBase == "" { apiBase = getDefaultAPIBase(protocol) } + // Special handling for Ollama models - extend timeout to 300 seconds + requestTimeout := cfg.RequestTimeout + if protocol == "ollama" && requestTimeout <= 0 { + requestTimeout = 300 + } return NewHTTPProviderWithMaxTokensFieldAndRequestTimeout( cfg.APIKey, apiBase, cfg.Proxy, cfg.MaxTokensField, - cfg.RequestTimeout, + requestTimeout, ), modelID, nil case "litellm", "openrouter", "groq", "zhipu", "gemini", "nvidia", @@ -103,12 +108,17 @@ func CreateProviderFromConfig(cfg *config.ModelConfig) (LLMProvider, string, err if apiBase == "" { apiBase = getDefaultAPIBase(protocol) } + // Special handling for Ollama models - extend timeout to 300 seconds + requestTimeout := cfg.RequestTimeout + if protocol == "ollama" && requestTimeout <= 0 { + requestTimeout = 300 + } return NewHTTPProviderWithMaxTokensFieldAndRequestTimeout( cfg.APIKey, apiBase, cfg.Proxy, cfg.MaxTokensField, - cfg.RequestTimeout, + requestTimeout, ), modelID, nil case "anthropic":