J'ai demandé à ChatGPT d'écrire un plugin pour WordPress dont j'avais besoin. Il l'a fait en moins de 5 minutes.

gettyimages-1246766124.jpg

Pour ne pas mettre trop de détails, mais je suis plus qu'un peu perturbé. Dans le cadre d'une expérience, j'ai demandé à ChatGPT d'écrire un plugin qui pourrait faire gagner du temps à ma femme dans la gestion de son site web. J'ai rédigé une courte description et ChatGPT s'est chargé de tout : l'interface utilisateur, la logique, et tout le reste.

En moins de cinq minutes.

Aussi : Les meilleurs chatbots IA : ChatGPT et d'autres alternatives amusantes à essayer

Il y a des implications. Nous y viendrons dans quelques minutes. Tout d'abord, laissez-moi vous faire vivre cette expérience et ce qui s'est passé.

Le besoin

line-randomizer-paypal-demo-wordpress-2023-01-31-23-41-28.jpg

Ma femme est la propriétaire d'un site de commerce électronique basé sur WordPress axé sur un passe-temps populaire. Elle anime également un groupe Facebook très actif pour les clients de son site. Chaque mois, elle génère aléatoirement une liste de noms, puis effectue une animation de rotation virtuelle de la roue, en utilisant cette liste randomisée, pour le groupe Facebook. Elle utilise actuellement un site internet qui fait un bon travail de randomisation des lignes, mais qui facture un peu plus que cela ne vaut pour exporter la liste.

Aussi: Les détecteurs d'IA peuvent-ils nous protéger de ChatGPT ? J'ai essayé 3 outils en ligne pour le découvrir

Alors que je la regardais se débattre pour récupérer les noms aléatoires, j'ai pensé qu'il pourrait être utile si j'écrivais un plugin WordPress rapide que nous pourrions installer sur son site. Elle se trouve dans le tableau de bord tous les jours, donc avoir cela comme un outil serait pratique.

Mais même un plugin simple me prendrait quelques jours à écrire, avec les éléments de l'interface utilisateur et le code logique, et en ce moment j'ai déjà beaucoup de projets en cours.

Et puis, j'ai pensé à ChatGPT. Il y a eu quelques discussions dans les médias à propos de ChatGPT en tant qu'outil de programmation, alors j'ai décidé de l'essayer.

La consigne

La clé pour obtenir une réponse de ChatGPT est une demande soigneusement rédigée. Dans le cas de la programmation, pensez à être un gestionnaire ou un client. Vous devez décrire clairement ce dont vous avez besoin pour obtenir ce que vous voulez. J'ai commencé par une demande très basique, juste pour voir si cela fonctionnerait. Voici la demande que j'ai utilisée :

code.jpg

Écrivez un plugin WordPress compatible avec PHP 8 qui fournit un champ de saisie de texte où une liste de lignes peut être collée et un bouton qui, lorsqu'il est pressé, mélange les lignes de la liste et présente les résultats dans un second champ de saisie de texte.

En moins d'une minute, il a généré le code que vous voyez à droite. J'ai copié le code généré dans un fichier .php, je l'ai placé dans un dossier avec le même nom racine que le fichier .php, je l'ai compressé puis je l'ai téléchargé sur son serveur. Ça a fonctionné.

Aussi: Des hackers russes essaient de pénétrer dans ChatGPT, selon Check Point

Quand je l'ai montré à ma femme, elle était impressionnée et surprise comme il se doit. Mais ensuite, les rouages ont commencé à tourner et elle a demandé une nouvelle fonctionnalité : veillez à ce que les noms dupliqués ne soient pas côte à côte.

Pour son application, elle devra parfois inclure le nom de quelqu'un sur une liste plusieurs fois. Mais elle ne voulait pas que ces doublons se regroupent.

J'ai modifié ma demande initiale, en ajoutant les conditions supplémentaires suivantes :

...s'assure que deux entrées identiques ne sont pas l'une à côté de l'autre (sauf s'il n'y a pas d'autre option)... avec le nombre de lignes envoyées et le nombre de lignes dans le résultat identiques entre eux.

J'ai inclus la phrase "sauf s'il n'y a pas d'autre option" et l'exigence du nombre identique car je voulais m'assurer que tous les noms étaient inclus, et j'étais préoccupé(e) que cela donne la priorité à l'absence de deux noms côte à côte plutôt qu'à la préservation de tous les noms.

Environ 30 secondes plus tard, j'avais un nouveau plugin. Je l'ai téléchargé sur le serveur et l'ai essayé. Ça a fonctionné, mais le résultat incluait quelques lignes vides. J'ai donc ajouté cette condition à ma demande précédente :

...sans lignes vides...

À présent, j'étais habitué au temps de réaction, qui était toujours inférieur à une minute. Encore un téléchargement et un test, et une fois de plus, ça a marché.

Aussi : Comment utiliser ChatGPT

J'ai souhaité une dernière fonctionnalité, simplement pour confirmer combien de lignes ont été traitées. Je voulais que le plugin affiche un compte des lignes pour les champs d'entrée et de sortie. Voici cette nouvelle demande :

...Sous le premier champ, affichez le texte indiquant "Ligne à randomiser : " avec le nombre de lignes non vides dans le champ source. Sous le second champ, affichez le texte indiquant "Lignes randomisées : " avec le nombre de lignes non vides dans le champ destination.

Cela a fonctionné, pour la plupart. Avant l'exécution, le champ de sortie affiche une ligne. Mais une fois que le processus de randomisation est terminé, il affiche le bon nombre exact de lignes dans les deux champs.

La qualité du code

Dans l'ensemble, la qualité du code était propre. Je ne présente que la réponse originale car sinon elle ne s'intégrerait pas dans l'article. Le programme a correctement généré le bloc d'en-tête WordPress et écrit l'interface utilisateur du tableau de bord pour le plugin, ainsi que la logique de traitement du plugin.

Il a placé mes lignes de résumé au-dessus des champs, même si j'ai spécifié en dessous, mais ce n'est pas une grosse plainte. C'est le genre d'erreur qu'un client pourrait recevoir d'un entrepreneur humain, et qui nécessiterait un peu de retravail pour corriger.

Aussi: Est-ce que l'assistant d'écriture Notion AI peut rédiger cet article ?

Codage fonctionnait, mais il n'incorporait pas toutes les meilleures pratiques pour la programmation WordPress. Par exemple, il n'a pas désinfecté les entrées des utilisateurs. La communauté WordPress est rigoureuse en matière de désinfection des entrées afin que les pirates ne puissent pas remplir les champs avec des données pouvant corrompre un site - et ce code ne contenait rien de tout cela.

Comme test ultérieur, j'ai demandé à l'IA de nettoyer les entrées, et elle l'a fait... jusqu'à un certain point. Elle a nettoyé les entrées à l'intérieur de la fonction PHP, mais elle n'a pas nettoyé les entrées lors de l'appel de PHP dans HTML. Cela aurait certainement laissé une faille aux hackers.

Il a également ajouté l'élément de menu du plugin dans Paramètres. J'aurais probablement préféré le placer sous Outils ou lui attribuer son propre élément de menu. Étant donné que je n'ai pas précisé d'où il devait être invoqué, je pense que ChatGPT a pris une décision acceptable en plaçant l'élément de menu là où il l'a fait.

J'ai ajouté une dernière exigence à ma demande, demandant à l'IA de donner un nom au plugin :

Créez un plugin WordPress compatible avec PHP 8 appelé "Robo Randomizer" qui...

Étrangement, l'IA m'a donné un plugin totalement différent, générant un plugin qui fournit un shortcode plutôt qu'une interface de tableau de bord. Permettez-moi de l'expliquer aux utilisateurs qui ne sont pas familiers avec WordPress, car c'est intéressant.

Lorsque vous écrivez quelque chose comme ceci, vous pouvez le rendre disponible sur le site aux visiteurs (appelé frontend) ou à ceux qui se connectent au tableau de bord du site pour maintenir le côté (le backend). Dans mon ensemble original de directives, je n'ai pas spécifié le frontend ou le backend, mais l'IA a écrit ce que je voulais, c'est-à-dire une interface de backend, de tableau de bord pour l'outil.

Aussi : OpenAI recrute des développeurs pour améliorer ChatGPT en programmation

Mais cette fois-ci, il a décidé d'écrire le plugin comme un outil frontal, en le faisant s'exécuter via un shortcode. Dans WordPress, vous pouvez incorporer un shortcode (quelque chose comme [randomize lines]) dans un article et cela exécutera du code dans un plugin. La dernière version que l'IA a produite m'a donné un tel shortcode, ce qui aurait permis à la fonctionnalité "randomize lines" d'être présentée aux visiteurs du site.

Après cela, ChatGPT a un peu perdu le fil. Je n'ai pas pu faire ajouter de nouvelles fonctionnalités au plugin d'origine et ChatGPT s'est principalement contenté de répéter la génération de la version raccourcie. Manifestement, la maintenance du code n'est pas vraiment le point fort de ChatGPT.

Implications

Évidemment, c'est un plugin simple. Sa taille est approximativement celle des devoirs que je donnais à mes étudiants de première année de programmation lorsque j'enseignais à l'Université de Berkeley. Il ne se rapproche en aucun cas de la complexité des plugins WordPress open source beaucoup plus volumineux que je maintiens pour plus de 50 000 utilisateurs.

Aussi : Avec les chatbots IA, cherchons-nous les réponses là où il ne faut pas ?

La semaine dernière, lorsque j'ai utilisé pour la première fois ChatGPT pour créer le plugin Quickie pour ma femme et que j'ai tweeté à ce sujet, des correspondants sur mes réseaux sociaux ont exprimé leur mécontentement. Voici certaines de leurs préoccupations :

Est-ce malveillant ? Une personne s'inquiétait du fait que l'IA puisse intégrer des informations malveillantes (ou du moins promotionnelles) dans le plugin et qu'un utilisateur non programmeur ne le sache jamais. Mais en réalité, si vous n'êtes pas un programmeur et que vous ne savez pas lire le code, même si vous vous engagez avec une autre personne, vous ne savez pas vraiment ce qu'il y a à l'intérieur. Tout dépend soit de faire confiance à la réputation, soit de demander à quelqu'un en qui vous avez confiance d'examiner le code. Dans le cas du code produit lors de mon expérience, il était propre.

Est-ce que c'est le meilleur qu'il puisse être ? Ici encore, les gens tenaient le code de l'IA à une norme différente même des programmeurs humains. Je suis un bon programmeur, mais mon code a des bugs. Ce n'est pas le meilleur qu'il puisse être… du moins pas au début. Mais avec les humains, le code s'améliore avec le temps. Je ne suis pas sûr qu'une IA puisse prendre un code existant, l'améliorer, le déboguer et l'améliorer. Cependant, parfois les choses doivent simplement être fonctionnelles. Il n'est pas toujours important qu'elles soient les meilleures du meilleur. Suffisamment bon est souvent suffisamment bon. Et cela a généré un code qui était suffisamment bon.

Est-ce que cela réduira le nombre de tâches de programmation effectuées par des humains? Quasiment sans aucun doute. Je déteste voir une machine prendre le travail de quelqu'un (surtout si c'est un travail que je pourrais vouloir). L'IA est clairement une option pour les projets rapides et simples, que ce soit l'écriture ou la programmation. Les chèques de paie des gens seront impactés, sans aucun doute.

J'ai étudié l'IA depuis des décennies. J'ai réalisé une thèse sur l'IA. Mais même avec tout cet arrière-plan, cette vague d'IA générative de haute qualité m'a été surprenante. Cela dit, ce que nous regardons maintenant est le niveau de productivité "suffisamment bon". Malheureusement, c'est ce que de nombreux clients exigent.

Mais - du moins pour l'instant - ChatGPT et ses amis ne peuvent pas écrire des articles d'analyse approfondie comme celui-ci, car ils reflètent des opinions, des anecdotes et des années d'expérience. Et bien qu'ils puissent probablement écrire des sous-routines et des fonctions pour des projets de programmation plus importants, ils ne sont tout simplement pas en mesure d'écrire des projets de programmation majeurs.

Aussi : La démonstration du concurrent de ChatGPT de Google tourne mal

Par exemple, j'ai dû avoir de 20 à 30 réunions au cours de l'année dernière avec un important fournisseur d'API pour intégrer leur service dans le mien. La plupart de ces réunions ont mélangé des questions commerciales avec des exigences techniques et des politiques de licence. Je défie n'importe quelle IA de supporter, de comprendre les nuances et de répondre aux exigences des partenaires dans ce genre de situation bureaucratique, et ensuite d'être capable de produire des modules de code sur lesquels tout le monde peut être d'accord.

Donc, oui, je suis un peu effrayé par la qualité du plugin que j'ai "fabriqué" pour ma femme. Mais l'IA a encore beaucoup de chemin à parcourir avant de concurrencer les développeurs et rédacteurs expérimentés - tant que les clients veulent le genre de travail que les développeurs et rédacteurs expérimentés produisent. Et ça, mes amis, c'est quelque chose qui me préoccupe.

Articles connexes

Voir Plus >>

Libérez la puissance de l'IA avec HIX.AI !