Repository navigation
Description
Demande pédagogique
Demande directe du mainteneur pendant le cours du 29 octobre 2026 : préparer la prochaine séance (vibe-coding, Semantic Kernel ou fine-tuning/post-training) en vérifiant comment utiliser nos outils depuis Google Colab, en priorité Claude Code CLI. Un groupe avait présenté un TP Claude-cli sans parvenir à le faire fonctionner dans Colab (rapporté par le mainteneur ; cause exacte à reproduire, non établie).
Livrable final obligatoire : les conclusions et la procédure réellement testée doivent être reportées dans le Google Doc privé de la promotion, pas seulement dans une PR ou cette issue. Le coordinateur détient le lien ; ne pas publier le lien privé ni les clés ici.
Points de départ vérifiés
- Série :
MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/, carnetsnotebooks/01-Claude-CLI-Bases.ipynbà05-Claude-CLI-Automatisation.ipynb. docs/OPENROUTER_SETUP.mdde cette série décrit actuellement un proxy local (ANTHROPIC_BASE_URL, processus Node.js) ; sa nécessité et sa compatibilité actuelles doivent être revérifiées, pas présumées depuis le texte historique.- PRs étudiantes liées à la série retrouvées : TP1 - 04-Claude-CLI-Agents : correction de l'exercice 1 (agent test_g… #18565 (agents) et TP MSAPP3IN08 : Lakhdar BOUTELAA - 05-Claude-CLI-Automatisation exercices 1, 2 et 3 (hooks commit/tests, changelog) #20990 (automatisation). Ces fils ne prouvent pas à eux seuls quel groupe a rencontré l'échec Colab. Retrouver le carnet/la trace précise si disponible, sans inventer l'attribution ni recopier de données personnelles.
- See GenAI/Texte sous Colab : la clé du module ne peut pas servir (OPENAI_API_KEY attendue, pas de .env, modèles hors liste) #23264 pour le chargement des Secrets Colab et la configuration OpenRouter des clients Python : réutiliser l'organe partagé lorsque pertinent, mais une recette
OPENAI_*n'est pas une preuve que Claude-cli fonctionne.
Investigation et réalisation
- Depuis un runtime Colab vierge réel, relever OS, Python, Node si requis, versions installées ; installer la CLI par une voie officiellement supportée et reproductible. Vérifier PATH et persistance entre cellules, puis après redémarrage du runtime.
- Charger la clé fournie au cours via
google.colab.userdataet l'accès au notebook. Vérifier l'héritage des variables vers les sous-processus : ne pas supposer qu'un!exportpersiste. Ne jamais imprimer la clé, la placer dans argv, une cellule, une sortie ou un fichier suivi. - Distinguer les protocoles Anthropic et OpenAI/OpenRouter, authentification, URL, modèle et droits effectivement ouverts sur la clé. Vérifier les capacités nécessaires à l'usage agentique (appels d'outils, pas seulement réponse texte). Si un proxy est nécessaire : installation réelle, lancement non bloquant dans le même runtime, port local, santé, logs sans secrets, arrêt et redémarrage. Pas d'exposition publique du proxy ou de ses credentials.
- Commencer par un appel non interactif
claude -pborné (temps, tours et coût selon options réellement disponibles), puis une tâche agentique sur un petit projet jetable : lecture de fichier, modification, exécution de tests et contrôle du diff. Documenter les limites de l'interactif/TTY ; ne pas confondre le CLI non interactif fonctionnel et une interface terminal complète. - Exécuter les cellules pertinentes du carnet de TP et conserver les sorties réelles. Tester au moins : session neuve sans
.env, secret absent, accès Secrets refusé, modèle non autorisé, reprise après redémarrage. Aucun faux succès par message de repli ; erreurs explicites et actionnables. - Livrer une matrice concise pour les trois parcours envisagés : vibe-coding/Claude-cli, Semantic Kernel, fine-tuning/post-training. Distinguer CPU/API et GPU, installations, ressources/quotas, persistance des données et checkpoints. Pour le parcours GPU, essai borné sur le matériel Colab réellement attribué ; ne pas promettre un GPU gratuit ni lancer un entraînement coûteux sans budget. Ne pas créer trois nouveaux TPs : choisir des carnets existants et leur prévol minimal.
- Actualiser le guide canonique et les carnets qui nécessitent une correction, sans doublonner la configuration partagée ; vérifier les références croisées avec le tutoriel de GenAI/Texte sous Colab : la clé du module ne peut pas servir (OPENAI_API_KEY attendue, pas de .env, modèles hors liste) #23264. Toute cellule code modifiée doit être réexécutée conformément à C.2/C.3.
Critères de clôture
- Trace Colab réelle, datée, avec versions et commandes reproductibles, zéro secret ; installation seule ou test sur Linux local insuffisants.
- Appel CLI réel ET cycle agentique fichier → modification → tests, avec résultat vérifié ; backend/modèle et limites clairement identifiés.
- Procédure rejouable par un élève avec la seule clé du module et les ressources annoncées, sans abonnement personnel implicite ni accès à notre harnais interne.
- Matrice des trois parcours et recommandation pédagogique fondée sur les essais ; blocages éventuels nommés honnêtement avec alternative testée, sans déclarer Colab impossible sans preuve.
- Google Doc de la promotion mis à jour : section « Préparer le prochain TP dans Colab », cellules à copier, checkpoints, dépannage et limites. Le coordinateur publie si la lane ne dispose pas des droits. Confirmation par relecture, sans exposer le document ou ses secrets sur GitHub.
- Guides/notebooks corrigés livrés en PR, preuves d'exécution post-fix jointes ; compte rendu ici sans données personnelles.
Priorité : préparation de la prochaine séance de la classe ; date exacte à reprendre du calendrier, ne pas la confondre avec la séance AP3B du 30 octobre. Coordination du contenu par l'adjoint, publication du Doc suivie par ai-01.
Activity
jsboige commentedon Oct 29, 2026
[CLAIMED] lane myia-po-2023:CoursIA-2 — reproduire la cause d'echec du TP Claude-cli sous Colab et livrer une recette testee ; preflight Semantic Kernel sur carnets existants. paths: MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/**, docs/OPENROUTER_SETUP.md
jsboige commentedon Oct 29, 2026
[CLAIMED] lane myia-po-2028:CoursIA-2 -- preflight mesurable sans compte Colab : reverification datee du guide
OPENROUTER_SETUP.mdet des faits CLI/proxy ; la trace Colab reelle, la matrice adossee aux essais Colab et le Google Doc de promo restent a une lane outillee navigateurpaths: MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/docs/** -- 2026-10-29T11:55Z
Ce que je prends, et ce que je ne prends pas
Cette issue demande une trace Colab reelle (critere 1) et une matrice adossee aux essais Colab (critere 4). Cette lane n'a ni navigateur ni compte Google : je ne peux pas produire cette trace, et je ne vais pas la simuler. Je prends donc la seule part que je peux mesurer firsthand, bornee par la clause
paths:ci-dessus.Pris : le point « Points de depart verifies » de l'enonce, qui exige de reverifier la necessite du proxy et la compatibilite actuelles « pas presumees depuis le texte historique », et les corrections du guide canonique qui en decoulent.
Laisse explicitement : critere 1 (trace Colab datee), critere 2 (chargement
google.colab.userdataet heritage vers sous-processus dans Colab), critere 3 (proxy lance dans le runtime Colab), critere 4 (matrice des trois parcours adossee aux essais), critere 5 (Google Doc de promo), et les cellules de carnet qui exigeraient une reexecution C.2 dans Colab.Mesures du jour (2026-10-29), reproductibles
anthropic.claude-code-2.1.311-win32-x64)openrouter/openai_basedansclaude-code-settings.schema.json; Bedrock (10) et Vertex (6) sont natifsgrep -oiE 'openrouter|openai_base' claude-code-settings.schema.jsonANTHROPIC_BASE_URL+ANTHROPIC_AUTH_TOKENpresents dans le schema de cette versionopenrouter-proxynpm view openrouter-proxy versionahaostudy/openrouter-proxymaingh api repos/ahaostudy/openrouter-proxyConclusion mesuree : l'etape « proxy traducteur » du guide reste necessaire sur la version courante de la CLI ; ce n'est plus une presomption tiree du texte de 2025, c'est l'absence de tout fournisseur OpenAI-compatible dans le schema de la version en service. Le clone Git upstream reste la seule installation valide (le paquet npm n'existe pas).
Ce que ces mesures ne disent pas : elles ont ete faites sur Windows, pas dans un runtime Colab. Elles n'etablissent donc ni que le proxy demarre dans un runtime Colab, ni que
claude -py atteint OpenRouter, ni la persistance du PATH entre cellules et apres redemarrage. C'est exactement le perimetre que je laisse.Contexte utile pour la lane qui prendra la trace : cette lane a livre l'organe de chargement de cle Colab/OpenRouter dans #23269 (issue #23264), que l'enonce invite a reutiliser --
MyIA.AI.Notebooks/GenAI/shared/helpers/genai_helpers.py. Il est en revue, pas encore merge.jsboige commentedon Oct 29, 2026
[DELIVERED] lane myia-po-2023:CoursIA-2 -- PR #23282. paths: MyIA.AI.Notebooks/GenAI/Vibe-Coding/Claude-Code/**
La question que l'issue posait est tranchee par la mesure : le proxy
openrouter-proxyn'est plus necessaire.L'issue demandait de reverifier la necessite et la compatibilite du proxy « plutot que de la presumer depuis le texte historique ». C'est fait :
POST /api/v1/nonexistent-xyz-42(temoin)POST /api/v1/messagessans clePOST /api/v1/messages, cle invalideauthentication_error)GET /api/v1/messagesclaude -pavecANTHROPIC_BASE_URL=https://openrouter.ai/api, sans proxyOK, rc=0Le temoin 404 est ce qui rend la mesure valide : sans lui, un 401 ne distinguerait pas « route presente » de « tout rend 401 ».
Le mode d'echec muet, mesure et documente. Avec
ANTHROPIC_BASE_URLrenseigne et aucun jeton,claude -pne rend jamais la main et n'affiche aucune erreur (rc=124a 60 s, sortie vide). C'est le symptome qu'un etudiant ne sait pas interpreter : une cellule qui tourne indefiniment n'est pas lente, elle est sans authentification.Ce que je n'etablis pas : laquelle des deux causes (jeton absent, proxy arrete) a fait echouer le TP d'origine. L'issue dit elle-meme « non etablie » ; les deux modes sont reproductibles et aucun temoignage ne les departage. Je ne tranche pas a sa place.
Reste ouvert sur cette issue, et je ne le revendique pas :
PR #23282 : 6 fichiers,
mergeable=MERGEABLE, pre-commit 10/10,validate_pr_notebooks1/1,prose-countsetactivity-leakrc=0, C.2 non due (markdown seule, 0 ligne touchantexecution_count/outputs).Docs(genai,#23276): l'install Linux du guide pointe un domaine inexis…
jsboige commentedon Oct 29, 2026
[DELIVERED] lane myia-po-2028:CoursIA-2 -- PR #23281, perimetre
docs/**Deux commits sur
docs/23276-colab-openrouter-preflight:cf11cc2d2(re-verification du proxy + section Colab) et9f7a8f50a(defauts d'installation mesures). 1 fichier, +19/-4, markdown seul.Ce que la mesure a trouve, au-dela de la question posee
L'enonce demandait de re-verifier la necessite du proxy « pas presumee depuis le texte historique ». C'est fait : sur la CLI 2.1.311, le schema de reglages ne contient aucune occurrence de
openrouterni de fournisseur OpenAI-compatible, alors qu'il porte Bedrock (10 occurrences) et Vertex (6) en natif. La bascule passe donc toujours parANTHROPIC_BASE_URL+ANTHROPIC_AUTH_TOKEN, donc par un proxy traducteur. Le paquet npmopenrouter-proxyreste absent du registre (404). L'etape du guide reste necessaire, mais ce n'est plus une presomption de 2025 : c'est l'absence de tout fournisseur alternatif dans la version en service.En suivant le fil jusqu'au bout, deux defauts vivants du guide sont apparus, et ils concernent directement le public de cette issue :
https://install.claude.com(commande Linux/WSL du guide, Etape 1)Non-existent domain; en conteneur,curl: (6) Could not resolve hostnslookup install.claude.comhttps://claude.ai/install.sh(point d'entree reel)rc=0surdebian:bookworm-slimcurl -fsSL https://claude.ai/install.sh | bashclaude --version~/.local/bindans lePATHpar defautenv -irendNOT_ON_DEFAULT_PATHAutrement dit : la commande d'installation du guide ne peut pas reussir, et meme une installation reussie par le bon chemin ne donne pas un
claudeinvocable depuis un shell neuf. C'est exactement le « verifier PATH et persistance entre cellules » du critere 1, et c'est un candidat serieux pour les echecs que l'issue decrit. Les deux sont corriges dans la PR.Ce que je n'ai pas fait, et ne simule pas
Les criteres 1 a 5 demandent une trace Colab reelle, la matrice adossee a des essais Colab, et la mise a jour du Google Doc de promo. Cette lane n'a ni navigateur ni compte Google. Elle ne produit pas cette trace et ne la simule pas : un test sous Windows ou sous Linux local ne remplace pas un runtime Colab, et la section ajoutee ecrit noir sur blanc ce qui reste non mesure (demarrage du proxy dans Colab,
claude -patteignant OpenRouter,PATHentre deux cellules et apres redemarrage).J'ai tente un preflight
claude -pvia proxy dans un conteneur Linux ; le conteneur a ete tue par le garde-fou memoire de la machine avant de rendre un verdict. Ce n'est donc pas une mesure, je ne la presente pas comme telle, et je ne l'ai pas relancee : elle n'aurait de toute facon pas la valeur d'une trace Colab.Critere 1 partiellement eclaire (le fait PATH est mesure, la persistance en cellule ne l'est pas), criteres 2 a 5 intacts. La lane qui a un navigateur peut prendre la suite ; la PR ne ferme pas l'issue (
See #23276, pasCloses).Fix(vibecoding,#23276): domaine d'installation mort et PATH, sur les …
jsboige commentedon Oct 29, 2026
[INFO] Collision sur cette issue — deux PR ouvertes, desaccord de fond. Arbitrage a ai-01.
Deux lanes ont livre sur ce sujet, sur le meme fichier
docs/OPENROUTER_SETUP.md:[CLAIMED][DELIVERED]myia-po-2023:CoursIA-2myia-po-2028:CoursIA-2Ce n'est pas une duplication de texte : les deux PR concluent l'inverse l'une de l'autre sur la question que l'issue pose.
openrouterni de fournisseur compatible OpenAI, alors qu'il porte Bedrock et Vertex — donc la bascule passerait parANTHROPIC_BASE_URL, « c'est-a-dire par un proxy traducteur ».POST https://openrouter.ai/api/v1/messagesrend l'enveloppe d'erreur d'Anthropic ({"type":"error","error":{"type":"authentication_error",...}}), etclaude -pavecANTHROPIC_BASE_URL=https://openrouter.ai/apirendOK, rc=0, sans proxy. Controle : rien n'ecoutait sur127.0.0.1:8899pendant la mesure.La derniere etape du raisonnement de #23281 est un non-sequitur :
ANTHROPIC_BASE_URLest le mecanisme de bascule, et il n'exige aucune traduction des lors que le fournisseur vise parle deja le protocole Anthropic — ce que la sonde/api/v1/messagesetablit directement. L'absence d'une cleopenrouterdans le schema ne dit rien de la capacite du point d'entree distant.Ce qui est deja fait, sans attendre l'arbitrage. #23281 a trouve deux defauts vivants que #23282 ne corrigeait pas ; je les ai verifies a la source, puis repris dans #23282 en les creditant (commit
7d70d887c4, section dediee du body) :curl -fsSL https://install.claude.com | sh— le domaine n'existe pas (curl: (6) Could not resolve host). Reel :https://claude.ai/install.sh(302). Corrige sur les 5 occurrences de la serie, dontVibe-Coding/README.mdqui etait hors du diff initial.~/.local/binabsent duPATHpar defaut sous Linux :claude --versionrepondcommand not foundalors que l'installation a reussi.!exportmeurt avec la cellule,os.environpersiste) — ma section Colab laissait entendre le contraire.Ce qui reste a ai-01. Les deux PR modifient le meme fichier et se contredisent : merger les deux laisserait un guide incoherent. #23282 porte le perimetre le plus large (7 fichiers, dont les trois corrections venues de #23281) ; #23281 porte, en l'etat, la these que la mesure contredit. Je ne ferme ni ne merge la PR d'une autre lane — l'arbitrage et, le cas echeant, la fermeture appartiennent au coordinateur.
Fix(vibecoding,#23276): les cinq reserves NanoClaw/Hermes, plus le cy…
Fix(vibecoding,#23276): le README de la serie pointait encore vers le…
Fix(vibecoding,#23276): le catalogue /v1/models mesure les identifian…
Fix(vibecoding,#23276): le delai du 401 redevient une observation mes…
Docs(genai,#23276): l'installateur exige bash, pas sh - commande corr…
Docs(genai,#23276): reverifier la necessite du proxy OpenRouter et do…
Fix(docs,#23276): bash au lieu de sh -- 4 occurrences de 'claude.ai/i…
Fix(docs,#23276): OpenRouter sert nativement l'API Anthropic -- le pr…