diff --git a/_INDEX.md b/_INDEX.md index d20ffac..fe8a8af 100644 --- a/_INDEX.md +++ b/_INDEX.md @@ -285,3 +285,4 @@ - [common/piege-virtual-key-nabil-key-bifrost-hermes-20260904.md](common/piege-virtual-key-nabil-key-bifrost-hermes-20260904.md) -- Piège clé virtuelle Nabil-Key (bfk-0cd1fb...) vs clés dédiées Hermes : fuite budgétaire 8 $/mois, audit exhaustif de la flotte NAS (perso/tt/nyora), détection et correction chirurgicale de la fuite résiduelle vision perso (ligne 134 config.yaml), et validation par inférences réelles de bout en bout (04/09/2026) - [common/urgence-llm-gratuits-fallback-20260911.md](common/urgence-llm-gratuits-fallback-20260911.md) -- Chantier "Urgence" (forfait OpenCode Go a 99.6%) : selection de LLM gratuits multi-source par assistant, taguee -OC (OpenCode Zen keyless, mimo-v2.5-free) / -OR (OpenRouter, nex-agi/nex-n2.5-pro:free) / -GQ (Groq, openai/gpt-oss-120b) / -NV (NVIDIA NIM, nemotron-3-super-120b-a12b). Deploye sur les 4 Hermes (fallback corrige, pointait vers le meme forfait epuise), DSH, openclaw-perso, opencode natif VPS. Decouverte : ~moitie des modeles gratuits deja whitelistes etaient morts (catalogues OR/Groq tournent vite). BUG NON CORRIGE decouvert au passage : Bifrost -> OpenRouter casse pour tout modele (fasthttp small read buffer), impacte aussi la vision en prod (openrouter/google/gemini-2.5-flash, OCR gsparc-mezzouna/nyora-convert-api) (11/09/2026) +- [common/redaction-pro-panne-connectivite-refonte-modeles-20260911.md](common/redaction-pro-panne-connectivite-refonte-modeles-20260911.md) -- redaction-pro (llm.bolbol.tn) : panne generale (100% des appels en 502) causee par un hostname Bifrost decommissionne dans nginx.conf, pas par les modeles -- corrige (relais bifrost-proxy + Authorization Bearer, piege bind-mount fichier vs dossier documente). Ajout d'une voie OpenCode Zen keyless (/api/ocfree/, mimo-v2.5-free, immunisee au quota OpenCode Go). Catalogue des 18 modeles reaudite en direct et reclasse (fonctionnels verifies en tete, quota OpenCode Go epuise signale distinctement du bug Bifrost->OpenRouter deja connu). Defaut du mode memo change vers Groq (rate-limit reel observe sur le tier gratuit keyless) (11/09/2026) diff --git a/common/redaction-pro-panne-connectivite-refonte-modeles-20260911.md b/common/redaction-pro-panne-connectivite-refonte-modeles-20260911.md new file mode 100644 index 0000000..a02e77f --- /dev/null +++ b/common/redaction-pro-panne-connectivite-refonte-modeles-20260911.md @@ -0,0 +1,26 @@ +# 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 ` (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à. diff --git a/hermes-nyora/redaction-pro-panne-connectivite-refonte-modeles-20260911.md b/hermes-nyora/redaction-pro-panne-connectivite-refonte-modeles-20260911.md new file mode 100644 index 0000000..a02e77f --- /dev/null +++ b/hermes-nyora/redaction-pro-panne-connectivite-refonte-modeles-20260911.md @@ -0,0 +1,26 @@ +# 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 ` (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à.