diff --git a/src/ai_typewriter/ai_client.py b/src/ai_typewriter/ai_client.py index 2783fd2..584aac8 100644 --- a/src/ai_typewriter/ai_client.py +++ b/src/ai_typewriter/ai_client.py @@ -34,6 +34,13 @@ def _ask_ollama(prompt: str, config: AppConfig) -> str: response = requests.post(url, json=payload, timeout=config.request_timeout_seconds) response.raise_for_status() data = response.json() + except requests.Timeout as exc: + timeout_label = "désactivé" if config.request_timeout_seconds is None else f"{config.request_timeout_seconds:.0f} s" + raise AIClientError( + "Ollama n'a pas répondu avant le délai configuré " + f"({timeout_label}). Le modèle est peut-être en chargement ou trop lent; " + "augmentez request_timeout_seconds dans config.json, ou mettez 0 pour désactiver le timeout." + ) from exc except requests.RequestException as exc: raise AIClientError(f"Erreur Ollama: {exc}") from exc except ValueError as exc: @@ -65,6 +72,13 @@ def _ask_gemini(prompt: str, config: AppConfig) -> str: ) response.raise_for_status() data = response.json() + except requests.Timeout as exc: + timeout_label = "désactivé" if config.request_timeout_seconds is None else f"{config.request_timeout_seconds:.0f} s" + raise AIClientError( + "Gemini n'a pas répondu avant le délai configuré " + f"({timeout_label}). Augmentez request_timeout_seconds dans config.json, " + "ou mettez 0 pour désactiver le timeout." + ) from exc except requests.RequestException as exc: raise AIClientError(f"Erreur Gemini: {exc}") from exc except ValueError as exc: