27 lines
4.3 KiB
Markdown
27 lines
4.3 KiB
Markdown
# redaction-pro : panne générale de connectivité + refonte du catalogue de modèles (11/09/2026)
|
|
|
|
## Symptôme signalé
|
|
Nabil : "presque rien ne fonctionne dans cette API" concernant les modèles gratuits de redaction-pro (llm.bolbol.tn).
|
|
|
|
## Cause racine (pas un problème de modèles)
|
|
`nginx.conf` de redaction-pro pointait vers un hostname Docker (`bifrost`, port 8080) qui n'existe plus depuis la migration de Bifrost vers le VPS. Ce stub a été décommissionné (nettoyage prévu par le ticket infra-2026-09-030) sans que redaction-pro soit migré vers le relais actuel (`bifrost-proxy`, socat vers le VPS via Tailscale). Résultat : **100% des appels via `/api/` échouaient (502)**, indépendamment du modèle choisi — les seuls modèles qui fonctionnaient encore étaient les 3 Cloudflare Workers AI, qui appellent Cloudflare directement sans passer par Bifrost.
|
|
|
|
## Corrections apportées
|
|
|
|
**1. nginx.conf** — `set $bifrost_upstream` repointé de `http://bifrost:8080` vers `http://bifrost-proxy:80`, header d'auth changé de `x-bf-vk` vers `Authorization: Bearer <vk>` (bifrost-proxy n'accepte pas x-bf-vk, piège déjà documenté). Nouveau bloc `/api/ocfree/` ajouté : appel direct et keyless vers `https://opencode.ai/zen/v1/` (tier gratuit OpenCode Zen, header `x-opencode-session` statique) — donne accès à `mimo-v2.5-free`, immunisé au quota du compte OpenCode Go payant.
|
|
|
|
**Piège rencontré** : `nginx.conf` était monté en bind-mount **fichier unique** dans le conteneur (pas un dossier). Un premier correctif fait via `rm` + recréation a laissé le conteneur sur l'ancien contenu (l'inode du bind-mount fichier reste épinglé à l'ancien fichier). `nginx -s reload` n'a rien changé non plus. Un `docker restart` complet a été nécessaire pour que le nouveau bind-mount prenne. À l'inverse, `html/` est monté en dossier — `rm`+recréation d'un fichier à l'intérieur fonctionne sans problème, pas de restart requis pour du contenu statique.
|
|
|
|
**2. index.html** — audit complet des 18 modèles listés, chacun testé en direct via le vrai chemin `/api/` de l'app (pas une supposition) :
|
|
- Cloudflare (3), Groq (2), Google AI Studio (2) : tous confirmés fonctionnels, inchangés dans leur logique, juste reclassés en tête.
|
|
- Nouveau : `ocfree/mimo-v2.5-free` ajouté (voir ci-dessus), avec la logique de routing JS étendue (`isOCFree`, prefixe `ocfree/`) symétrique à celle déjà en place pour `cf/`.
|
|
- Les 5 modèles OpenCode Go (hy3, deepseek-v4-flash, glm-5.2, kimi-k2.6, mimo-v2.5) sont retombés en 429 "Monthly usage limit reached" pendant l'audit (le forfait signalé à 99,6% la veille a fini par s'épuiser complètement) -- laissés dans la liste (pas `disabled`, ils redeviendront utilisables tout seuls au renouvellement sous ~1 jour) mais reclassés après les options garanties disponibles, avec description à jour.
|
|
- Les entrées déjà marquées indisponibles ont été revérifiées : `google/gemma-4-12b-it` toujours 404 (mort), les 3 modèles OpenRouter payants toujours 403 (bloqués VK). Les 2 modèles OpenRouter "gratuits" (Nemotron Nano/Super via NIM-label mais réellement routés OpenRouter) échouent en 502 à cause du bug Bifrost→OpenRouter documenté le 11/09/2026 (voir runbook urgence-llm-gratuits-fallback-20260911.md) -- désormais marqués `disabled` avec la raison exacte (panne infra, pas le modèle).
|
|
- Modèle par défaut du mode "memo" changé de `opencode/deepseek-v4-flash` (bloqué par le quota épuisé) vers `groq/openai/gpt-oss-120b` (rapide, fiable, confirmé). `ocfree/mimo-v2.5-free` envisagé comme défaut mais écarté : rate-limit réel observé en direct (429 "FreeUsageLimitError") sur un tier gratuit destiné à un usage ponctuel, pas comme modèle par défaut d'un mode à fort trafic -- laissé disponible dans la liste comme option manuelle.
|
|
|
|
Backups : `nginx.conf.bak-20260911-urgence`, `nginx.conf.bak-20260911-ocfree`, `html/index.html.bak-20260911-urgence`.
|
|
|
|
## Reste à faire
|
|
- Revoir demain (une fois le quota OpenCode Go renouvelé) que les 5 modèles opencode/* refonctionnent normalement, retirer les mentions "quota épuisé" de leur description.
|
|
- Le bug Bifrost→OpenRouter (routage cassé, cf. runbook du 11/09) reste la cause des 2 entrées Nemotron désactivées -- se résoudra automatiquement une fois ce bug traité, à revérifier à ce moment-là.
|