ChatGPT comme aide à la programmation

ChatGPT comme aide à la programmation

par Joseph Rézeau,
Nombre de réponses : 16
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour les développeurs !

Nous avons déjà eu quelques échanges sur notre forum Moodle à propos de ChatGPT, mais rien concernant plus spécifiquement l'aide à la programmation (pardon, au codage, comme on dit maintenant). Pour mes menus travaux de bidouillage avec Moodle et H5P il m'arrive de poster des questions sur des forums comme https://stackoverflow.com/ etc. Depuis un an j'ai posé mes questions à ChatGPT, et le résultat est ... variable.  Il faut être bien précis dans ses demandes, et ensuite il faut bien vérifier les réponses, parce que ce Chat a tendance à affirmer sans vérifier que ça marche... Pour ceux que ça intéresse, je mets ici le lien vers une de mes "conversations" récentes avec ChatGPT (en anglais). Le "Anonymous", c'est bien moi...

https://chat.openai.com/share/0efde510-ce02-48b1-955f-96b3175d6ad5

 

Moyenne des évaluations  -
En réponse à Joseph Rézeau

Re: ChatGPT comme aide à la programmation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour Papy-Jo !

Je ferai à peu près le même constat. Parfois ça me fait sourire, parfois ça me fatigue.
J'ai essayé de voir à quel point GPT pouvait produire un code propre dans le coding style Moodle. Et là aussi les résultats sont très inégaux.
En fait, je dirai que lorsque c'est juste, ça me ferait presque peur 😅 Quand c'est très grossier, ça me rassure un peu même si je n'ai pas ma réponse.

Pour le formatage de requêtes SQL, je trouve qu'il n'est pas toujours très loin de la bonne réponse. Je défriche avec GPT et j'affine avec ma cervelle. Le duo est plutôt efficace 😊

Ce qui est drôle (ou pas), c'est l'infini patience du bot ! Tu peux lui dire 20 fois que ça ne fonctionne pas, il s'excusera et tentera une approche royalement différente. Parfois, la bonne pioche, parfois (souvent), une tartuferie pathétique.

J'avais aussi essayé un abonnement payant à https://www.tabnine.com/ qui s'intègre directement dans Visual Studio Code que j'utilise comme environnement de dev. Là encore, c'est pathétique. Le plugin doit faire une prédiction sur le code à la volée. C'est surtout un bout de copier-coller maladroit. Il n'est pas possible d'entrainer le bot avec du code Moodle et c'est bien dommage.

En prospective, j'imagine que les modèles vont évoluer et qu'il devrait être possible de « doper » un bot avec tout le code de Moodle. Ainsi, au moins sur le Coding Style, on devrait avoir une correction quasi instantanée, voire des suggestions de code plus précises. PHP_CodeSniffer est déjà précieux pour rectifier les erreurs mais ça devrait pouvoir encore s'améliorer.
Est-ce que ça va nous inciter à la paresse intellectuelle ? Ou nous affranchir de certaines problématiques et soulager notre concentration ?

Patrick
Moyenne des évaluations Utile (1)
En réponse à Patrick Lemaire

Re: ChatGPT comme aide à la programmation

par Jean-Marc Doucet,
Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs
Bonjour,
je viens mettre mon petit grain de sel 😉et j'espère apporter quelques éclairages.

"Ce qui est drôle (ou pas), c'est l'infini patience du bot ! Tu peux lui dire 20 fois que ça ne fonctionne pas, il s'excusera et tentera une approche royalement différente. Parfois, la bonne pioche, parfois (souvent), une tartuferie pathétique."

Gardons à l'esprit que les modèles de language comme ChatGPT ne font que prédire statistiquement la suite du mot. Ils découpent les mots en jetons (les fameux tokens) et choisissent la proba la plus forte.
Capture d'écran dune demande à Chat GPT avec les tokens surlignés en couleurs en fonction des probabilités de prédiction.
Vous avez aussi des réglages complémentaires que vous pouvez modifier à votre guise comme la 'temperature', la 'Frequency penalty', etc  Capture d'écran des différents réglages de Chat GPT (vue depuis le playground API)
La "température" dans ChatGPT est un paramètre qui contrôle le niveau de prévisibilité ou de créativité des réponses générées. Voici comment cela fonctionne :
  • Basse Température (proche de 0) : Lorsque la température est réglée bas, les réponses de ChatGPT sont plus prévisibles, cohérentes et moins susceptibles de produire des résultats inattendus ou créatifs. Cela peut être utile pour des tâches qui nécessitent des réponses précises et fiables.
  • Haute Température (proche de 1) : Avec une température plus élevée, ChatGPT peut générer des réponses plus diverses, créatives et moins prévisibles. Cela peut être intéressant pour des tâches créatives ou lorsque l'on cherche des idées originales.
Vous pouvez préciser la "température" dans votre prompt.🙂

Aussi, il peut être très utile de donner un prompt précis et "aidant" à GPT. Par exemple, lui donner des exemples de bonnes ou mauvaises pratiques de requêtes SQL avant de l'interroger.

 "Il n'est pas possible d'entraîner le bot avec du code Moodle et c'est bien dommage." Vraiment ?

Je pense qu'il est possible de construire un assistant GPT 4, pour aider à coder avec les bonnes pratiques de Moodle.

Pourquoi pas commencer par construire un fichier de base de connaissances, avec par exemple les guidelines for developers ...   Tu veux que l'on essaie @Patrick ? 😉

Connaissez-vous : cet Assistant pour les enseignants et créateurs de cours sur Moodle  (@Miguël Dhyne clin d’œil
Certes, il ne porte pas sur le code, mais il est utile, non ?



Moyenne des évaluations Utile (2)
En réponse à Jean-Marc Doucet

Re: ChatGPT comme aide à la programmation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
C'est une voie à approfondir. J'ai commencé à me pencher sur la personnalisation de GPTs mais je n'ai pas encore vraiment abouti à quelque chose.
Si on pouvait lui faire « avaler » toute la doc de Moodle, ce serait déjà pas mal. Mais comment faire pour « construire UN fichier de base de connaissance » ? Moi, je veux bien tout compiler dans un seule PDF de 39 518 pages mais ça ne rentrera jamais ?! 😅
En réponse à Jean-Marc Doucet

Re: ChatGPT comme aide à la programmation

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

L'Assistant pour les enseignants et créateurs de cours sur Moodle  (@Miguël Dhyne clin d’œil ) nécessite ChatGPT Plus...

Si vous voulez utiliser GPT 4, il faudra passer à la caisse, c'est-à-dire payer un abonnement à 20$/mois de ChatGPT Plus.🤔

Plus de détails ici : https://openclassrooms.com/fr/courses/8204091-utilisez-chatgpt-pour-ameliorer-votre-productivite/8365181-pourquoi-et-comment-souscrire-a-un-abonnement-chatgpt-plus

En réponse à Joseph Rézeau

Re: ChatGPT comme aide à la programmation

par Jean-Marc Doucet,
Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs
Bonjour,
"Si vous voulez utiliser GPT 4, il faudra passer à la caisse, c'est-à-dire payer un abonnement à 20$/mois de ChatGPT Plus.🤔"
En effet l'acces aux IA est finalement payante.
Il est peut être moins couteux de passer par la plateforme OpenAI pour un accès à GPT4, La facturation se fait à la consommation de 'token'.
En réponse à Joseph Rézeau

Re: ChatGPT comme aide à la programmation

par Florent Pouzol,
Hello,

En ayant surtout utilisé GPT 3.5, les résultats sont pas terribles et c'est très compliqué de générer du code avec.
Par contre je trouve ça top quand on débute, vu que la doc Moodle est assez incomplète et dispersée à divers endroits. (testé dernièrement avec GPT4)

D'ailleurs je serai curieux de savoir si c'est d'une grande aide pour guider des enseignants et gestionnaires dans Moodle.
En réponse à Joseph Rézeau

Re: ChatGPT comme aide à la programmation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
« Une nouvelle étude publiée par la société d'analyse GitClear rapporte que l'utilisation des assistants d'IA pour la programmation ne contribue pas toujours à la qualité du code produit. Les chercheurs de GitClear ont constaté que les outils d'IA comme GitHub Copilot ne donnent en fait que des suggestions pour ajouter du code. Aucune suggestion n'est faite pour la mise à jour ou la suppression de code. Il en résulte notamment une quantité importante de code redondant. Ils ont également constaté une forte augmentation du "code churn". Cela signifie que le code est fréquemment modifié, ce qui est généralement un mauvais signe pour la qualité. »
https://intelligence-artificielle.developpez.com/actu/353321/L-utilisation-de-l-assistant-d-IA-GitHub-Copilot-pour-la-programmation-entraine-une-baisse-de-la-qualite-globale-du-code-et-une-quantite-importante-de-code-redondant-selon-une-etude/

Attention aux biais de confirmation ! Je pense qu'une seule étude de démontre rien 😉
Moyenne des évaluations Utile (2)
En réponse à Patrick Lemaire

Re: ChatGPT comme aide à la programmation

par Laurent Berger,

Bonjour

Chagpt n'est pas le seul Bon j'ai essayé celui-ci avec la question Comment rechercher une chaine en python?

La recherche de chaînes de caractères est une tâche courante en Python. Voici plusieurs méthodes pour rechercher une chaîne dans une autre en Python :

1. Méthode in

La façon la plus simple de vérifier si une chaîne est présente dans une autre :

python
texte = "Python est un langage de programmation puissant" if "Python" in texte: print("Trouvé!")

2. Méthode find()

Retourne l'index de la première occurrence ou -1 si non trouvé :

python
position = texte.find("Python") if position != -1: print(f"Trouvé à la position {position}")

3. Méthode index()

Similaire à find(), mais lève une exception si non trouvé :

python
try: position = texte.index("Python") print(f"Trouvé à la position {position}") except ValueError: print("Non trouvé")

4. Expressions régulières

Pour des recherches plus complexes :

python
import re if re.search("Python", texte): print("Trouvé!")

5. Méthode startswith() et endswith()

Pour vérifier le début ou la fin d'une chaîne :

python
if texte.startswith("Python"): print("La chaîne commence par Python") if texte.endswith("puissant"): print("La chaîne se termine par puissant")

6. Méthode count()

Pour compter les occurrences :

python
occurrences = texte.count("Python") print(f"Python apparaît {occurrences} fois")

Choisissez la méthode qui convient le mieux à votre cas d'utilisation spécifique. Les méthodes in, find(), et index() sont généralement les plus rapides pour des recherches simples, tandis que les expressions régulières offrent plus de flexibilité pour des motifs complexes.

En réponse à Patrick Lemaire

Re: ChatGPT comme aide à la programmation

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Pour compléter et prendre de la hauteur à ce sujet, je vous suggère la lecture de ces 2 excellents articles sur l'IA et les LLMs:

Moyenne des évaluations Utile (3)
En réponse à Nicolas Martignoni

Re: ChatGPT comme aide à la programmation

par Laurent Berger,

J'ai survolé en rase motte les articles et j'ai extrait quelques phrases :

Dans un article récent, que j’ai découvert via Étienne Nadji, trois auteurs appliquent ce concept de bullshit à ChatGPTHicks, Humphries et Slater, « ChatGPT is bullshit », 2024.
. Pour eux, c’est une bullshit machine : un générateur de conneries.

et dans l'autre 

La technologie derrière ChatGPT, Dall-E et autres n’est pas révolutionnaire, elle est spectaculaire. C’est très différent. Et, comme souvent, le spectaculaire attire une attention démesurée du grand public par rapport aux capacités réelles de la technologie. C’est ce qu’on appelle « une bulle ».

Pour moi cela sent le mépris (l'incompétence sur les LLM aussi "révolutionnaire, elle est spectaculaire"?). Cela me rappelle le débat sur la machine à calculer ou wikipédia : ceux qui savent compter ou possèdent la connaissance prétendent que ces outils sont mauvais.

Maintenant je vais faire mon expérience avec les étudiants que j'ai en cours en les encourageants à utiliser ces outils. Après on fera un bilan ensemble sur l'intérêt qu'ils ont pu tirer de cet usage. 

En réponse à Laurent Berger

Re: ChatGPT comme aide à la programmation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Comme dans tous les débats, je pense qu'on n'a pas à choisir un camp. Dans l'IA, il y a du bon et du moins bon. La vigilance reste de mise parce qu'avec les « fous du volant », on peut aller rapidement droit dans le mur.
On peut « sentir » des trucs venir mais le déni ou le prosélytisme n'amènent jamais à rien de bon.
Ce qu'il y a de particulier, … c'est que ça va terriblement (trop ?) vite !
En réponse à Joseph Rézeau

ChatGPT comme aide à la programmation

par Thomas THOREMBEY,
Bonjour à tous

Je n'ai pas testé GPT pour le développement moodle, mais le Chat de mistral AI, il m'a bien aidé sur certaines choses, mais semble bloquer sur certains points.
Même après lui avoir fait lire toute la page de doc sur l'achèvement, il n'arrive toujours pas à me proposer un code fonctionnel qui active l'achèvement personnalité.

Pour les autres fonctions de mon plugin il a été d'un grand aide avec quelques petites erreurs notamment sur les liens.
En réponse à Thomas THOREMBEY

ChatGPT comme aide à la programmation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour Thomas,

Selon moi, le point faible des IA actuellement pour des gros dev, c'est la mémoire de contexte. Une IA n'arrive pas à tenir compte d'un contexte (dans ton cas, le code de l'achèvement) trop volumineux. Résultat, le modèle prédictif de complétion propose des portions de code qui, statistiquement, collent avec les précédentes propositions. On un une "impression" de cohérence générale et, parfois, ça tombe pile comme il faut mais globalement, c'est un gros coup de bol ou un gros sac de nœuds.
 
Pour aller plus loin : « Rethinking Memory in AI: Taxonomy, Operations, Topics, and Future Directions » (https://arxiv.org/abs/2505.00675)
Et une illustration extraite de cet article …
Infographie illustrant "Un cadre unifié pour la taxonomie, les opérations et les applications de la mémoire dans les systèmes d'IA"

Patrick
Moyenne des évaluations Utile (4)
En réponse à Patrick Lemaire

ChatGPT comme aide à la programmation

par Jeanne Chio,
Bonjour, effectivement c'est difficile de garder une IA pour la totalité d'un projet car elle prend rarement en compte la totalité du contexte, vous avez une solution à cela ?
En réponse à Patrick Lemaire

ChatGPT comme aide à la programmation

par Jean-Marc Doucet,
Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs

Bonjour,

Merci Patrick, pour ce billet qui porte sur construction d'agents. C'est une problématique pour les constructeurs d'IA. Il aide à comprendre. sourire 

Si tu es un utilisateur de chatbot comme le 'chat' de Mistral, ou ChatGPT4o d'OpenAI ou encore Copilote ou Gemeni ce qui est à prendre en compte c'est la fenêtre contexuelle et sa taille en token. 

Enfin, en fonction de tes usages tu peux interagir avec ces modèles soit via la plateforme API soit via l'interface Web. 

Voici quelques valeurs produites par Perplexity (donc à valider clin d’œil )

Modèle Taille de la fenêtre de contexte
Llama 4 Scout/Maverick 10 000 000 tokens
Gemini 2.5 Pro 1 000 000 tokens
Claude 3.7 200 000 tokens
GPT-4o 200 000 tokens
GPT-4 Turbo 131 072 tokens
GPT-4 32 768 tokens
Mistral 7B 32 768 tokens
Llama 2 4 096 tokens

Pour aborder le point spécifique du développement de code : 

Certains modèles sont mieux adaptés comme Claude Opus 4 ou ChatGPT o4-mini. 
En savoir plus sur les modèles de ChatGPT 

Il y un espace spécifique IA et Moodle sur Matrix

et le fil Télégram des dev Moodle

Moyenne des évaluations Utile (1)