+170 XP

ChatGPT pour le code et canvas

Canvas donne à ChatGPT un éditeur côte à côte où code et rédaction vivent dans un document persistant que vous révisez sur place, au lieu de faire défiler un fil de discussion à la recherche de la dernière version correcte d'une fonction. Le chat reste à gauche, l'artefact reste à droite, et les modifications sont chirurgicales : renommer une variable, refactorer un bloc, ajouter des commentaires inline, sans régénérer tout le fichier. Cette leçon vous montre comment travailler réellement dans Canvas, quand y recourir plutôt qu'à Advanced Data Analysis ou Codex, et comment un non-développeur peut suivre et garder le contrôle.

Ce que Canvas change vraiment

Dans un chat classique, chaque révision est un nouveau message. Le modèle réimprime le script entier, vous le copiez, et vous perdez le diff. Canvas transforme cet artefact en document vivant. Demandez une modification et ChatGPT édite le texte existant, en surlignant ce qui a bougé.

Canvas s'ouvre automatiquement quand ChatGPT estime qu'une réponse est du code substantiel ou de la rédaction longue, ou vous pouvez le forcer en disant « ouvre ceci dans canvas ». Dans l'éditeur, vous disposez de :

  • Modifications ciblées inline. Sélectionnez quelques lignes, décrivez un changement, et seule cette zone est mise à jour.
  • Raccourcis adaptés au code. Un menu propose des actions comme ajouter des commentaires, ajouter des logs, corriger les bugs, porter vers un autre langage et relire le code.
  • Historique des versions. Revenez à un état antérieur quand une modification dégrade les choses.

La présentation officielle se trouve dans l'article d'aide ChatGPT Canvas. Lisez-le une fois, puis apprenez en construisant.

Construire un petit script dans Canvas

Faisons quelque chose de concret et réellement utile : un script qui lit un CSV de dépenses et affiche un récapitulatif par catégorie. Même si vous n'écrivez pas de Python, vous pouvez piloter ça et vérifier le résultat.

Commencez dans n'importe quelle conversation ChatGPT :

Ouvre un canvas. Écris un script Python qui lit expenses.csv avec les colonnes date,category,amount, additionne le montant par catégorie et affiche les catégories triées de la dépense la plus élevée à la plus faible. N'utilise que la bibliothèque standard.

Canvas s'ouvre à droite avec quelque chose comme ceci :

python
import csv
from collections import defaultdict

def summarize(path: str) -> dict[str, float]:
    totals: dict[str, float] = defaultdict(float)
    with open(path, newline="") as f:
        for row in csv.DictReader(f):
            totals[row["category"]] += float(row["amount"])
    return dict(totals)

if __name__ == "__main__":
    totals = summarize("expenses.csv")
    for category, amount in sorted(totals.items(), key=lambda kv: kv[1], reverse=True):
        print(f"{category:<15} {amount:>10.2f}")

Maintenant vous révisez sur place. C'est la partie qui ne fonctionne pas proprement dans un chat ordinaire.

Modifier une zone, pas le fichier entier

Sélectionnez la ligne print à l'intérieur de la boucle et dites à Canvas :

Affiche aussi la part de chaque catégorie dans la dépense totale, en pourcentage.

Canvas réécrit uniquement la logique d'affichage et les lignes voisines dont il a besoin, en laissant summarize intact. Vous voyez le changement surligné. S'il ne vous plaît pas, l'historique des versions le supprime.

Utiliser les actions de code intégrées

Ouvrez le menu de raccourcis Canvas et choisissez Ajouter des commentaires. ChatGPT annote les fonctions sans que vous écriviez de prompt. Choisissez Ajouter des logs et il insère de la journalisation pour que vous puissiez suivre ce que fait le script à l'exécution. C'est en un clic parce que le modèle sait déjà que le document est du code.

L'action Corriger les bugs est celle à bien comprendre. Canvas analyse le document courant, propose des corrections et explique chacune d'elles. Il n'exécute pas le code : il raisonne donc sur des bugs probables plutôt que sur des défaillances observées. Cette distinction compte, et elle mène directement à l'outil suivant.

Canvas vs advanced data analysis vs codex

Ces trois outils se recoupent, et mal choisir fait perdre du temps. Voici la répartition claire.

Canvas est un éditeur. Il écrit et révise du code et de la prose, mais il n'exécute pas votre Python sur vos données. C'est là que vous façonnez un artefact que vous ferez tourner ailleurs.

Advanced Data Analysis (la fonctionnalité anciennement exposée sous le nom de Code Interpreter) exécute du Python dans un sandbox. Chargez votre expenses.csv, et ChatGPT lance le script, montre la vraie sortie, trace des graphiques et attrape les véritables erreurs d'exécution. À utiliser quand vous voulez des résultats à partir de données, pas seulement du code source. Voir l'article d'aide Advanced Data Analysis.

Codex est l'agent d'ingénierie logicielle d'OpenAI. Il travaille sur un dépôt entier, tourne dans son propre environnement, exécute les tests et peut ouvrir des pull requests. Il est conçu pour de vraies codebases et des tâches multi-fichiers, pas pour un snippet isolé. Les détails sont dans la documentation Codex.

Un workflow pratique les enchaîne. Rédigez et affinez le script dans Canvas. Passez à Advanced Data Analysis pour le faire tourner sur le vrai CSV et confirmer les chiffres. Montez vers Codex quand le script devient un projet avec tests, dépendances et gestion de versions.

Introducing canvas

Watch on YouTube

Rendre Canvas fiable

Canvas ne vaut que ce que valent les contraintes que vous lui donnez. Quelques habitudes l'empêchent de dériver.

Fixez vos contraintes tôt

Énoncez les points non négociables dans le premier prompt : version du langage, bibliothèques autorisées, style et environnement cible. Le « n'utilise que la bibliothèque standard » ci-dessus a empêché Canvas d'aller chercher pandas, ce qui aurait imposé une installation dont vous ne vouliez pas. Si vous sautez cette étape, attendez-vous à voir des dépendances s'infiltrer au fil des modifications.

Les instructions personnalisées et les Projects transportent le contexte

Si vous voulez toujours des annotations de type, des docstrings dans un format précis ou un style de gestion d'erreurs particulier, mettez-le dans les instructions personnalisées pour que chaque session Canvas en hérite. Pour un effort au long cours, travaillez dans un Project : il regroupe les chats, fichiers et instructions liés, de sorte que le Canvas que vous ouvrirez demain se souvienne des conventions posées aujourd'hui.

Vérifiez, ne faites pas confiance

Canvas n'exécute pas le code : un script peut donc paraître parfait et échouer quand même. Deux défenses peu coûteuses :

  1. Demandez à Canvas d'ajouter un petit test ou un exemple d'entrée en bas, puis déplacez le fichier vers Advanced Data Analysis et exécutez-le réellement.
  2. Utilisez Relire le code pour obtenir une critique, puis lisez cette critique vous-même. Le modèle signalera souvent ses propres cas limites : fichiers vides, colonnes manquantes, montants non numériques.

Pour notre script, une bonne modification de suivi est :

Gère un fichier manquant et les lignes où amount n'est pas un nombre. Ignore les lignes invalides et affiche combien ont été ignorées.

Canvas corrige summarize et le point d'entrée sans toucher à la logique de formatage que vous avez déjà validée.

Vérification des acquis

1. Quelle est la différence fondamentale entre réviser du code dans un fil de chat classique et dans Canvas ?

2. D'après la leçon, comment Canvas s'ouvre-t-il pendant une conversation ?

3. Pourquoi l'historique des versions est-il particulièrement utile dans Canvas ?

CHOIX MULTIPLES

4. Sélectionnez TOUTES les capacités que Canvas offre selon la leçon.

Sélectionnez toutes les réponses correctes.

CHOIX MULTIPLES

5. Sélectionnez TOUTES les affirmations qui décrivent correctement comment un non-développeur peut garder le contrôle en construisant le script de récapitulatif des dépenses dans Canvas.

Sélectionnez toutes les réponses correctes.

De Canvas à quelque chose d'exécutable

Un script dans un éditeur est un brouillon. Le chemin vers la production dépend de ce que vous construisez.

Pour une tâche personnelle et répétable

Si ce récapitulatif de dépenses vous sert chaque semaine, vous n'êtes pas obligé de le lancer à la main. ChatGPT prend en charge les tâches planifiées, qui peuvent déclencher un prompt de façon récurrente. Vous pouvez demander à ChatGPT de vous rappeler de déposer le dernier CSV et de relancer l'analyse, transformant un script ponctuel en routine.

Pour vos propres sources de données

Quand les données ne vivent pas dans un fichier que vous chargez mais dans un système connecté, les Connectors permettent à ChatGPT de lire depuis des outils comme des drives cloud et certaines applications tierces, selon votre plan et les réglages de votre administrateur. Au lieu de « lis expenses.csv », la tâche devient « résume les dépenses de ce mois depuis la feuille connectée ». Canvas rédige toujours la logique ; les Connectors fournissent l'entrée en direct.

Pour du vrai logiciel

Quand le travail dépasse le fichier unique, confiez-le à Codex dans un dépôt, ou reconstruisez la logique en programme à part entière sur l'API OpenAI. La même fonction summarize peut se placer derrière un appel à sortie structurée pour qu'un autre système reçoive du JSON propre plutôt que du texte imprimé :

python
from openai import OpenAI
from pydantic import BaseModel

client = OpenAI()

class CategorySummary(BaseModel):
    category: str
    total: float
    share: float

class Report(BaseModel):
    rows: list[CategorySummary]
    skipped: int

resp = client.responses.parse(
    model="gpt-5",
    input="Summarize this expense data into per-category totals and shares.",
    text_format=Report,
)

print(resp.output_parsed.rows[0].category)

Ceci utilise la Responses API avec sorties structurées : le modèle renvoie des données conformes à votre schéma au lieu de texte libre que vous devriez parser. Canvas est l'endroit où vous prototypez l'idée ; l'API est celui où elle devient un composant fiable. La référence complète est sur platform.openai.com/docs.

Pourquoi cela compte pour les non-développeurs

Vous n'avez pas besoin d'écrire la boucle pour être propriétaire du résultat. Dans Canvas, vous lisez les diffs surlignés, vous les acceptez ou les refusez, et vous pilotez en français courant : « affiche les pourcentages », « ignore les lignes invalides », « explique cette fonction en une phrase ». Cette boucle de feedback est la vraie compétence. Le modèle gère la syntaxe ; vous gérez l'intention, les contraintes et la vérification.

Le piège est de considérer la sortie de Canvas comme finie parce qu'elle a l'air propre. Du code propre peut être du code faux. Votre travail consiste à répéter les contraintes, à faire tourner le script quelque part qui l'exécute vraiment, et à lire les critiques que le modèle vous donne. Faites cela, et Canvas devient une manière rapide et contrôlable de produire de petits outils que vous comprenez, même sans bagage technique.

Points clés

  • Utilisez Canvas pour réviser sur place. Sélectionnez une zone, décrivez le changement, et seule cette partie est mise à jour, avec un historique des versions pour annuler. Arrêtez de régénérer des fichiers entiers dans le chat.
  • Choisissez le bon outil : Canvas édite, Advanced Data Analysis exécute sur vos données, Codex gère de vrais dépôts. Enchaînez-les : rédiger, exécuter, puis livrer.
  • Fixez les contraintes d'entrée de jeu (langage, bibliothèques, style) et poussez les conventions récurrentes dans les instructions personnalisées ou un Project pour que chaque session en hérite.
  • Ne faites jamais confiance à du code non exécuté. Canvas n'exécute rien ; déplacez le script vers Advanced Data Analysis ou ajoutez un test avant de vous appuyer sur la sortie.
  • Passez à l'API pour la production. Utilisez la Responses API avec sorties structurées quand la logique doit devenir un composant fiable appelé par d'autres systèmes.

Articles liés

Les articles récents du blog qui s'appuient sur cette leçon.