C’est un sujet que je voulais faire depuis longtemps, notamment la partie « Poser une question à l’IA depuis les scènes » (même sans image) pour pouvoir avoir des notifications proactives venant de l’IA (futuriste!)
Comme j’avais le nez dans la partie ChatGPT ce matin j’ai développé cette fonctionnalité ce qui n’était pas très compliqué avec la nouvelle API lié à la vision de GPT-4o mini
Demander à l’IA de décrire une image de caméra
Dans une scène, il devient possible de demander à l’IA de réagir à une image de caméra :
Cette fonctionnalité est assez futuriste, et comme il est possible d’injecter des variables dans le message, elle permet plein de choses
Analyser le bulletin météo du jour et me rédiger un petit résumé envoyé sur mon téléphone tous les matins à 8H
Si l’alarme retentit chez moi, me faire un message qui récapitule ce qui se passe : états des capteurs, analyse d’image, etc… tout combiné en un seul message !
Analyse de n’importe quelle image, que l’image vienne d’une caméra chez moi, à un flux en ligne, tout est possible
Juste un mot : Trop hâte de tester !! (ah bah non ça fait 4 ^^)
Cela fait rêver !! Il ne commencerait pas à y avoir un début de Jarvis par hasard ?? ^^ Ne manque pas grand chose pour faire parler SonosJarvis non ??^^
J’adore le concept, car il permettrait chez moi de me passer d’une partie de mes flux node-red en lien avec les caméras.
Pourvoir reconnaitre une voiture / un humain / un vélo serait un gros plus !!
J’ai continuer à travailler sur ce sujet ce matin, et je penses avoir fini.
Voilà un build Docker avec la fonctionnalité :
gladysassistant/gladys:ask-ai-in-scene
@Terdious (et les autres) si jamais tu veux tester et me dire ce que t’en penses !
Comment l’utiliser ?
Dans les scènes, il y a une nouvelle action « Demander à l’IA ».
Cette action va poser une question à l’IA Gladys (ChatGPT) comme si vous envoyiez un message à Gladys, et vous pouvez joindre une image de caméra qui sera analysé par l’IA (c’est optionnel).
Dans votre message, vous pouvez injecter des valeurs de capteurs :
Note: Afin que le temps de traitement soit le plus rapide possible, et afin que cette fonctionnalité ne soit pas trop cher économiquement, les images sont envoyés à l’API OpenAI en résolution « low », soit 512px maximum.
Si certaines informations sont toutes petites, ce ne sera pas visible par l’IA, mais franchement 512px on voit déjà vraiment pas mal !
J’ai pu tester un peu ce matin. Ca à l’air très intéressant même si je n’ai pas pu tester pleinement. Par exemple, selon la disposition de la caméra, je ne suis pas persuadé qu’en 512px il soit capable de déterminer la lecture d’une plaque d’immatriculation dans ma configuration ^^
Voici mon contexte et les réponses intéressante qu’il m’a faite, malheureusement même en mettant à 10s je n’ai pas pu avoir une voiture centrée dans l’image (d’ailleurs tu me diras si je te dois des sous car il a tourné une 10aine de minute comme ça) donc pas pu tester si il éteignait bien la lumière :
En sachant qu’il réponds à l’image du bas, je suis impressioné qu’il repère bien une Skoda à cette distance.
On peut voir que « Montre moi la caméra de la barrière » n’a pas d’effet, je suis obligé de l’envoyer dans une autre action.
Une chose est certaine c’est que ça va me motiver à intégrer la caméra dans Netatmo mais d’autant plus les webhooks.
Avis :
Intégrer la récupération de l’état des commutateur comme celle des éclairages pour ne pas avoir besoin de faire l’action « Récupérer … » et injecter de variable
Intégrer l’action sur les commutateurs comme cela est fait sur les éclairages
Intégrer la récupération de tout les types de fonctionnalités
Intégrer la récupération multiple (exemple: « Vérifie l’état de tout mes capteurs de température et fait moi un rapport complet »)
Mais sincèrement sinon ça fonctionne très bien et c’est très rapide.
C’est un peu trop sur le côté effectivement, si tu bouge la caméra ou la voiture je pense ça peut marcher
Non tkt c’est bon
C’est vrai que c’est fort!
Le développement actuel ne gère que les 7 actions qui sont dans la documentation, et n’a aucune connaissance de ta maison connectée.
Donc demander des « si le bureau est allumé », ou « Récupérer l’état du commutateur du purificateur de foin », ça ne fonctionne pas, c’est de l’hallucination de ChatGPT.
Je suis d’accord que ça serait cool que ce soit possible ! Je pense qu’il faut juste donner à l’IA une vision de l’état de toute la maison connectée au moment de la requête.
Je vois aussi que tu demandes des actions multiples dans ton bloc, actuellement ce n’est pas possible. Actuellement, 1 demande = 1 action/réponse. Si tu demandes plusieurs choses, l’IA va déterminer l’action la plus importante pour elle.
Mais on peut développer le multi-action sans souci.
C’est clair que pour toi qui est beaucoup Netatmo ça va être sympa le combo
Recherche « webhooks » dedans ou « List of events ». @pierre-gilles nous a dejà créé le webhooks dans Gladys il y a quelques années maintenant. Le plus long je pense aujourd’hui est de finir la PR sur les caméras. « Y a plus qu’à » ^^
Tu peux du coup faire des conditions sur des valeurs de capteurs, par exemple « Si la luminosité est faible, alors allume la lumière du salon »
Attention néanmoins, quand une image de caméra est jointe, je trouve que ChatGPT hallucine plus facilement. J’avais essayé de lui demander de me décrire l’image de la caméra + de me faire un récap des capteurs de la maison, et il hallucinait complètement en me sortant des valeurs de capteurs que je n’ai même pas !
Dis moi ce que ça donne chez toi, je serais curieux de voir sur une installation aussi grosse si ça ne ralentie pas trop l’exécution.
@Terdious j’ai trouve la cause, c’était côté serveur, le payload était bloqué car trop gros, mais la limite serveur était vraiment très basse donc je l’ai augmentée !