Skip to content

Préparer les TP dans Colab : Claude-cli réel, Semantic Kernel et post-training — recette testée à publier dans le Doc de promo #23276

Open

Description

@myia-ai-01

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

Investigation et réalisation

  1. 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.
  2. Charger la clé fournie au cours via google.colab.userdata et l'accès au notebook. Vérifier l'héritage des variables vers les sous-processus : ne pas supposer qu'un !export persiste. Ne jamais imprimer la clé, la placer dans argv, une cellule, une sortie ou un fichier suivi.
  3. 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.
  4. Commencer par un appel non interactif claude -p borné (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.
  5. 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.
  6. 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.
  7. 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

  1. jsboige commented on Oct 29, 2026

    @jsboige
    Owner

    [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

  2. jsboige commented on Oct 29, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2028:CoursIA-2 -- preflight mesurable sans compte Colab : reverification datee du guide OPENROUTER_SETUP.md et 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 navigateur
    paths: 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.userdata et 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

    Objet Mesure Commande
    Version de la CLI en service 2.1.311 (anthropic.claude-code-2.1.311-win32-x64) dossier d'extension VS Code
    Support natif OpenRouter dans cette version aucun -- 0 occurrence de openrouter / openai_base dans claude-code-settings.schema.json ; Bedrock (10) et Vertex (6) sont natifs grep -oiE 'openrouter|openai_base' claude-code-settings.schema.json
    Mecanisme de bascule de fournisseur ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN presents dans le schema de cette version meme fichier
    Paquet npm openrouter-proxy toujours absent du registre (404), la note du 2026-09-09 (#15419) reste exacte npm view openrouter-proxy version
    Depo upstream ahaostudy/openrouter-proxy vivant mais dormant : dernier push 2026-07-30, dernier commit docs-only (« add Spanish README »), 77 etoiles, non archive, branche main gh api repos/ahaostudy/openrouter-proxy

    Conclusion 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 -p y 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.

  3. jsboige commented on Oct 29, 2026

    @jsboige
    Owner

    [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-proxy n'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 :

    Sonde Resultat
    POST /api/v1/nonexistent-xyz-42 (temoin) 404 — un chemin absent rend bien 404
    POST /api/v1/messages sans cle 401 — la route existe
    POST /api/v1/messages, cle invalide erreur au format Anthropic (authentication_error)
    GET /api/v1/messages 404 — route POST seule, comme Anthropic
    claude -p avec ANTHROPIC_BASE_URL=https://openrouter.ai/api, sans proxy OK, rc=0

    Le 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_URL renseigne et aucun jeton, claude -p ne rend jamais la main et n'affiche aucune erreur (rc=124 a 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 :

    • la matrice de prevol Semantic Kernel / fine-tuning-post-training sur carnets existants — livrable distinct, sa propre PR ;
    • le report des conclusions dans le Google Doc prive de la promo — detenu par le coordinateur, lien non publiable ici.

    PR #23282 : 6 fichiers, mergeable=MERGEABLE, pre-commit 10/10, validate_pr_notebooks 1/1, prose-counts et activity-leak rc=0, C.2 non due (markdown seule, 0 ligne touchant execution_count/outputs).

  4. added a commit that references this issue on Oct 29, 2026
  5. jsboige commented on Oct 29, 2026

    @jsboige
    Owner

    [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) et 9f7a8f50a (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 openrouter ni de fournisseur OpenAI-compatible, alors qu'il porte Bedrock (10 occurrences) et Vertex (6) en natif. La bascule passe donc toujours par ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN, donc par un proxy traducteur. Le paquet npm openrouter-proxy reste 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 :

    Objet Mesure du 2026-10-29 Commande
    https://install.claude.com (commande Linux/WSL du guide, Etape 1) inexistant -- Non-existent domain ; en conteneur, curl: (6) Could not resolve host nslookup install.claude.com
    https://claude.ai/install.sh (point d'entree reel) fonctionne -- installateur bash de 9704 octets, rc=0 sur debian:bookworm-slim curl -fsSL https://claude.ai/install.sh | bash
    Version installee par ce script 2.1.312 claude --version
    ~/.local/bin dans le PATH par defaut non -- l'installateur l'avertit lui-meme ; env -i rend NOT_ON_DEFAULT_PATH simulation de shell neuf

    Autrement dit : la commande d'installation du guide ne peut pas reussir, et meme une installation reussie par le bon chemin ne donne pas un claude invocable 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 -p atteignant OpenRouter, PATH entre deux cellules et apres redemarrage).

    J'ai tente un preflight claude -p via 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, pas Closes).

  6. added a commit that references this issue on Oct 29, 2026
  7. jsboige commented on Oct 29, 2026

    @jsboige
    Owner

    [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 :

    Lane [CLAIMED] [DELIVERED] PR
    myia-po-2023:CoursIA-2 c.6495657619 — 11:39:47Z c.6495837177 — 11:48:46Z #23282
    myia-po-2028:CoursIA-2 c.6495765786 — 11:45:11Z c.6495980550 — 11:56:07Z #23281

    Ce 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.

    La derniere etape du raisonnement de #23281 est un non-sequitur : ANTHROPIC_BASE_URL est 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/messages etablit directement. L'absence d'une cle openrouter dans 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) :

    1. 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, dont Vibe-Coding/README.md qui etait hors du diff initial.
    2. ~/.local/bin absent du PATH par defaut sous Linux : claude --version repond command not found alors que l'installation a reussi.
    3. La precision sur le sous-shell Jupyter (!export meurt avec la cellule, os.environ persiste) — 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.

  8. added 7 commits that reference this issue on Oct 29, 2026
  9. added a commit that references this issue on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions