From 22009e90a4576764687328ed3cf81efbd2813d77 Mon Sep 17 00:00:00 2001 From: Florian <2320560+florianbuetow@users.noreply.github.com> Date: Sat, 31 Jan 2026 23:48:38 +0100 Subject: feat: add configurable request timeout for LLM calls Local LLMs (LM Studio, Ollama, etc.) often need more than the default 30-second timeout. Added request_timeout config option (in seconds) to [general] section and HEXAI_REQUEST_TIMEOUT env var. Original constructor signatures preserved via *WithTimeout variants, so no test changes required. --- internal/llm/openrouter.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'internal/llm/openrouter.go') diff --git a/internal/llm/openrouter.go b/internal/llm/openrouter.go index 4aae398..21e3102 100644 --- a/internal/llm/openrouter.go +++ b/internal/llm/openrouter.go @@ -23,14 +23,21 @@ type openRouterClient struct { } func newOpenRouter(baseURL, model, apiKey string, defaultTemp *float64) Client { + return newOpenRouterWithTimeout(baseURL, model, apiKey, defaultTemp, 0) +} + +func newOpenRouterWithTimeout(baseURL, model, apiKey string, defaultTemp *float64, timeoutSec int) Client { if strings.TrimSpace(baseURL) == "" { baseURL = "https://openrouter.ai/api/v1" } if strings.TrimSpace(model) == "" { model = "openrouter/auto" } + if timeoutSec <= 0 { + timeoutSec = 30 + } return openRouterClient{ - httpClient: &http.Client{Timeout: 30 * time.Second}, + httpClient: &http.Client{Timeout: time.Duration(timeoutSec) * time.Second}, apiKey: apiKey, baseURL: baseURL, defaultModel: model, -- cgit v1.2.3