Rechercher dans le blog

Coder une carte avec ChatGPT

Bonjour à tous,

Aujourd'hui, nous allons discuter de l'IA qui a mis en ébullition le monde de la tech et bien au-delà : ChatGPT. La question à laquelle nous allons répondre aujourd'hui est : est-ce que ChatGPT est capable de coder une carte à ma place

Première étape : est-ce que ChatGPT connaît l'API Javascript d'ArcGIS ? 

C'est apparemment un bon début ; notez cependant que c'est l'utilisation de services de localisations d'ArcGIS Platform ou de données non publiques qui nécessitent une clé d'API (ou un compte ArcGIS), et pas l'API JavaScript en tant que telle. Si cela vous intéresse, vous pourrez trouver une définition plus complète de l'API sur cet article.

Maintenant, j'ai remarqué lors de mes tous premiers tests que ChatGPT avait tendance à utiliser la version 4.18 ou 4.19 de l'API quand je lui demandais de coder. C’est normal, car le corpus de ChatGPT n’est pas connecté à internet en temps réel et a été constitué en 2021; il n’est donc pas au courant des dernières mises à jour et nouveautés.

 

Deuxième étape : afficher une carte

On peut noter trois choses sur ce bout de code : 1/ il fonctionne : 2/le fait que je l'interroge sur les versions de l'API lui a automatiquement fait adopter la version la plus récente, ce qui n'était pas le cas dans mes tests précédents ; 3/ ChatGPT s'est permis la fantaisie d'importer le module domReady! de dojo, ce qui n'a pas trop de sens ici mais qui vient certainement des exemples qu'il a pu trouver ici et là sur dans le code de différents sites web.

Et donc voici la première réponse à ma question "Est-ce que ChatGPT est capable de coder une carte à ma place ?" : oui, et il  se paye d'ailleurs même le luxe de m'expliquer rapidement le code.

Le code est fonctionnel, mais ceci dit cela reste une carte très basique; on va maintenant essayer de le pousser un peu plus loin.

Troisième étape : ajouter des données

Cette fois-ci, je vais lui demander d'ajouter des données à ma carte, et de faire en sorte que celle-ci s'affiche en plein écran. Cette étape ne lui pose aucun problème.

A ce moment-là, je me dis que je vais peut-être me faire remplacer par une IA.

Quatrième étape : arriver aux limites de ChatGPT et conserver mon travail

Heureusement pour moi, je vais bientôt être rassurée. Pour comprendre la suite, sachez que la donnée que j'affiche dans ma carte sont des points représentant les différents magasins d'une enseigne imaginaire nommée Jardi à travers la France. La couche comporte dans sa table attributaire une champ appelé Type d'enseigne pouvant contenir les valeurs suivantes :

J'ai demandé à ChatGPT de faire une symbologie par valeurs uniques selon le type d'enseigne. Voici ce qu'il m'a répondu :

Il est capable de retrouver la bonne classe de l'API permettant de faire ce que je veux, et de me proposer un extrait de code. Cependant, il me propose comme type d'enseigne des enseignes lumineuses et des enseignes non lumineuses, ce qui ne correspond pas du tout à ce que contient ma donnée. La réalité est que ChatGPT n'accède pas à l'intérieur de ma donnée, et n'est donc pas capable par lui-même de coder exactement ce que je lui demande. Finalement, on dirait que je vais pouvoir conserver mon job.

Je décide tout de même de lui donner un petit coup de main, et si je le guide un peu plus, il me donne le bon code :

Notez cependant qu'il a arrêté de me donner le code complet, et qu'il n'aura par exemple jamais importé la classe UniqueValueRenderer. C'est à moi de savoir qu'il faut l'ajouter, et où et comment le faire.

Cinquième étape : se faire conseiller par ChatGPT ?

J'ai enfin voulu tester un exercice différent : demander des conseils à ChatGPT sur des fonctionnalité. J'ai commencé par lui demander quelle classe de l'API pouvait me servir pour ajouter une légende, ce à quoi il a immédiatement trouvé la réponse, et m'a même donné le code et l'explication.

En même temps, la question était assez simple. J'ai voulu lui poser une question un peu plus vague, en lui demandant s'il était possible de rajouter une vidéo à ma carte. C'est une capacité qui existe bel et bien avec l'API, à travers les MediaLayers.

Cependant, ChatGPT n'a pas été capable de relier ma question à la classe MediaLayers, et a même insisté sur le fait que l'API ne fournit pas de fonctionnalités spécifiques pour intégrer directement des vidéos à une carte. Plusieurs facteurs peuvent rentrer en cause : le fait que la fonctionnalité est relativement récente et que ChatGPT n'était pas au courant des dernières versions de l'API comme nous l'avons vu au tout début, ou l'incapacité de relier une question trop vague à la bonne classe de l'API.

Le mot de la fin 

ChatGPT possède bel et bien des connaissances sur l'API JavaScript d'ArcGIS. Il peut sans problème utiliser la base de l'API : créer une carte, l'afficher, ajouter des données. Cependant, dès qu'il faudra ajouter des fonctionnalités demandant une connaissance des données, il faudra que vous lui donniez un sérieux appui pour que le code fonctionne. Vous pouvez également vous servir de ChatGPT comme d'un conseiller, mais comme n'importe quel conseiller, il est important de garder en tête qu'il peut, et qu'il lui arrive d'ailleurs régulièrement de se tromper.

Cela reste pour l'instant plus une technologie assez bluffante à tester qu'un réel générateur d'application cartographique complète. Vous pouvez l'utiliser pour apprendre à utiliser l'API, mais je vous conseille davantage d'utiliser les différents tutoriels et la documentation de référence de l'API.

Si cela vous intéresse, vous pouvez retrouver l'intégralité du code généré par ChatGPT sur mon Github. On se retrouve dans un prochain article, où cette fois-ci nous coderons par nous-même !



3 commentaires:

  1. Bonjour,
    pour le test vous avez utilisé Chat Gpt 3.5 ou Chat Gpt 4?

    RépondreSupprimer
  2. Très instructif ! Avez-vous remarqué des différences notables en termes de facilité ou de complexité lors de l'ajout de fonctionnalités avancées avec l'assistance de ChatGPT par rapport à votre expérience sans IA ?

    RépondreSupprimer