Skip to content

fix(llm): remonte la cause réelle des échecs Gemini au lieu de « quota » - #60

Merged
ijdan merged 1 commit into
mainfrom
claude/gemini-quota-issue-w6h299
Aug 3, 2026
Merged

fix(llm): remonte la cause réelle des échecs Gemini au lieu de « quota »#60
ijdan merged 1 commit into
mainfrom
claude/gemini-quota-issue-w6h299

Conversation

@ijdan

@ijdan ijdan commented Aug 3, 2026

Copy link
Copy Markdown
Owner

La cascade LLM ne journalisait que le nom de la classe d'exception
(e.__class__.__name__), et tous les messages de repli affirmaient un
dépassement de quota. Résultat : un 404 (modèle introuvable), un 403 (API
non activée) ou une réponse tronquée étaient tous rapportés comme « hors
quota », y compris dans le rapport d'exécution — le prompt du rapport
suggérant lui-même « quota » comme cause probable.

  • _describe_llm_error : code HTTP + diagnostic + message brut de l'API.
    Le mot « quota » n'apparaît que sur un 429 effectivement reçu.
  • LLMCascadeError : porte le détail de chaque modèle essayé.
  • _extract_response_text : explicite les réponses sans texte
    (finish_reason, prompt_feedback) au lieu de l'erreur opaque de
    response.text.
  • Le repli « sans thinking » ne capture plus que le rejet client de
    thinking_config ; une erreur d'API n'est plus masquée par ce retry.
    Le SDK épinglé ne supportant pas ce champ, un avertissement le signale.
  • Prompt du rapport : recopier la cause exacte des logs, ne plus attribuer
    un échec au quota sans code 429.

Aligne les user stories 09/11/14 et l'aide de l'écran admin.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_014s387wqjrmhJ34u8js1otm

La cascade LLM ne journalisait que le nom de la classe d'exception
(`e.__class__.__name__`), et tous les messages de repli affirmaient un
dépassement de quota. Résultat : un 404 (modèle introuvable), un 403 (API
non activée) ou une réponse tronquée étaient tous rapportés comme « hors
quota », y compris dans le rapport d'exécution — le prompt du rapport
suggérant lui-même « quota » comme cause probable.

- `_describe_llm_error` : code HTTP + diagnostic + message brut de l'API.
  Le mot « quota » n'apparaît que sur un 429 effectivement reçu.
- `LLMCascadeError` : porte le détail de chaque modèle essayé.
- `_extract_response_text` : explicite les réponses sans texte
  (`finish_reason`, `prompt_feedback`) au lieu de l'erreur opaque de
  `response.text`.
- Le repli « sans thinking » ne capture plus que le rejet client de
  `thinking_config` ; une erreur d'API n'est plus masquée par ce retry.
  Le SDK épinglé ne supportant pas ce champ, un avertissement le signale.
- Prompt du rapport : recopier la cause exacte des logs, ne plus attribuer
  un échec au quota sans code 429.

Aligne les user stories 09/11/14 et l'aide de l'écran admin.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014s387wqjrmhJ34u8js1otm
@ijdan
ijdan merged commit f397dc4 into main Aug 3, 2026
3 checks passed
@ijdan
ijdan deleted the claude/gemini-quota-issue-w6h299 branch August 3, 2026 05:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant