gen-ai.fr

5 novembre 2023
Guide ChatGPT pour développeurs

ChatGPT est sans aucun doute l'outil de GenAI le plus populaire de la planète avec déjà des millions d'utilisateurs.

Les développeurs sont de plus en plus nombreux à l'utiliser tous les jours dans leur travail. Tout comme Google et son algorithme de recherche, l'utilisation de ChatGPT s'améliore avec le temps car notre cerveau se calque sur le fonctionnement de l'algorithme.

Dans ce guide, nous allons voir quelques techniques pour améliorer la vélocité des développeurs 🚀

Dois-je payer ChatGPT Plus ?

ChatGPT Plus donne accès à GPT-4 qui est beaucoup plus performant que GPT-3.5. La différence de qualité des réponses est énorme.

Quelques exemples:

  • Demande de typage Typescript GPT-3.5 vs GPT-4
    • 👉 la solution de GPT-4 est totalement générique

  • Correction d'une erreur Github Action GPT-3.5 vs GPT-4
    • 👉 la solution de GPT-3.5 ne corrige pas le problème (il manque shell: bash dans la définition de l'action)

Il y a beaucoup d'autres situation ou GPT-3.5 est beaucoup moins efficace que GPT-4 et tant que l'on a pas essayé soit même, il est difficile de s'en rendre compte.

Utiliser GPT-4 au lieu de GPT-3.5 quand on est développeur fait gagner beaucoup de temps chaque jour et les 20$/mois sont rentabilisés dès le premier jour.

De plus, ChatGPT Plus donne accès à des plugins, notamment pour pouvoir lire des pages web contenant des documentations d'API récentes afin d'implémenter des clients dans le langage de votre choix.

Pour toutes ces raisons, même si ChatGPT Plus coûtait 100$ par mois cela serait toujours rentable.

Dans la suite de ce guide, nous assumerons que la version utilisée est GPT-4.

Instructions personnalisées

Il est possible de fournir des instructions personnalisées à ChatGPT et ces dernières sont notamment très utiles pour que le code généré soit conforme à vos standards.

Ces instructions doivent être donné en anglais pour une meilleure efficacité.

Limiter le bruit dans les réponses

Pour que la vitesse de génération soit plus rapide, il est possible de demander à ChatGPT de ne pas commenter et expliquer le code qu'il produit.

When answering code, only answer the code without explanation.
Do not add comments in the code.
Never give me package install instructions

Exemple avant (12 sec) et après (4 sec).

Spécifier des standards de code

Il est également possible de faire générer du code conforme aux standards utilisés.

Use 2 space for indentation.
Generate typescript code rather than javascript code
In typescript:

  • use Node.js fetch API
  • prefer for const of loop
  • declare functions with function keyword when possible
  • use an typed object with destructured properties as only function argument

Avant et après.

Amélioration des performances avec du prompt engineering

Il est aussi possible d'utiliser des techniques de prompt Engineering pour améliorer la qualité des réponses.

The task I'm asking you is vital to my career, and I greatly value your thorough analysis.

Voir les explications ici.

Tâches d'assistant développeur

Quelques exemples de tâches que ChatGPT peut réaliser pour assister les développeurs.

De manière général, il faut considérer ChatGPT comme un stagiaire à qui il faut expliquer étape par étape la façon de résoudre un problème.

Les explications doivent comporter le maximum de contexte (code, documentation, types, schéma, etc) afin qu'il puisse comprendre correctement le problème à résoudre.

Générer des fonctions

La tâche la plus habituelle pour un développeur est de demander à ChatGPT de générer des fonctions.

Il suffit habituellement de lui décrire le comportement de la fonction puis de copier le code générer afin de l'essayer.

Si il y a une erreur ou si il faut gérer un cas à la marge supplémentaire, il suffit d'itérer dans la conversation en indiquant quoi faire.

Exemple d'itération sur une fonction

Écrire des requêtes SQL, MongoDB, etc

Pour cette tâche, ChatGPT a besoin d'un maximum de contexte. Habituellement il suffit de lui copier la définition des tables ou des collections et il sera capable de générer la requête demandée.

Comme pour les fonctions, il est possible d'itérer pour gérer les erreurs et les cas à la marge.

Un exemple avec Postgres

Corriger n'importe quel bug

Que ce soit votre code, la CI ou la configuration d'un autre outil, ChatGPT est capable de comprendre un bug et de vous suggérer des solutions pour le corriger.

Habituellement il suffit de coller le message d'erreur mais il est judicieux de lui donner le maximum d'informations de contexte comme une stacktrace, la configuration actuel ou le code de la fonction incriminée.

Intégrer des API externes

ChatGPT est capable de naviguer sur Internet pour lire la doc des API. Ensuite, il est simple pour lui d'écrire des fonctions correspondants à n'importe laquelle des routes de cette API.

C'est vraiment une des utilisation les plus utiles car intégrer une API externe est toujours une tâche fastidieuse car elle implique beaucoup de lecture et de nombreuses itérations pour arriver à ses fins.

Exemple d'une intégration entre Clickup (gestion de tâches) et Slack

Gérer vos types Typescript

Gérer correctement les types Typescript peut rapidement être très chronophage. Heureusement ici encore ChatGPT est très bon dans ce domaine.

Il est capable de résoudre quasiment tous les problèmes de typage pour peu que le contexte fourni soit suffisant. En général, il suffit de lui montrer du code et de lui expliquer de quelle manière on aimerait que cela soit typé.

Exemple de typage Typescript

Remanier l'architecture du code

ChatGPT est capable de raisonnement poussé en ingénierie logicielle. C'est très utile pour découper une classe devenue trop grosse en plusieurs classes ayant chacune leur responsabilités.

Toutes les bonnes pratiques sont applicables facilement: interfaces, injections de dépendances, event emitter pattern, séparation des responsabilités, etc.

Exemple d'extraction de logique et injection en temps que dépendances


GenAI est un site français à propos des avancées technologiques dans le monde de l'intelligence artificielle.

Newsletter


© Copyright CC-BY-SA 2023 gen-ai.fr