Arduino et chatGPT... flippant °_°

Bonjour à tous
ChatGPT, comme tout le monde, j'en avais bien entendu parler à la radio, puisque ça semble poser pas mal de problèmes avec les tricheurs qui s'en servent... Mais sans vraiment m'y intéresser.

Ce soir un ami m'en parle, et lui pose des questions sur la programmation arduino. Le truc répond, de manière assez pointue, en plus. (ça parlait de générer un fréquence précise, il sort un code avec delay(), et quand on lui fait la remarque que c'est bloquant, il sort un nouveau code avec timer et interruptions ...

Du coup, je m'y connecte, et le lui pose des questions sur... YASM, ma propre librairie. Forcément, au départ, le truc se plante complètement, YASM étant aussi le nom d'un assembleur x86, bien plus connu que ma modeste contribution :slight_smile:

Mais après une petite discussion, il commence à me donner des exemples, mais basés sur d'autres librairies de machines à états, et forcément ça ne colle pas. Sauf qu'une fois que je lui ai fourni un exemple fonctionnel (faire clignoter une led), il me l'a non seulement expliqué ligne par ligne sans se planter, mais en outre a compris l'utilisation des méthodes de la librairies, et peut me proposer ensuite un exemple différent (faire clignoter une led seulement deux fois) parfaitement fonctionnel.
Je suis très impressionné. À vrai dire, ça laisse une impression étrange... c'est limite inquiétant. Jusque là, un ordinateur qui comprends vraiment les questions complexes, ça restait de la SF, quoi.

Une copie de la "discussion" pour ceux que ça intéresse :

chatGPT_yasm.txt (16,4 Ko)

EDIT : du coup, j'y pense, si quelqu’un d'autre peut lui poser un autre question sur yasm, pour voir si le truc apprend des discussions avec d'autres utilisateurs ou non ?

Bonjour,

Oui, c'est flippant. J'ai lu votre discussion, effectivement, on voit qu'il s'excuse bien trop pour être humain :joy:
C'est "boulversifiant" à la vitesse à laquelle il apprend.

A+

hello
oui, bluffant..............................
j'ai voulu faire le test que tu demandes, mais sur le site"chatgpt.pro" pas moyen d'éviter les cookies, dans "gererles paramètres, il y a toujours une fenêtre qui empêche de décocher les options de pub, etc ...
bye bye le site............quand ils feront preuve d'intelligence ( et pas artificielle celle là) ,et ne chercheront pas à forcer les gens à accepter ......................

@dfgh je n'ai pas regardé, mais les cookies ne sont pas forcément mauvais et permet de ne pas exposer toutes variables de session dans l'URL en plus d'avoir un historique entre chaque session.
Certes c'est une faible protection, mais c'est déjà ça.

Je ne trouve pas ça très impressionnant. Il ne fait que répéter ce que tu lui dis. Ses exemples ne fonctionnent pas car ils sont adaptés d'exemples qu'il a pris à droite et à gauche dans d'autres bibliothèques. C'est de l'assemblage un peu aléatoire avec un algorithme qui a un peu de mémoire mais qui n'a pas de réelle compréhension.

Je l'ai testé il y a quelques jours en lui demandant de prouver que tout nombre pair est la somme de deux nombres premiers. C'est un problème de math à l'énoncé très simple mais qui n'a jamais été démontré.
Il m'a sorti un texte très argumenté et facile à lire, qui ressemblait à une démonstration mathématique avec quelques formules simples et plutôt pertinentes sur le sujet. Mais la démarche était complètement fausse. L'articulation logique est fausse. Et il termine fièrement son texte en disant qu'il a démontré le théorème.

Donc, il ne faut surtout pas prendre pour argent comptant ses réponses qui ont une base technique ou scientifique car il ne fournit aucune réelle réflexion ni création.

hello terwal
je viens de retenter, j'ai donc accepté les cookies.
ensuite je tombe sur une fenetre pour créer mon compte. donc j'y entre mon adresse e mail
s'ouvre alors une fenetre pour renseigner mon N° de carte bleue.

pourquoi faire ? puisque c'est un essai gratuit.
si je veux m'abonner ou acheter, c'est à ce moment là que je donnerai les renseignements nécessaires.

il n'est pas question que je laisse trainer mes N° de carte inutilement.....

ce site à une politique que je n'aime vraiment pas.

@bricofoy : Une chose à savoir avec Chat-GPT c'est qu'il n'est pas relié à Internet. Donc si tu lui demandes d'aller voir ta bibliothèque sur internet mais qu'il ne l'a pas utilisée dans sa base de données d'apprentissage, il ne pourra pas s'en inspirer ni aller la 'regarder' car il n'est pas connecté.
Donc ses réponses lorsque tu lui parles de ta bibliothèque ne sont pas pertinentes, car il est fort probable qu'il ne la connait pas.
Chat-GPT, contrairement à d'autres algorithmes (comme son grand frère GPT3) ne peut compter que sur ce qui lui a été fourni lors de son apprentissage. Il ne peut pas se mettre à jour. Il est conçu uniquement pour faire la conversation.

Mon propos était uniquement sur les cookies et encore certains cookies, je ne dis pas qu'il faut y faire une confiance absolue.
Un numéro de carte bleu sur ce genre "d'outil" n'est pas envisageable pour moi non plus.
Même mon adresse e-mail je ne la laisserais pas :slight_smile:

En fait ça dépend de quel intelligence tu parle, je ne suis pas sûre qu'il ait été entrainer pour remplacer un mathématicien ou un scientifique.
Par contre si il est conçu pour te faire croire que c'est un humain, c'est plutôt bon.

Et il arrive a faire du code qui peut faire illusion.
J'ai vu du code généré sur des algos simples, c'était plutôt intéressant.

Mais là ou il est impressionnant c'est sur l'étendu de ses connaissances.

Disons qu'il fait illusion lorsqu'il traite de sujets sur lesquels nous n'avons pas la capacité de le juger de manière pertinente.
Probable qu'une réponse sur un sujet comme la biologie, la géopolitique ou la psychanalyse me semble très bonne, mais qu'un expert juge que c'est creux ou peu convaincant.

Oui et non, justement le problème n'est pas de savoir, si il est juste, mais si il est crédible.
Si on prend une comparaison, combien d'entre nous serait capable de faire illusion sur autant de domaine?

Je ne crois pas qu'il a été programmé/éduqué pour battre un spécialiste dans chaque domaine, mais battre un individu lambda.

Bonjour,
Entièrement d'accord avec @dfgh que je salut au passage, c'est d'ailleurs en ce qui me concerne rédhibitoire !

Bonne journée.

oula, attention, y'a pas de numero de carte ou quoi que ce soit, tu as du tomber sur un site de phishing. La bonne url pour chatGPT, c'est https://chat.openai.com
Il faut juste une adresse email, c'est tout.

Non mais justement, ce n'était pas ça mon propos. Le propos était que, à partir d'un exemple qu'il ne connaît pas (c'est précisément pour ça que j'avais choisi ma librairie : j'etais à peu près sûr que ça lui serait inconnu) , il a été capable de le lire, le comprendre, et proposer un truc l'utilisant, mais différemment (en l'occurence, rajouter un état, en utilisant correctement les methodes).
Et ça je trouve ça vraiment impressionnant

@bricofoy merci pour le lien,

le site semble saturé et propose de m'envoyer un mail lorsqu'il y aura une place pour moi.

vous avez entendu parlé des 6 ou 7 étudiants en Master qui ont fait faire leur devoir par chatgpt?
leur prof s'est aperçu qu'il y avait un problème, non pas qu'ils avaient copiés les uns sur les autres, mais que leurs devoirs se retrouvaient dans les formes de certaines phrases et dans le style. ils ont tous eu 12 et des poussières.
c'est une autre étudiante qui à expliqué à la prof le pourquoi du comment.

oui, c'est justement cette histoire entendue à la radio qui m'a donné envie d'aller voir :smiley:

le site est souvent saturé en début de soirée en effet, mais en retournant voir de temps en temps, ça fini par fonctionner

le pire c'est qu'il est possible de lui demander de faire des fautes d'orthographe et de grammaire pour imiter les erreurs d'un écolier en 3e, par exemple... et ça fonctionne.

Normalement non, c'est ce que je disais dans mon second message. Il n'a pas de connexion internet, donc si tu lui parles d'une bibliothèque inconnue, il ne peut pas aller la voir ni s'en inspirer. Il ne peut qu'utiliser ce que tu lui dis et inférer à partir de ce qu'il connaît.
En l'occurrence, c'est assez clair. Il reprend tes explications dans ses réponses. Ce qu'il ajoute est issu des liens qu'il peut trouver avec d'autres codes utilisant des bibliothèques qu'il a utilisées pour son apprentissage.
C'est déjà très impressionnant mais retenez bien qu'il ne peut pas apprendre plus que ce qu'il connaît déjà (pas de connexion internet utilisable pour affiner ses réponses).

il n'a pas de connexion internet, mais justement, voyant ça, je lui ai fourni un exemple de code. Partant de là il a été capable de réemployer les méthodes de la librairie différemment, et sans se baser sur ce qu'il connaît et qui ne correspond pas, comme il l'avait fait en premier lieu.

Il s'est 'inspiré' de ses connaissances pour proposer un second code qui se rapprochait de l'exemple que tu lui as fourni.
Mais ce nouveau code était-il correct ?

Je crois qu'on n'est pas encore près de voir des codes performants générés de cette manière.

oui, le code était fonctionnel, et je viens de lui redemander un code encore différent : faire clignoter une led 3 fois puis faire un pause et recommencer. Il a été capable de lui même de rajouter un délai (paramétrable), un état de pause pour ajouter la fonctionnalité, le tout fonctionnel, commenté et avec l'explication fournie. Alors oui, c'est basé sur l'exemple que j'avais fourni au départ, mais malgré tout réutiliser les methodes de la librairie sans se planter pour faire autrechose, c'est pas évident...

[bricofoy@free.fr] toujours avec YASM, comment faire clignoter une led 3 fois, puis une pause, puis 3 fois, et ainsi de suite ?

Voici un exemple de code qui utilise YASM pour faire clignoter une LED trois fois, puis une pause, puis trois fois, et ainsi de suite :

> #include <yasm.h>	//include the yasm library
> 
> #define OnDelay		500 //500ms led "On" state delay
> #define OffDelay	750 //750ms led "Off" state delay
> #define PauseDelay	3000 //3000ms pause state delay
> 
> #define LedPin 		LED_BUILTIN  	// Most Arduino boards have a pin connected to an on-board LED in series with a resistor. 
> 					// The constant LED_BUILTIN is the number of the pin to which the on-board LED is connected. 
> 					// Most boards have this LED connected to digital pin 13
> 
> YASM led; //declaration of the "led" state machine
> int blinkCount = 0;
> 
> void setup()
> {
> 	pinMode(LedPin, OUTPUT); //declare the led pin as output
> 	led.next(ledOn); //set the initial state of the led state machine
> }
> 
> void loop()
> {
> 	led.run();  //update the state machine
> }
> 
> //////////led state machine/////////////
> 
> void ledOn()
> {
> 	digitalWrite(LedPin, HIGH); //this is the "On" state so we turn on the led
> 	
> 	if(led.elapsed(OnDelay)) //check if the delay for the "on" state is elapsed
> 		led.next(ledOff); //if the delay is elapsed we switch to the "off" state
> }
> 
> void ledOff()
> {
> 	digitalWrite(LedPin, LOW); //this is the "Off" state so we turn off the led
> 	
> 	if(led.elapsed(OffDelay)) //check if the delay for the "off" state is elapsed
> 	{
> 		blinkCount++;
> 		if(blinkCount >= 3)
> 		{
> 			blinkCount = 0;
> 			led.next(pause);
> 		}
> 		else
> 			led.next(ledOn); //if the delay is elapsed we switch to the "on" state
> 	}
> }
> 
> void pause(){
>     if(led.elapsed(PauseDelay))
>         led.next(ledOn);
> }

Ce code fonctionne de la même manière que l'exemple précédent, en utilisant une variable blinkCount pour compter le nombre de fois où la LED clignote. Cependant, cette fois-ci, lorsque blinkCount atteint 3, nous passons à l'état "pause" en utilisant la fonction led.next(pause), où nous utilisons la fonction led.elapsed(PauseDelay) pour vérifier si la pause de 3000ms a été atteinte, si c'est le cas on revient à l'état ledOn pour continuer à clignoter encore 3 fois. Cela permet de créer une boucle qui fait clignoter la LED 3 fois, puis une pause, puis 3 fois, et ainsi de suite.

Il est important de noter qu'il est possible de changer les valeurs de OnDelay, OffDelay, PauseDelay et le nombre de fois que l'on veut que la led clignote pour obtenir les résultats souhaités.