Et si vous laissiez l'IA faire le boulot ? Découvrez comment Sammy a automatisé ses tâches avec des agents intelligents !
Découvrir l'offre d'Infomaniak : https://www.infomaniak.com/fr/ksuite/myksuite?utm_source=youtube&utm_medium=social&utm_campaign=micode&utm_term=66851845ebc45
Et n'oubliez pas le code promo MICODE60 sur my kSuite+ ! Le code offre -60% pendant 12 mois. Il est valable 7 jours, uniquement pour l'offre avec 1 To de stockage Cloud.
Merci à eux pour cette collaboration commerciale
Merci à Sammy Azdoufal pour ses riches explications et son retour d'expérience !
👀 À ne pas manquer, comment un étudiant en IA vient de révolutionner l’archéologie Romaine : https://youtu.be/W_UQHr49Tvo
----
Suivi général : Michaël de Marliave
Rédacteur en chef : Matthieu Lambda
En plateau : Michaël de Marliave, Matthieu Lambda, et Sammy Azdoufal
Montage : Vincent Carbonneau & Léo Legendre
Directeur de production et stratégie : Arthur della Faille & Charles-Antoine d'Adhémar
Directeur technique : Till de Roquefeuil
Agent : Julie Jouanne
----
S'abonner est le meilleur moyen de soutenir notre travail : https://bit.ly/3xqS2pi
🎥 Suivez l'émission en direct: https://www.twitch.tv/Micode (c'est 1 mercredi sur 2 à 19h)
🎙 L'émission complète est dispo en podcast : https://underscoretalk.netlify.app/
🐦 Les annonces : https://twitter.com/UnderscoreTalk
Découvrir l'offre d'Infomaniak : https://www.infomaniak.com/fr/ksuite/myksuite?utm_source=youtube&utm_medium=social&utm_campaign=micode&utm_term=66851845ebc45
Et n'oubliez pas le code promo MICODE60 sur my kSuite+ ! Le code offre -60% pendant 12 mois. Il est valable 7 jours, uniquement pour l'offre avec 1 To de stockage Cloud.
Merci à eux pour cette collaboration commerciale
Merci à Sammy Azdoufal pour ses riches explications et son retour d'expérience !
👀 À ne pas manquer, comment un étudiant en IA vient de révolutionner l’archéologie Romaine : https://youtu.be/W_UQHr49Tvo
----
Suivi général : Michaël de Marliave
Rédacteur en chef : Matthieu Lambda
En plateau : Michaël de Marliave, Matthieu Lambda, et Sammy Azdoufal
Montage : Vincent Carbonneau & Léo Legendre
Directeur de production et stratégie : Arthur della Faille & Charles-Antoine d'Adhémar
Directeur technique : Till de Roquefeuil
Agent : Julie Jouanne
----
S'abonner est le meilleur moyen de soutenir notre travail : https://bit.ly/3xqS2pi
🎥 Suivez l'émission en direct: https://www.twitch.tv/Micode (c'est 1 mercredi sur 2 à 19h)
🎙 L'émission complète est dispo en podcast : https://underscoretalk.netlify.app/
🐦 Les annonces : https://twitter.com/UnderscoreTalk
Categoría
🤖
TecnologíaTranscripción
00:00Automatiser son travail grâce à l'IA, c'est le fantasme ultime de beaucoup de gens.
00:04Mais au-delà des démos tape-à-l'œil sur Twitter,
00:07c'est vrai que c'est dur de savoir ce qui est vraiment faisable aujourd'hui.
00:11Alors, on est parti à la recherche de quelqu'un qui l'a vraiment fait pour de vrai.
00:15Notre invité, Samy, a mis en place une équipe d'IA spécialisée
00:19qui travaille pour lui 24h sur 24 et qui font 50% de son travail.
00:25Il va nous faire une démonstration complète de son système,
00:28son PC custom à 5 000 balles,
00:30ses interfaces de contrôle pour gérer son équipe d'agents virtuels
00:34et surtout, nous montrer les outils qu'il utilise.
00:36Le plus fou, c'est qu'à la base, c'est pas un expert.
00:39Donc n'importe qui devrait pouvoir faire pareil.
00:42Mais juste avant, j'ai un message pour tous ceux qui ont déjà galéré
00:45à envoyer des fichiers volumineux en ligne.
00:47Infomaniac, qui sponsorise cette vidéo, vous propose Swiss Transfer.
00:50C'est un service qui permet d'envoyer jusqu'à 50Go de fichiers
00:53sans inscription et sans pub.
00:55Concrètement, vous pouvez protéger vos fichiers par mot de passe,
00:57définir une durée d'expiration jusqu'à 30 jours
00:59ou limiter le nombre de téléchargements.
01:00Et tout est stocké dans des data centers en Suisse.
01:03Mais le plus intéressant, c'est leur suite collaborative K-Suite.
01:06Ils viennent d'y intégrer une IA qui traduit et reformule vos mails automatiquement.
01:10Et contrairement aux solutions habituelles, c'est une IA souveraine.
01:12Vos données restent en Europe et sont traitées selon le droit européen.
01:15Je vous mets les liens pour Swiss Transfer et K-Suite en description et on reprend.
01:18Ce que je te propose, c'est qu'on commence par le début.
01:21C'est quoi ton travail exactement ?
01:23Donc moi, je travaille pour Clinitex, c'est une boîte de nettoyage.
01:26Et mon taf, c'est de trouver des solutions logicielles à des besoins terrain.
01:33Et ici, l'idée, c'est de faire à la fois du logiciel pour des administratifs,
01:36des gens qui travaillent au bureau,
01:37mais aussi de faire du logiciel pour ceux qui sont sur le terrain.
01:41Donc des agents d'entretien, par exemple.
01:44Donc mon but, c'est de récolter le besoin auprès de l'utilisateur,
01:46de rédiger un cahier des charges et de fournir une solution logicielle.
01:50OK, donc juste pour se figurer, ta journée, une journée type, c'est quoi ?
01:54Je vais plutôt prendre un mois, c'est plus simple pour moi.
01:57Tu as 20% de mon mois, c'est l'exploration.
01:59Qu'est-ce qui se fait ailleurs ?
02:01Quel techno existe et qu'est-ce qui pourrait m'aider pour aller un peu plus vite ?
02:04Tu vas avoir 20-30%, c'est du support direct.
02:07Un truc qui plante sur le logiciel que tu as fait, essaie de le corriger.
02:10Et le reste, c'est la continuation ou la création de nouveaux projets.
02:14Voilà comment je résumerais ça en pourcentage.
02:17OK, c'est intéressant parce que déjà dans le camembert,
02:20on commence à distinguer quelles parties peuvent être éventuellement automatisables
02:23et quelles parties ne le sont pas.
02:25Tu peux nous donner juste un exemple de projet,
02:28justement avant l'IA, avant l'automatisation, que tu as dû faire ?
02:33Un projet type d'un Tranet++ pour nos agents d'entretien.
02:37L'idée, c'était de faciliter leur administratif global
02:41et de pouvoir gérer leur commande de produits.
02:43On est sur des agents d'entretien qui ont besoin de produits pour nettoyer,
02:46donc il faut qu'ils puissent être aussi autonomes sur ce genre de besoin.
02:49Donc là, c'est très concret, c'est créer une plateforme
02:51où les agents puissent s'y connecter comme ils le souhaitent
02:54et interagir avec les services qu'il a dans son agence.
02:58Donc dans cette période avant l'automatisation,
03:02juste pour avoir un peu des chiffres en tête,
03:04même si c'est sorti un peu du jus du chapeau,
03:07c'est quoi par exemple la durée d'un projet
03:10ou le coût d'un projet si tu dois passer par une ESN ?
03:12On a voulu refaire cet intranet dont je vous parlais par une boîte de dev.
03:17Donc on avait déjà les maquettes UXUI, il fallait coder.
03:21Et on nous a proposé une petite offre qui dépassait les 100 000 euros.
03:26C'est le vrai prix.
03:27C'est le vrai prix que payent les entreprises pour créer des applications.
03:30C'est comme ça.
03:31C'est cher, mais voilà.
03:33Et un jour, tu te dis, alors que tu n'es pas un expert du sujet,
03:37de formation Machine Learning, etc.
03:39Absolument pas.
03:40Mais tu te mets à t'intéresser à l'IA et aux possibilités d'automatisation
03:44qui commencent à être possibles avec des agents,
03:48plein de mots comme ça qu'on a déjà entendus.
03:49Et tu te mets à essayer d'automatiser ton travail.
03:52Ouais.
03:52Et en fait, l'élément déclencheur, c'est que chez toi, tu as une machine,
03:56un PC pour miner de la crypto qui prenait un peu la poussière
04:00et qui est une bonne bête de course, quoi.
04:02En fait, c'est ça qui déclenche tout.
04:03Ouais. Et alors, je précise avec un collègue,
04:05on avait ce qu'on appelle un RIC de minage.
04:07Un RIC, c'est quoi ?
04:08C'est un genre de gros boîtier PC dans lequel on met une carte mère
04:12un peu particulière qui permet de brancher 10, 20 cartes graphiques.
04:17Donc, avec mon pote de l'époque,
04:20on l'avait ramené au bureau pour démarrer nos expérimentations.
04:23Et donc, effectivement, c'est par là que tout a commencé.
04:25Tu commences par quoi, en fait ?
04:26Je veux déjà load un modèle.
04:28J'ai mis une semaine, je crois, parce que c'était complexe,
04:31mais ça m'a permis de découvrir tous les logiciels qui gravitaient autour.
04:35C'est-à-dire ?
04:35Oyama.
04:36Oyama, c'est le premier.
04:38Ça te permet facilement de load des modèles, peu importe ta config,
04:43et ça te fournit une interface API.
04:46Et j'ai utilisé un petit projet qui s'appelle Anything LLM
04:49qui s'héberge sur un docker et qui te permet de load tout un tas de modèles.
04:54Ça se branche parfaitement à Oyama et ça te permet de faire des espaces de travail.
04:58Moi, je voulais que tous les utilisateurs qui puissent interagir avec cette interface
05:01puissent avoir leurs propres données
05:03pour pas qu'Oyama vienne mémoriser des données qu'il a eues dans des précédentes conversations.
05:07Je voulais vraiment travailler en vase clos.
05:08Chaque service avait son propre espace de travail.
05:11Et le logiciel en question, Anything LLM, m'a aidé à pouvoir faire ça.
05:14Donc ça faisait partie de mes premiers projets.
05:17Faisons d'abord un chatbot qui fonctionne sur la machine
05:19et puis on verra après si on peut faire du programme.
05:22C'est intéressant parce que pendant toute cette période où tu fais des expérimentations,
05:26j'aurais imaginé que tu utilises un chat GPT ou même en API,
05:31que tu utilises des modèles type anthropique.
05:34Et en fait, non.
05:34En fait, non.
05:35Dans le cas de mon entreprise, pourquoi ?
05:37Parce que je ne sais toujours pas ce qu'ils font avec nos données,
05:39mais encore aujourd'hui.
05:41Et c'est pour ça que si je voulais travailler avec des données d'entreprise,
05:43je ne voulais pas les envoyer à GPT parce que je ne sais pas ce qu'ils vont faire.
05:46Bien évidemment qu'à la sortie de GPT-3, on était déjà tous dessus.
05:50Mais au moment des expérimentations, on a choisi quand même l'open source.
05:54C'est hyper intéressant comme argument, justement,
05:56pour favoriser la partie R&D bac à sable.
06:00Toi, c'était un moyen de dire, on va mettre toute la partie sécurité des données,
06:04en fait, on la contourne en faisant du local et en ayant une grosse machine,
06:07bon, à 5 000 balles quand même.
06:09C'est intéressant.
06:10Mais pour l'instant, jusqu'ici, tu es quelqu'un qui a son PC en local
06:13et qui fait blabla avec une IA.
06:15C'est pas encore particulièrement étonnant.
06:18C'est ça.
06:19Là où ça commence à devenir intéressant,
06:20c'est quand tu te lances dans un réel projet qui a une utilité pour ton entreprise
06:24et que tu vas utiliser des systèmes d'agents et d'équipes d'agents.
06:29Moi, c'est un thème que j'avais déjà entendu, crew, AI, entre autres.
06:32Est-ce que tu peux nous expliquer, justement, c'est quoi le premier vrai projet
06:36où, pour le coup, on peut dire que tu commences à automatiser ton travail pour de vrai ?
06:40C'est pas un projet en tant que tel, c'est plutôt des fonctionnalités améliorées.
06:42Je parlais de mon intranet.
06:44Je vais le prendre comme base, parce que c'est simple à visualiser.
06:48On a eu une demande un peu particulière.
06:50C'était sur les dashboards.
06:52Donc, je vous ai parlé de l'intranet.
06:54L'agent vient, par exemple, faire une commande de produits
06:56et, en face, le manager vient la contrôler.
06:58Les dashboards, c'est ce que j'appelle les dashboards,
07:00c'est les moyens de contrôle de ces commandes.
07:02On va rester sur les commandes.
07:04Et il fallait, du coup, développer un truc un peu plus chiadé
07:07avec des données branchées de partout, surtout de notre ERP,
07:09pour avoir des données enrichies
07:12pour qu'en face, le manager puisse prendre les meilleures décisions.
07:14Et je me suis intéressé à Crew.AI.
07:17Crew.AI, c'est un système qui te permet de jouer avec des agents.
07:21Mais c'est pas juste des agents, c'est des équipes d'agents.
07:24C'est-à-dire que chaque agent a sa propre tâche.
07:27Tu vas avoir un agent développeur, un agent chef de projet, un agent testeur.
07:31Et au-dessus, tu as un agent manager.
07:34Et c'est pour ça qu'on appelle Crew.AI, ça forme vraiment une équipe.
07:37Chaque agent peut déléguer des tâches à d'autres
07:39et le manager vient superviser tout ça.
07:41Et donc, toi, t'as juste à regarder ce qui se passe.
07:43Parfois, tu peux intervenir.
07:44C'est-à-dire que tu peux insérer un chat pour dire
07:46« Attends, là, tu commences à faire n'importe quoi, oriente-toi plutôt vers ça. »
07:50Donc, tu peux arrêter, en fait, le process en plein milieu.
07:52Et au final, ma fonctionnalité est prête en cinq minutes.
07:55Attends, parce que moi, j'ai vu passer cette histoire de Crew.AI.
07:58J'ai vu quelques démos et sur le moment, tu vois, sur la pub, sur Twitter,
08:01je me suis dit « Ah, sympa, mais j'y crois moyen. »
08:04Je sais pas comment dire, mais je me suis pas dit sur le moment
08:07que ça pouvait avoir une utilité, justement, dans un environnement contraint.
08:12Je sais pas si tu vois ce que je veux dire, mais...
08:12Je vois ce que tu veux dire.
08:13Toi, dans ton cas, ce que je trouve le plus intéressant,
08:15c'est que t'es dans une boîte qui a déjà des technos d'installer,
08:19il y a déjà des choix techniques qui sont faits,
08:20t'as de la doc, t'as des spécificités, t'as des bases de données qui existent déjà.
08:24Et le truc arrive à bien se plug et à faire tout ce travail du développeur
08:28qui doit faire que tout soit bien branché, quoi.
08:31Je suis passé du Feintune au RAG,
08:33que je trouve plus intéressant pour mes cas d'usage.
08:36Alors, contrairement au Feintune, le RAG,
08:38il faut s'imaginer coller une base de connaissances à un modèle
08:43et chaque question que tu vas lui poser,
08:45qui est en rapport avec cette base de connaissances,
08:47et qu'il puisse piocher dedans et faire sa réponse,
08:50et à la fois avec ses données, et à la fois avec les données de son RAG.
08:53Moi, je suis un peu déçu parce que...
08:55C'est pas déçu, c'est juste qu'effectivement, en termes de complexité,
08:59c'est très impressionnant de faire son propre Feintuning
09:03et d'avoir des modèles spécialisés, etc.
09:05Mais en fait, tout ce qui compte, c'est le résultat.
09:08T'as les résultats qui sont aussi bien, voire mieux, en utilisant du RAG.
09:12Ouais, 100%.
09:13En fait, c'est limite plus incroyable, je trouve,
09:15parce que ça veut juste dire que la techno, elle est suffisante,
09:20rien qu'avec l'entraînement de base.
09:22Ouais.
09:23Donc toi, on a pris un premier exemple, c'était une feature.
09:25Si je dis pas de bêtises, un de tes premiers véritables projets,
09:28c'est un agent qui permet de contrôler une rigid Google Ads de ta boîte,
09:33qui est un budget à 40K l'année, quand même.
09:36C'est ça, on a ce budget-là l'année.
09:38L'idée, c'était de m'affranchir de ce travail de recherche de mots-clés,
09:43de positionnement, étudier les concurrents, voir sur quoi ils se positionnent,
09:47et donc, du coup, acheter les bons mots-clés au bon moment.
09:49Ça ne créait pas les campagnes, ça vient juste prendre les bons mots-clés
09:52au bon jour et venir les adosser aux campagnes.
09:55Et donc là, typiquement, tu passais par une équipe d'agents.
09:58Ouais, c'est ça.
09:59Et pour nous donner un ordre d'idée, c'est quoi les profils,
10:02c'est quoi les rôles que tu as dans l'équipe, c'est combien il y en a ?
10:05Donc, tu avais un research assistant qui vient juste creuler Google,
10:08tester les différents mots-clés, et puis regarder les top positions
10:11des différents concurrents qu'il aurait pris sur Google,
10:16et du coup, les classifier et les foutre dans un fichier Excel.
10:18CrowEye repose sur LangChain et ça permet d'avoir une méga-librairie qui existe déjà,
10:23du coup, d'avoir déjà plein de tools qui peuvent se plugger à ton système.
10:27Et donc, il y a un dev qui a déjà dev, un component,
10:30ce qui permet de brancher un agent à Google API, par exemple.
10:34OK, donc un agent qui peut rechercher sur Google.
10:37Ouais.
10:38Après ?
10:39Il y avait un content stratégiste de mémoire,
10:41donc un gars qui vérifiait que le contenu des sites en question
10:45fitait avec le mot-clé. Pourquoi ?
10:47Parce que nous, on a un domaine d'activité où tu as à la fois du B2C et du B2B,
10:50donc des gens qui vendent à des entreprises et des gens qui vendent à des particuliers.
10:53Donc, il fallait s'assurer que les gens qui ont acheté le mot-clé
10:55et qui sont positionnés sur ce mot-clé-là,
10:57ce sont bien des gens qui vendent du nettoyage à du particulier et pas à des professionnels.
11:01Donc, le content stratégiste vient analyser le contenu des différentes pages positionnées
11:05et vient se dire, OK, B2C ou B2B.
11:08Et donc, si c'est B2B, OK, je prends ce mot-clé et j'étudie la position de ce concurrent.
11:12OK, ça fait deux.
11:13Et le troisième, c'est le manager.
11:15En fait, ce n'est pas vraiment un agent, c'est celui qui chapote, c'est le superviseur des agents.
11:18Ce manager-là, il est prompté, c'est-à-dire que tu lui donnes quand même une orientation.
11:23Et l'idée, c'est de vérifier forcément le résultat obtenu,
11:27de prendre ce gros fichier Excel qui est amassé et de l'envoyer à un autre CrowEye.
11:31Ce CrowEye va juste transformer ce CSV en requête API
11:36et envoyer tout ça via API à Google Ads.
11:39OK, donc typiquement, ton manager, il a un rôle de contrôle ?
11:42Oui, c'est ça.
11:43Par exemple, s'il y a le moindre problème sur ton CSV,
11:45genre il est mal formé ou tu as eu une erreur entre-temps ?
11:47Il va demander à l'agent de recommencer.
11:48C'est sympa ça.
11:49C'est-à-dire que là, on a un système de recherche de mots-clés, de validation
11:54et de mise à jour directe à Google.
11:56Oui, dans la campagne, oui.
11:57On te demande même plutôt l'avis, là.
11:58C'est full automatique ?
12:00Alors, ça a été un temps comme ça.
12:02Mais oui, bien sûr que quand j'ai fait mes tests automatiques, non.
12:06Ça les mettait en pause et c'était à moi d'activer la campagne manuellement sur Google.
12:09OK, niveau 1.
12:11Nos premières claques.
12:12Maintenant, tu dirais que c'est quoi le niveau 2 ?
12:14C'est quoi le projet suivant qui a été vraiment impressionnant ?
12:17Aujourd'hui, on est presque full Microsoft chez nous.
12:21Notre annuaire est du coup sur l'Active Directory et on a tout dedans.
12:24On a les numéros de téléphone, les noms, les prénoms, les postes.
12:27Et on s'était dit à un moment que ce serait cool que sur les téléphones pro qu'on a,
12:32qu'on ait un annuaire qui est synchronisé avec cet Active Directory.
12:35Ce qui au final n'est pas si compliqué que ça.
12:38Sauf que tu regardes un peu les solutions du marché.
12:40Je crois que j'ai dû voir du 15 euros par mois par utilisateur.
12:44Mes calculs que j'avais faits, c'était qu'on perdait facile 5 000 euros par an.
12:49Et du coup, je me suis dit que ça tombe bien.
12:52Je ne sais pas faire d'application Android.
12:54Ce serait cool d'apprendre.
12:55Et autant le faire du coup avec l'IA.
12:58Donc, j'ai fait ma petite équipe.
13:00Et cette fois-ci, j'ai utilisé Cursor avec.
13:02C'est un software qui vient t'aider à développer, à continuer des projets
13:08ou à commencer des projets de zéro.
13:10Ça automatise une bonne partie du travail de développement
13:13et ça ouvre le développement informatique,
13:14et peu importe le langage que tu vas utiliser, à des novices.
13:17Même des super novices.
13:19Pour faire un tout petit peu l'historique, c'est un éditeur de code, tout simplement,
13:23qui est à l'origine un fork de VS Code.
13:27Et donc là où Microsoft, de son côté, développait sa version de copilot
13:31avec un chat sur le côté, de la complétion, etc.
13:34Il y a des gens qui ont dit « On a envie d'aller plus vite ».
13:36Et donc, ils ont fait un fork de VS Code et ça donnait Cursor.
13:40Et effectivement, la fonction la plus intéressante,
13:42c'est la capacité d'aller dans une même discussion avec ton modèle,
13:46éditer différents fichiers à différents endroits.
13:48Donc, de pouvoir vraiment développer des fonctionnalités
13:52qui impactent plein d'endroits dans ton code.
13:54Et ce qui a été assez révolutionnaire.
13:56Exactement.
13:56Donc toi, ce qui est intéressant, c'est que tu combines ton système d'agent,
14:01ton équipe d'agent avec Cursor.
14:03Oui. Donc, il fallait dev une application en Kotlin pour faire cette synchronisation.
14:08On synchronise la petite directorie avec ton annuaire de téléphone.
14:11J'ai donné ça en partie avec mes agents pour avoir une base propre.
14:15Et derrière, Cursor pour pouvoir faire les modifs que je voulais.
14:18Ça a pris deux heures.
14:20Donc, concrètement, ça correspond à...
14:22Si on doit s'imaginer, c'est quoi ?
14:24Qu'est-ce qu'elle a fait pendant deux heures ?
14:25C'est quoi comme volume de travail ?
14:27C'est quoi comme quantité de code, de logique ?
14:29Oui, bien sûr.
14:30En termes de ligne de code, je ne sais pas, il y a des classes,
14:33il y a des components, il y a plein de choses.
14:35Je ne sais pas, je dirais un millier, deux milliers.
14:37Ah oui, quand même !
14:38Et ça, c'est quand même une métrique intéressante.
14:39C'est-à-dire que tu développes une application Android en Kotlin
14:43qui fait deux milliers de lignes de code,
14:44qui, en deux heures,
14:46qui remplace entièrement des services...
14:49Qui coûtent 200 000.
14:51Très, très, très cher.
14:52Non, mais pour le coup, le service qu'on avait vu avec mon collègue,
14:54c'était 5 000 euros par an.
14:56Et encore, c'est 5 000 euros avec la taille actuelle de l'entreprise.
15:00Donc, forcément, peut-être que dans dix ans, ça aurait fait x10 par an.
15:03Donc, ce n'était juste pas viable dans le temps.
15:05Ça, je pense que c'était un bon niveau 2.
15:06Je pense qu'il y a un niveau 3 dont on va parler maintenant.
15:10Il n'y a pas si longtemps que ça, il y a quelques mois,
15:12on était, je vous parlais de l'intranet,
15:14on sait bien qu'on a ce fil rouge.
15:16Il fallait le recréer.
15:17Il fallait refondre le tout ?
15:18100 %, toute la technique, tout refondre.
15:21Toutes les fonctionnalités de zéro.
15:22On était passé par une agence UX
15:24qui nous a fait un travail incroyable, des écrans trop bien.
15:27Vraiment, on avait vraiment un effet waouh par rapport à avant et après.
15:30Et puis, il fallait le coder en React.
15:33Et puis, du coup, on a regardé si on pouvait le faire en externe.
15:36On a contacté des ESN.
15:37Et là, 100 000 euros passaient.
15:40Donc, le prix que je citais tout à l'heure.
15:42Et ma technologie a évolué, les agents également, les modèles également.
15:46Je me suis dit, je vais peut-être la faire, en fait.
15:49Et du coup, j'ai pris le figma.
15:51J'ai demandé à un modèle de vision de bien décrire tous les écrans.
15:54D'ailleurs, petite parenthèse,
15:56passez par l'IA pour faire vos promptes, c'est mille fois mieux.
15:58Je veux dire que même à l'étape de créer ton prompte,
16:01tu devrais te faire aider, c'est ça ?
16:02Non, mais oui, il n'y a rien de mieux que de demander
16:04le modèle sur lequel tu vas travailler.
16:06C'est quoi le meilleur prompt pour faire ce que tu veux ?
16:08Et donc, du coup, voilà.
16:08Donc, avec mon modèle de vision, j'ai utilisé Pixtral.
16:11J'ai envoyé tout le figma et chaque écran a tout bien décrit.
16:16C'est chaque écran que je l'ai transformé en prompt.
16:19Et j'ai compilé tous ces prompts dans un méga prompt.
16:23Et puis, du coup, ça me fait un gros fichier en Markdown
16:27qui doit faire des centaines et des centaines de lignes.
16:29Qui décrit donc les composants, les composants,
16:33même cahier des charges, le même langage, les microservices, tout pareil.
16:36Que j'ai filé à des agents et derrière, que j'ai récupéré avec Cursor.
16:39Avec un peu d'aller-retour quand même, en trois jours, c'était plié.
16:43Là, c'est la partie où je ne te crois plus.
16:46Le pire, c'est que tu ne le fais même pas en tout petit bout.
16:48C'est-à-dire que tu fais un méga prompt qui contient l'ensemble du projet.
16:53Question bête, à quel point c'est différent de filer ce giga prompt
16:57directement à un bon modèle ou de le donner à une équipe d'agents ?
17:00Tu ouvres la web interface de Cloud ou de GPT, tu fouilles le prompt dedans.
17:04Tu seras limité par la taille de contexte.
17:07On peut appeler ça quand même un agent, le chatbot de GPT ou d'Entropique.
17:10Mais c'est un agent, on va dire, qui a une taille de contexte définie.
17:13Donc, tu lui donnes tout ce prompt.
17:15Et ce prompt-là, c'est qu'un seul agent qui va vouloir le digérer.
17:18Alors qu'en passant par plusieurs agents,
17:20tu découpes la taille de contexte en plusieurs petits agents
17:23qui, eux, vont évoluer de manière autonome
17:25dans leurs tâches et avec leur contexte prédéfini.
17:27Et du coup, c'est plus simple d'envoyer des gros contextes.
17:30La découpe, elle est faite automatiquement.
17:32Ouais, c'est pas moi qui l'ai fait.
17:34Ouais, OK. En fait, tu balances tout.
17:37Et derrière, chaque agent sait ce qu'il doit prendre.
17:39Ouais, donc j'ai un prompt manager qui vient faire l'analyse du prompt,
17:43qui vient séparer correctement et à sa façon
17:47toutes les prompts en petits chunks, en petits morceaux de prompt
17:50qui font du sens et qui assigne ce morceau de prompt
17:53et le contexte et un contexte global compressé à chacun des agents.
17:58Donc l'agent connaît sa tâche parfaitement,
17:59il sait exactement où elle est, il a un petit bout du contexte global,
18:02pas tout, c'est impossible,
18:04mais ça lui permet de faire un peu moins d'erreurs.
18:06Le truc le plus intéressant que t'as dit,
18:07je trouve, c'est cette histoire de prompt manager.
18:09Ouais.
18:10C'est la première fois que j'entends parler de ce concept.
18:12Parce que pour que tout le monde réalise,
18:14chaque agent qui a son rôle spécifique
18:16et qui est censé être particulièrement bon en développement front-end,
18:20par exemple, ou en back-end ou en DevOps,
18:23je sais pas quels sont ceux que toi t'as pris dans ce cas-là,
18:25mais justement, plus ils sont pollués par des sujets différents
18:30et par des problématiques différentes,
18:31moins ils risquent d'être pertinents sur leurs problèmes.
18:34Exactement.
18:35Et là, intuitivement, je penserais que t'aurais des bien meilleurs résultats
18:38si toi-même, tu te dis OK, je vais prendre mon problème
18:41et isoler très spécifiquement, par exemple, le front-end de cette page
18:46et créer un prompt spécial pour ça.
18:47Mais en gros, ce que t'expliques, c'est que toute cette étape manuelle,
18:51dès la gage du prompt, de la séparation en différentes sous-tâches, etc.,
18:56toi, c'est géré par ce prompt manager.
18:58Ouais, c'est ça.
18:59Ce qui est un component de creveille, mais ça marche plutôt bien.
19:01Pour donner un peu des chiffres concrètement,
19:05tu lances une première fois ton système.
19:07Tu obtiens quoi à la fin ?
19:08Genre, t'as plusieurs fichiers ?
19:09En fait, c'est simple, c'est quand je suis passé du coup
19:11au moment où je passe du système d'agent à curseur pour faire mes modifications,
19:14j'ai un projet React, donc je l'exécute.
19:17T'as tous les fichiers.
19:18Ah ouais, j'ai déjà ma base.
19:19Bah oui, comme ça, c'est plus simple pour moi de modifier derrière avec curseur.
19:23Et l'archi est déjà pensé ?
19:24L'archi est déjà défini, ouais.
19:26Tous les services fonctionnent pas, bien évidemment, pas tous, pas tout de suite.
19:29C'est pour ça qu'il y a cette partie que j'aimerais bien enlever demain,
19:33cette partie aller-retour, parce que j'ai essayé de mettre des agents tests,
19:37reviewer et des agents bug hunter,
19:39donc des agents qui viendraient tester et trouver les bugs,
19:42mais j'y arrive pas.
19:43Laisse-nous du taf !
19:46Ta première version, entre guillemets, fonctionnelle,
19:48juste pour se rendre compte de ton appli.
19:51Visuellement.
19:52C'est les mêmes écrans.
19:53Moi, c'est possible, parce que ton pixel, ton modèle visuel,
19:58il va te donner une description qui est approximative de ta maquette.
20:02Il peut pas te donner littéralement les couleurs hexadécimales exactes,
20:07il peut pas te donner l'arrondi de ton rectangle exact.
20:11L'arrondi, si, la couleur, effectivement, c'est un peu plus compliqué.
20:14En gros, c'est quasiment identique.
20:16Ah mais c'est quasiment identique, c'est comme si certains utilisaient Cursor,
20:20envoyaient une capture d'écran d'un site web
20:23et demandaient de coder le front-end, ça marchait tout de suite.
20:25C'est trop intéressant.
20:27Ça, c'était que le niveau 3 encore.
20:29Maintenant, on passe au niveau 4,
20:31et là, ce que je trouve le plus intéressant,
20:33c'est que ce projet-là, c'est un projet perso.
20:36T'as créé une application
20:38qui était dans le top des rankings sur le Play Store.
20:40Encore aujourd'hui.
20:41Encore aujourd'hui, des applications payantes
20:44avec ton système d'équipe d'agents.
20:46Il y a quelques mois,
20:48je m'achète un vélo.
20:49Un vélo électrique.
20:50La marque, c'est Super73.
20:52Et cette marque de vélo,
20:53elle a besoin d'une application pour fonctionner.
20:56Donc ça veut dire que quelque part,
20:58que ce soit dans le contrôleur du vélo ou dans le vélo en tant que tel,
21:00t'as un commuteur Bluetooth, une puce Bluetooth.
21:03Et je vois vite fait les inconvénients de cette application.
21:08Déjà, t'as besoin d'une connexion Internet, ce qui est stupide.
21:11T'as besoin de créer un compte, ce qui est stupide.
21:13Et tu peux te faire brider à distance.
21:15C'est-à-dire que cette marque, il y a deux ans,
21:18avait enlevé des fonctionnalités de son vélo à distance.
21:21Et du coup, je regarde les alternatives qui existent.
21:24Et il y en a.
21:25Donc il y a des développeurs qui ont démarré ce travail
21:28presque de reverse engineer du contrôleur
21:30pour essayer de faire leur application sans connexion Internet,
21:35simple, mais efficace.
21:37Et elles fonctionnent bien ces applications.
21:38Mais pas pour moi.
21:39J'ai des idées de fonctionnalités que je voulais absolument.
21:42Et le dernier point, c'était qu'aucune de ces apps,
21:46que ce soit l'officielle ou celles qui ont été développées à côté,
21:48ne sont natives.
21:49Ça utilise des frameworks, des flutters, des React, etc.
21:52Et pour les connexions Bluetooth, c'est pas l'idéal.
21:54C'est cool quand c'est natif,
21:55parce que tu peux utiliser vraiment les librairies natives de ton tel.
21:58Et donc, je m'imagine un peu ces écrans,
22:01un peu futuristes pour mon application.
22:03Rien de dessiné, je suis très nu en dessin et en design.
22:06Par contre, je sais mettre des mots sur ce que je pense.
22:07Et je commence à créer ma petite équipe.
22:10Et cette fois-ci, je vais démarrer avec le développement iOS,
22:13qui est pour le coup...
22:14Je crois que je n'ai jamais ouvert un projet Swift de ma vie avant.
22:17Et je commence à créer mon petit prompt.
22:20Cette fois-ci, j'y vais petit bout par petit bout.
22:21Pourquoi ? Parce que je ne savais pas où est-ce que je pouvais aller.
22:23Et du coup, je lui ai dit, on va commencer avec une interface simple.
22:26Tu vas à la fois développer une interface qui est OK
22:29pour réceptionner le travail de la première équipe,
22:33dont j'ai oublié de parler, qui va être dédiée au reverse engineering.
22:36Donc, tu as à la fois une équipe qui va essayer de trouver
22:38toutes les routes possibles, inimaginables,
22:40qu'on peut activer via le Bluetooth sur le contrôleur du vélo.
22:44Et une équipe qui va prendre les informations de cette team reverse engineering
22:47et qui va créer cette application avec mes petites indications
22:50comme le design que j'avais un peu en tête.
22:52Donc, je trouve une équipe qui s'appelle Reverse Bike en ligne,
22:55qui a déjà démarré un peu ce travail de recherche.
22:57Parce que du coup, il faut quand même péter le contrôleur
22:58pour pouvoir discuter avec lui.
23:00Et donc, je vois quelques routes BLE.
23:02Ce sont des routes Bluetooth.
23:04Quand tu connectes à un périphérique Bluetooth,
23:05tu peux lui envoyer du signal, des actions, etc. à faire.
23:08Et généralement, tu passes par des routes qui sont prédéfinies par le contrôleur.
23:11Et l'équipe en question avait découvert quelques petites routes.
23:14Allumer le phare, changer certains modes.
23:17Je me suis dit, c'est cool, déjà je peux faire un truc cool avec ce que j'ai là.
23:20Peut-être que je peux aller plus loin en poursuivant les travaux de recherche.
23:23Et parce que les travaux de recherche étaient méga super bien documentés,
23:26c'est très facile pour moi de transformer ça en data correctement digérable pour mon IA.
23:31Cette équipe-là dédiée au reverse.
23:33Ouais.
23:34Moi, ce que je trouve intéressant, c'est que c'est pas d'abord que tu la conceptues,
23:37tu la fais travailler pendant un certain temps
23:39et tu crées une sorte de document récapitulatif du fonctionnement interne du vélo.
23:45C'est pas ça, c'est que tu définis les deux équipes en même temps.
23:48Je dis pas oui, parce que le design, tu peux complètement le faire
23:51sans avoir besoin de la notion un peu tech du contrôleur.
23:54Parce que je peux du coup, à la fois avoir un super design
23:57à la fin du process de l'équipe 1.
23:59À la fin du process de l'équipe 2,
24:01j'ai ma liste d'informations sur comment fonctionne le contrôleur.
24:04Et à la fin, j'ouvre Cursor, je lui dis,
24:06regarde, j'ai une super appli, tu vas maintenant la faire fonctionner.
24:09Et voici ma documentation.
24:11Et lui, il te connecte toutes les routes avec les interactions, avec les boutons ?
24:15Exactement. À partir du moment où tout ton UI, elle est déjà existante,
24:17que tous tes composants sont déjà existants,
24:19il y a juste à créer un genre de Bluetooth manager
24:21qui fera le lien entre les actions que tu fais dans ton UI
24:23et ce qui se passe dans ton contrôleur.
24:25Juste précisément, j'ai une question, c'est sur ce côté-là, trouver toutes les routes,
24:29tu as fourni à ton agent un outil supplémentaire
24:33qui lui permet de tester une route ?
24:35Non.
24:36Autant il y a une intégration Google direct,
24:38autant j'imagine qu'il n'y avait pas d'intégration pour ton vélo.
24:41Non. En fait, dans le programme Python, il vient du coup bruteforcer toutes les routes
24:45et ça me génère un CSV avec toutes les routes qui ont répondu positivement.
24:48Ah, au pif en fait.
24:50Ouais, au pif.
24:51Et après, moi, c'est plutôt simple, parce que là, pour le coup,
24:52il y a un besoin d'un peu d'humains, de tester ces routes.
24:55Tu utilises n'importe quel outil qui permet de communiquer en Bluetooth avec un objet,
24:58tu copie-colle ces routes et tu regardes ce que ça donne.
25:00Donc en fait, on a plein qui ont répondu avec une erreur ?
25:02Ouais. Et qui ne l'ont pas pris en compte.
25:05En fait, le contraire était bien fait, parce que quand tu envoies une route qui est positive,
25:10ça t'envoie une sorte de notification pour confirmer que l'action que tu viens de faire, elle est effectuée.
25:15Donc c'est très simple, au final, de regarder les routes qui fonctionnent et ceux qui fonctionnent pas.
25:18J'imagine que le nom des routes est logique.
25:20Prédictible ?
25:21Non.
25:22Et ça veut dire aussi que tu n'es pas sûr d'avoir tout requêté, toutes les routes possibles.
25:27Je n'ai pas toutes les routes, c'est une certitude.
25:29Et donc, tu finis ton appli.
25:30Ouais.
25:31On est d'accord que c'est beau, déjà ?
25:33Oui, c'est beau.
25:33Interface bien léchée.
25:35Je me doute que ton icône, tu ne l'as pas.
25:37Non mais ça, c'est Dali, pour le coup.
25:39C'est vrai, c'est le truc le moins créatif du projet.
25:42Et donc, si tu peux nous décrire un tout petit peu, pour nous qui n'avons pas forcément de vélo électriqué,
25:47qu'est-ce que tu peux faire, là ?
25:48Donc là, ce que tu vois, c'est une interface, c'est une appli qui va se connecter automatiquement à ton vélo.
25:52Tu n'as pas besoin de faire aucune action.
25:54Tu ouvres l'appli et ça fonctionne tout de suite.
25:56Tu as un genre de détecteur de vélo avoisinant.
25:58Parce que tu peux être en, ils appellent ça des squads,
26:01parce que cette marque-là a beaucoup de squads, des groupes de gens qui aiment bien rider ensemble.
26:05C'est une vraie...
26:06Et donc du coup, ces gens-là ont tous le même vélo, ou pas le même modèle, mais la même marque.
26:10Donc j'ai du coup aussi construit un système qui vient reconnaître avec un petit détecteur de proximité,
26:15avec une petite flèche, genre celui-là, c'est le tien.
26:17Comme ça, tu sais que si tu veux configurer ton vélo de manière un peu poussée,
26:20tu sais lequel vélo choisir.
26:23Mais de base, effectivement, c'est automatique.
26:24On a deux petits boutons.
26:26À gauche, ça te permet de changer le mode de l'application.
26:29Et c'est ces fameux modes qui étaient restreints.
26:31Par l'entreprise en question, il y a deux ans.
26:33Et dont un mode qui te permet de le transformer en scooter.
26:37Littéralement.
26:38Sur voie privée uniquement.
26:39Du coup, cette partie-là, c'était juste ce qui existait au début.
26:42Tout ce que tu vois après n'existait pas.
26:44Donc j'ai rajouté un recorder, un truc qui enregistre ton trajet.
26:49J'ai rajouté une maps, un GPS que j'aime, j'adore,
26:53qui est un micmac entre le GPS d'Apple,
26:56qui te file une vue 3D super futuriste,
26:59et des routes qui sont méga orientées pour vélo.
27:02Donc il y a un genre de petit algo qui a été développé par un agent
27:04qui ne va pas te prendre les routes
27:06que Apple ou que Google va te donner pour les vélos.
27:08Il va te donner les meilleures routes possibles.
27:11Il pioche plein de données différentes.
27:13Il prend plein de trucs en considération, dont la météo par exemple,
27:17pour te donner les meilleures routes possibles.
27:18J'ai mis une notion de dangerosité dans la route.
27:20Tu as plein de routes où tu n'as pas de passage cyclable
27:24et où c'est parfois un peu dangereux,
27:25même quand il fait beau temps de circuler là-dessus.
27:28Moi, j'ai cette info là.
27:29Comment tu as cette info ?
27:31En fait, il y a plein d'API qui peuvent te donner des indications
27:34sur les pistes cyclables des différentes routes que tu as.
27:36Ça ne fonctionne pas dans 100 % des cas,
27:37mais on va dire dans 80 %, ça fonctionne.
27:39Et donc, je sais reconnaître quelle route est cyclable et pas cyclable.
27:43À partir de ce moment-là, je peux jauger la façon
27:46dont je vais donner la navigation en fonction de plein de paramètres,
27:49en fonction de ta batterie aussi.
27:51Tu as plein de chemins que je ne prendrai pas,
27:52que je ne te donnerai pas si tu n'as pas beaucoup de batterie
27:55et qu'il pleut par exemple.
27:56Et puis derrière, c'est lié avec tout un tas d'activités.
27:59Tu as des achievements.
28:00Genre, si tu passes une certaine vitesse, hop, tu as un petit badge.
28:03J'ai mis un peu de gaminification juste parce que je pouvais, en fait.
28:06Et à chaque fois, j'essayais de trouver les petits trucs techniques
28:08que je pensais impossibles et je les ai rajoutés.
28:10En fait, ta barrière à l'entrée pour ajouter des choses est tellement basse
28:14avec ton système que tu vas beaucoup trop loin.
28:17Et du coup, je me suis dit, next step, c'est quoi ?
28:21C'est, viens, je contrôle mon vélo avec Siri.
28:24Et donc, du coup, j'ai créé des, j'appelais ça des shortcuts Apple.
28:29Et via mon système, et sans utiliser l'interface d'Apple,
28:33tu peux programmer tes shortcuts pour allumer la lumière,
28:36passer dans un certain mode.
28:37Et du coup, peut-être que tu voulais enchaîner sur une autre question,
28:40mais la suite, c'était Android.
28:41C'est des projets, généralement, de ce que j'ai vu,
28:43il y a beaucoup plus de code que du Swiss.
28:45Donc, c'est chiant à faire.
28:45C'est chiant aussi à faire si on veut exactement le même design.
28:48Parce que généralement, par rapport sur iOS,
28:50je dépendais de kits liés à l'iOS.
28:54Donc, il a fallu recréer l'équivalent sur Android.
28:58Donc, j'ai créé un genre de convertisseur de langage.
29:01Et cette fois-ci, ce sont exclusivement des agents.
29:03Je ne suis pas du tout passé par curseurs.
29:05Où j'envoie mon projet, ça l'analyse.
29:07Un peu comme si tu envoyais ton projet sur GPT
29:09et tu lui demandais d'analyser le code.
29:11Donc, ça analyse correctement le code.
29:12Et c'est bien trouvé pour chacune des fonctions l'équivalent.
29:14Et du coup, on va dire que, je crois, en une semaine,
29:18avec beaucoup d'aller-retour,
29:20il m'a sorti effectivement l'application Android native en Kotlin.
29:23Pareil, Bluetooth natif avec, de manière ISO,
29:26les mêmes fonctionnalités que mon application iPhone.
29:29Tous les problèmes de ce gars dans la vie, c'est...
29:30De grand-mère.
29:31Enfin, il n'y a qu'une.
29:35Par curiosité, ça t'a mis combien de temps à peu près, du coup,
29:38pour la faire, cette appli ?
29:39Peut-être la première version.
29:40La première version iOS, du coup, un week-end.
29:43Donc, elle coûte combien l'appli ?
29:4510 balles.
29:4610 balles ?
29:46Ouais.
29:47Et tu sais estimer là, actuellement, combien de ventes tu as fait ?
29:49J'ai passé les 10 000 dollars en deux mois.
29:54Mais c'est incroyable.
29:55C'est drôle, ouais, c'est drôle.
29:57Qu'est-ce qu'il fait dans les projets que tu nous as montrés,
30:00depuis le début, que ça marche bien ?
30:02Et c'est quoi les limites éventuelles que tu as pu percevoir au fur et à mesure ?
30:06S'il faut vraiment que je réponde à cette question, je ne sais pas.
30:09Peut-être que c'est les projets de demain qui me feront comprendre
30:11que redescendre un petit peu, c'est pas possible.
30:15Ouais, donc là, t'es un peu dans ta lune de miel,
30:17où t'es en mode, genre, tout est possible.
30:19Mais est-ce qu'il n'y a pas un côté flippant, du coup, là ?
30:21Flippant pour quoi ?
30:22Pour le dev, pour le profil du développeur, tout simplement.
30:27C'est pas flippant.
30:28Si tu sais utiliser ces outils-là, parce que j'en parle comme si c'était très facile,
30:31mais il faut quand même un peu d'apprentissage,
30:34au moins pour le prompting.
30:35Pour moi, ça reste le plus important et c'est clairement pas inné.
30:37Ça va plutôt être un accompagnant des développeurs de demain
30:39et ça va faire foisson sur leur productivité et sur leurs ressources.
30:42Ça va peut-être diminuer des équipes, ça ne va pas supprimer le métier de développeur.
30:47Ça, c'est mon point de vue actuel, la chose.
30:49Et l'état technologique actuel est suffisant
30:52pour construire n'importe quel projet business.
30:54Si vous n'avez pas suivi l'histoire du Visuvius Challenge,
30:57ou comment un papyrus a été décrypté par un étudiant en IA,
31:01allez voir cette vidéo, c'était vraiment passionnant.