From 4540b3d527951030579b6dc1477f31d78a094c69 Mon Sep 17 00:00:00 2001 From: Pierre Martin Date: Mon, 7 Sep 2026 10:39:24 +0200 Subject: [PATCH] chore(ai): LM-Code route vers glm-5.3 24h/24 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - retire glm-5.2 (alias mort), kimi-k3 et qwen3.8-27b (off), deepseek-v4-flash (3 échecs consécutifs, à réajouter s'il revient) - LM-Code : 500k contexte, 128k sortie, vision activée (testés) - qwen3.8-flash-next : maxTokens 128k, rôle repli/tâches simples - ajoute glm-ocr (vision, 65k/8k) Annonces équipe IA LM du 07/09/2026, validées par micro-tests sur la passerelle (aucune grosse charge de contexte). --- programs/pi.nix | 110 ++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 65 deletions(-) diff --git a/programs/pi.nix b/programs/pi.nix index 6399390..760c56c 100644 --- a/programs/pi.nix +++ b/programs/pi.nix @@ -12,7 +12,11 @@ let pi = builtins.getFlake "github:lukasl-dev/pi.nix/1d37b58675b763ae6c9dc05d62321109066a4126"; # Passerelle LLM interne Lundi Matin (LiteLLM), même endpoint et même jeton - # que la fonction zsh `lmc`. Côté serveur, LM-Code route vers glm-5.2. + # que la fonction zsh `lmc`. Côté serveur, LM-Code route vers glm-5.3 servi + # 24h/24 depuis le 07/09/2026 (fin de la rotation jour GLM / nuit Kimi). + # Consigne équipe IA Lundi Matin (07/09/2026) : viser 100-300k de contexte + # par session et limiter le nombre d'agents en période de pic — le KV cache + # GLM 5.3 est la ressource rare. Ne pas tester la limite à 500k. lmcModels = (pkgs.formats.json { }).generate "pi-models.json" { providers.lundimatin = { baseUrl = "https://llm-core.lundimatin.app"; @@ -22,88 +26,64 @@ let # La passerelle renvoie des blocs thinking sans signature ; sans ça pi # les dégrade en texte au lieu de les rejouer. compat.allowEmptySignature = true; + + # Retirés le 07/09/2026 : glm-5.2 (redirection morte vers glm-5.3), + # kimi-k3 et qwen3.8-27b (off, confirmés), deepseek-v4-flash + # (3 échecs consécutifs, mêmes symptômes que 27b — réajouter s'il revient). models = [ { id = "LM-Code"; - name = "LM-Code (glm-5.2 — Lundi Matin)"; - # reasoning absent : la passerelle fallback sur deepseek côté serveur. + name = "LM-Code (glm-5.3 — Lundi Matin)"; + # Même comportement que qwen3.8-flash-next : envoyer le paramètre + # `thinking` supprime le bloc thinking côté passerelle (testé + # 07/09/2026). reasoning = false laisse pi ne pas l'envoyer : le + # modèle raisonne nativement et émet des blocs thinking à signature + # vide, gérés par compat.allowEmptySignature du provider. reasoning = false; - # Limite réelle mesurée via la passerelle LiteLLM (HTTP 400 ContextWindowExceededError). - contextWindow = 250000; - maxTokens = 64000; - } - { - id = "glm-5.2"; - name = "GLM 5.2 — Lundi Matin"; - # Ces alias directs ne passent pas par le shim anthropic de la - # passerelle : le paramètre `thinking` y déclenche un 400 - # (json_parse_error / ChatCompletionRequest). reasoning = false le - # retire des requêtes ; passer par LM-Code pour du thinking explicite. - reasoning = false; - # Alias direct, sans repli : servi de jour (8h-19h30), 500k de contexte. - # Hors plage de service, la passerelle renvoie une erreur claire. - contextWindow = 500000; - maxTokens = 64000; - } - { - id = "kimi-k3"; - name = "Kimi K3 — Lundi Matin"; - reasoning = false; - # Alias direct, sans repli : servi de nuit (20h-7h30), 500k de contexte. - contextWindow = 500000; - maxTokens = 64000; - } - { - id = "deepseek-v4-flash"; - name = "DeepSeek V4 Flash — Lundi Matin"; - reasoning = true; - # Limite réelle mesurée via la passerelle LiteLLM (HTTP 400 ContextWindowExceededError). - contextWindow = 262144; - maxTokens = 64000; - } - { - id = "qwen3.8-27b"; - name = "Qwen 3.8 27B (vision) — Lundi Matin"; - # reasoning = false : avec thinking.enabled la passerelle/vLLM supprime - # le bloc thinking (testé), donc on laisse pi ne pas envoyer le - # paramètre thinking. qwen raisonne alors nativement et emet des - # blocs thinking a signature vide (deja gere par - # compat.allowEmptySignature du provider). - reasoning = false; - # Modele vision : accepte les images (teste via l'endpoint anthropic - # /v1/messages, format image.source.base64). Reserve aux analyses - # d'image : basculer dessus via /model pour cet usage, ou via - # l'extension vision-proxy pour un routage automatique. + # Vision validée via l'endpoint anthropic /v1/messages (07/09/2026). input = [ "text" "image" ]; - # Limite reelle mesuree via la passerelle LiteLLM (HTTP 400 : - # "This model's maximum context length is 250000 tokens"). - contextWindow = 250000; - maxTokens = 64000; + # 500k annoncés côté Lundi Matin (07/09/2026), non re-testés pour + # ne pas charger le KV cache. + contextWindow = 500000; + # Annonce LM : « tous en 128k out » (07/09/2026) ; 128k testé OK. + # 256k est aussi accepté par la passerelle mais non retenu. + maxTokens = 128000; } { id = "qwen3.8-flash-next"; name = "Qwen 3.8 Flash Next (vision) — Lundi Matin"; - # Meme logique que qwen3.8-27b : thinking.enabled supprime le bloc - # thinking cote vLLM (teste), donc on laisse pi ne pas envoyer le - # parametre thinking. Le modele raisonne alors nativement et emet - # des blocs thinking a signature vide, deja geres par - # compat.allowEmptySignature du provider. + # thinking.enabled supprime le bloc thinking côté vLLM (re-testé + # 07/09/2026) : on laisse pi ne pas envoyer le paramètre thinking, + # le modèle raisonne nativement et émet des blocs thinking à + # signature vide, gérés par compat.allowEmptySignature. reasoning = false; - # Modele vision : 125B-A5B MoE multimodal (plus rapide et plus - # puissant que deepseek-v4-flash, qui reste 284B-A13B non multimodal). - # Bémol : contexte plafonne a 262k, comme deepseek-v4-flash, contre - # 500k pour glm-5.2 et kimi-k3. + # Vision re-validée 07/09/2026 (image base64 via /v1/messages). input = [ "text" "image" ]; - # Limite reelle mesuree via la passerelle LiteLLM (HTTP 400 - # ContextWindowExceededError a 262145 tokens). + # Repli serveur de LM-Code, mais 262k de contexte : pas un vrai + # fallback. Recommandé par LM pour les tâches simples, de manière + # proactive, afin d'alléger GLM 5.3 (07/09/2026). contextWindow = 262144; - maxTokens = 64000; + maxTokens = 128000; + } + { + id = "glm-ocr"; + name = "GLM OCR (vision) — Lundi Matin"; + # Spécialisé lecture d'images / OCR : basculer dessus via /model + # pour cet usage, ou via l'extension vision-proxy. + reasoning = false; + input = [ + "text" + "image" + ]; + # Vision et 8k out testés 07/09/2026 ; limites annoncées côté LM. + contextWindow = 65536; + maxTokens = 8192; } ]; };