Code Execution
Code Execution donne au LLM Chat un terminal isolé. Le modèle écrit un court programme, l'exécute sur les fichiers joints à votre conversation, et tout ce que ce programme affiche ou écrit revient dans le chat — sous forme de sortie à lire et de fichiers à télécharger. C'est ainsi que le chat totalise les lignes d'un tableur, convertit d'un format à l'autre et produit documents, classeurs, présentations et graphiques.
À quoi cela sert
À tout ce qui doit être calculé ou écrit plutôt que décrit :
- Calculs sur des données — totaux, écarts, pourcentages et durées écoulées sur les lignes d'un fichier, là précisément où lire les nombres et les additionner de tête tourne mal.
- Conversion et nettoyage — CSV vers Excel, un tableau large transformé en format long, doublons supprimés, dates normalisées, deux exports comparés.
- Production de fichiers — un rapport Word, un modèle rempli, une présentation, un export JSON ou Markdown, ou une archive zip lorsqu'il y a trop de fichiers pour les joindre un à un.
- Graphiques — un graphique en barres ou en courbes de vos données, enregistré comme image et joint à la conversation.
- Images et PDF — nombre de pages, extraction de texte, fusion ou découpage de PDF, redimensionnement d'images par lot, création d'une planche-contact.
Un calcul isolé énoncé dans la question — 15 % de 200 — reçoit une réponse directe, sans exécution. Le bac à sable sert au travail sur des données que le modèle ne peut pas traiter de tête de façon fiable, et à tout ce qui doit aboutir à un fichier.
Comment l'activer
Code Execution est une capacité intégrée, listée avec les autres outils dans le sélecteur d'outils du chat. Désactivez-la pour une conversation et le modèle répond sans elle ; réactivez-la et la question suivante peut de nouveau s'en servir.
Exemples
Ce sont de vraies demandes, écrites comme les gens les écrivent — aucune ne mentionne de code, de bac à sable ni de langage. Chacune aboutit à une réponse vérifiable et, quand cela a du sens, à un fichier à télécharger.
Tableurs et données
- « Supprime les doublons exacts du fichier joint sales_dirty.csv, convertis chaque order_date au format ISO et renvoie-le sous le nom sales_clean.xlsx. » Trois formats de date entrent, un classeur propre en ressort, et le nombre de lignes est indiqué pour que vous puissiez le vérifier.
- « Ajoute une colonne margin calculée comme (price − cost) / price et renvoie le fichier sous le nom products_with_margin.xlsx avec les lignes à faible marge mises en évidence. Quelles SKU sont sous les 10 % ? »
- « Joins orders.csv à customers.csv sur customer_id et dis-moi exactement quelles commandes n'ont pas de client correspondant. » Les deux pièces jointes parviennent à la même exécution, et les écarts sont nommés au lieu d'être escamotés.
- « Le fichier joint quarterly_wide.csv a une colonne par trimestre. Transforme-le au format long avec product, quarter et revenue. »
- « Compare catalogue_v1.csv et catalogue_v2.csv sur sku : lesquels ont été ajoutés, lesquels supprimés, et lesquels ont changé de prix, avec l'ancienne et la nouvelle valeur. »
- « Vérifie contacts_dirty.csv — un e-mail doit contenir exactement un @ et aucun espace, un code postal uniquement des chiffres. Signale les problèmes et dis-moi quels identifiants de ligne sont incorrects. »
Des nombres qui doivent tomber juste
- « La facture jointe annonce un total de 8000,00 EUR HT. Les lignes s'additionnent-elles vraiment à ce montant ? Donne-moi le net correct, la TVA à 20 % et le TTC. » Elles totalisent 9090,00 : la facture sous-estime donc le net de 1090,00 — exactement le genre de question où additionner à l'œil tourne mal.
- « Calcule pour chaque ticket le nombre d'heures écoulées entre opened_at et resolved_at et dis-moi lesquels ont pris plus de 24 heures. » De l'arithmétique de dates à cheval sur plusieurs jours et un week-end : facile à rater, facile à vérifier.
Documents, présentations et courriers
- « Construis un PowerPoint à partir du tableau de KPI joint : une diapositive de titre plus une diapositive par KPI, chacune avec un petit graphique en courbes de ses quatre trimestres. »
- « Remplis les espaces réservés de notre northwind_template.pptx avec une revue Q1–Q4 construite à partir du CSV, en conservant la mise en page et les couleurs du modèle. » Votre modèle d'entreprise est préservé — seuls les espaces réservés changent.
- « Rédige une lettre d'offre Word par destinataire, en l'appelant par son nom avec son entreprise, son rôle et sa remise, et regroupe le tout dans offers.zip. » Plus de documents qu'on ne peut en joindre un à un : l'exécution les rassemble donc dans une archive.
- « Remplis le modèle de rapport d'audit, remplace l'espace réservé aux constats par un vrai tableau Word et ajoute un graphique des constats par niveau de gravité. »
- « Combien de pages compte le PDF joint ? Renvoie-moi aussi les pages 1 à 5 dans un nouveau fichier. »
- « Fusionne ces deux PDF en mettant le paracétamol en premier, et indique-moi le nombre de pages de chaque fichier d'entrée et du résultat. »
- « Sur combien de pages apparaît “escalation”, quelle que soit la casse, et combien mentionnent “KPI” ? Donne-moi un CSV des numéros de page correspondants. »
- « Donne-moi pour le PDF joint un tableau du nombre de mots par page sous le nom page_stats.xlsx, et dis-moi quelle page en compte le plus. »
Images, audio et graphiques vectoriels
- « Redimensionne les deux images jointes à 800 pixels de large en conservant les proportions, et indique-moi les dimensions d'origine et les nouvelles. »
- « Fais une seule planche-contact à partir des trois images jointes : des vignettes côte à côte, chacune de 300 pixels de large, sur fond blanc. »
- « Ajoute un filigrane portant la mention (c) QAnswer en bas à droite de cette image. » Demandé juste après que le chat a généré l'image — une image produite par l'assistant est un fichier de la conversation comme un autre, et peut donc être retouchée ensuite.
- « Génère une tonalité sinusoïdale de 440 Hz pendant 3 secondes, dans un fichier audio téléchargeable. »
- « Génère un SVG représentant une balle et donne-moi le fichier. » Un balisage que le modèle pourrait simplement écrire arrive tout de même sous forme de fichier plutôt que de texte dans la réponse.
Plusieurs étapes à la suite
Les fichiers persistent d'une exécution à l'autre : un traitement peut donc se construire au fil d'une conversation.
- « Ajoute une colonne margin_pct au fichier joint catalogue.csv, arrondie à une décimale, et enregistre-le sous catalogue.csv. »
- « Trie maintenant catalogue.csv par margin_pct décroissant et réenregistre-le. »
- « Exporte le catalogue.csv trié vers catalogue.xlsx et dis-moi combien de lignes il contient. »
Chaque tour lit ce que le précédent a écrit : la troisième exécution exporte donc le fichier trié et non le fichier téléversé à l'origine.
En combinaison avec d'autres outils
« Regarde https://qanswer.ai et crée une présentation de 2 diapositives à son sujet. » La page est lue par l'extraction d'URL de Web Search et la présentation est écrite dans le bac à sable, en un seul tour. Code Execution n'a pas de réseau propre : associer les deux est donc la façon dont des données en direct finissent dans un fichier produit.
Ce qui est disponible dans le bac à sable
Le bac à sable est un petit conteneur Linux doté d'un interpréteur et d'un jeu fixe de bibliothèques. Rien ne peut être installé à l'exécution : ce qui est listé ici est donc tout ce qu'une exécution peut utiliser.
- Python 3.11 — pandas, numpy et matplotlib pour les données et les graphiques ; scipy pour les statistiques, le signal et l'audio ; mpmath pour l'arithmétique en précision arbitraire ; openpyxl, xlsxwriter, xlrd et odfpy pour les tableurs ; pypdf, python-docx et python-pptx pour les documents, les PDF et les présentations ; Pillow pour les images ; tabulate pour les tableaux en texte.
- Autres langages — JavaScript, Java, C++, Go, Ruby et R s'exécutent également, avec leurs seules bibliothèques standard. C'est Python qui est utilisé pour travailler sur vos fichiers, parce que c'est lui qui dispose des lecteurs et des écrivains.
Limites
- Aucun réseau — le bac à sable n'a aucun accès à Internet. Une exécution ne peut ni récupérer une URL, ni appeler une API, ni installer un paquet.
- Temps et mémoire — une exécution est arrêtée au bout de 30 secondes et dispose de 512 Mo de mémoire et d'un CPU. La sortie est tronquée au-delà d'environ 8 000 caractères.
- Taille des fichiers — jusqu'à dix fichiers en entrée (25 Mo chacun, 50 Mo au total) et jusqu'à dix en sortie (25 Mo chacun).
- Aucun état entre les exécutions — les variables, les paquets installés et tout ce qui est gardé en mémoire disparaissent à la fin d'une exécution. Seuls les fichiers sont conservés — c'est pourquoi un traitement en plusieurs étapes écrit dans un fichier ce dont il a besoin.
Isolation
Chaque exécution a lieu dans un conteneur sans accès réseau, et son répertoire de travail est effacé aussi bien avant le démarrage du programme qu'après sa fin : rien d'une conversation ne peut donc être vu par la suivante. Vos fichiers sont copiés depuis votre propre conversation et ne sont jamais envoyés à un service tiers.







