Découvrez Gourou Fabulus, la version dématérialisée d’Homo Fabulus, première étape importante dans mon processus de gourouification.
Peu aussi servir de tutoriel pour coder un chatbot pouvant discuter avec vos documents (application RAG), avec les frameworks python Llamaindex et streamlit.
Discutez avec Gourou Fabulus ici : https://homofabulus.com/gourou.
Code de Gourou Fabulus disponible sur github.
Transcription de la vidéo pour ceux qui préfèrent le texte :
Vous l’ignorez peut-être, mais mon but ultime dans la vie c’est de devenir un gourou. Vous savez, faire de la vulgarisation scientifique, c’est très exigeant. Pour faire une pauvre vidéo de 20 minutes qui sera regardée par trois pelés, il faut lire tout ce qu’on peut sur un sujet, confronter les arguments des différents auteurs, ajouter des références à chaque affirmation, faire relire son script par des experts, refaire le tour de la littérature parce qu’on a oublié plein de trucs, etc. Tout ça, c’est beaucoup de boulot, c’est long, c’est pénible, et ça serait bien plus facile si je pouvais juste vous raconter tout ce qui me passe par la tête au petit déjeuner, et que vous buviez mes paroles. Autrement dit, mon travail serait grandement facilité si je pouvais être un gourou.
C’est pourquoi aujourd’hui j’ai le plaisir de vous annoncer le lancement de Gourou Fabulus, le chatbot numéro 1 sur la biologie du comportement en France. C’est, pour faire simple, une version dématérialisée de moi-même et à laquelle vous pouvez poser toutes vos questions, accessible 24h/24, et même sans carte bleue. Ce chatbot constituera j’espère une première étape importante dans mon processus de gourouification, pour me rapprocher des personnes que j’admire le plus dans le monde de la vulgarisation, j’ai nommé Didier Raoult, Idriss Aberkane et Science de comptoir.
Comme je pense que ça peut en intéresser plus d’un d’entre vous de savoir comment se gourouifier, je vais vous montrer comment vous pouvez faire ça rapidement avec quelques lignes de code. Vous inquiétez pas, si vous n’avez jamais codé, je vais rester sur des explications de haut niveau, et ça pourrait même vous motiver à apprendre à coder, parce que vous allez voir que rien qu’en tapant quelques mots dans un fichier on peut arriver à faire des trucs incroyables. Et pour les plus geeks d’entre vous, en fin de vidéo j’entrerai un peu plus dans les détails et je vous donnerai des conseils pratiques si vous voulez essayer de faire la même chose.
Parce que oui, même si vous n’avez pas de velléités de gourouification, ce que j’interpréterais personnellement comme un manque d’ambition, mais ça ne m’étonne pas de vous, mes abonnés, ce que vous devez tous avoir par contre c’est un vieux dossier sur votre ordi que vous n’osez même plus ouvrir tellement il déborde de fichiers mal rangés et mal nommés. Hé bien construire un chatbot comme Gourou Fabulus c’est un excellent moyen de pouvoir aller rechercher dans ce dossier une information sans même avoir à l’ouvrir. En gros, si vous avez des fichiers sur votre ordi avec lesquels vous aimeriez discuter, tout type de fichier texte, des pdf, des word, des powerpoints, un chatbot comme Gourou Fabulus vous aidera à faire ça.
Et puis, moi je fais ça aussi parce que le meilleur moyen d’éviter de se faire voler son job par les IAs, c’est de le leur donner avant qu’elles ne vous le prennent.
1. Le principe
Avant de continuer, un mot du sponsor de cette vidéo, Ecosia. Écosia est un moteur de recherche qui plante des arbres quand vous faites des recherches sur le web. Ce sponsor est donc une formidable opportunité pour moi de rappeler qu’il faut se méfier des projets qui plantent des arbres pour sauver la planète. Il y a en effet plusieurs conditions à respecter pour que ces projets ne fassent pas plus de mal que de bien :
– d’abord, la base c’est de ne pas penser que la plantation d’arbres permettra de ne plus décarboner nos économies par ailleurs, ou nous permettra de polluer plus par ailleurs.
– en particulier, il sera toujours préférable de protéger les forêts existantes et recréer celles qui viennent de disparaître, plutôt que de planter dans des endroits où il n’y avait jamais eu de forêts
– ensuite, hyper-important, il faut que ces projets soient faits en partenariat avec les populations locales, pour éviter que ça ne crée des problèmes sur place, qu’on plante sur des terres qui permettaient aux gens de se nourrir par exemple, et aussi tout simplement pour s’assurer que les arbres ne seront pas coupés au bout de quelques années. L’aspect social est hyper-important pour la pérennité de ces projets.
– et il faut enfin planter des espèces locales et diversifiées pour s’assurer qu’elles ne crèveront pas à la première sécheresse, et je vous renvoie au rapport du GIEC Working Group 3 section 7.4.2.2 p780 pour tous les détails.
Et alors chez Ecosia, est-ce qu’ils font tout ça ? Hé bien oui. J’ai épluché leur site web, j’ai regardé leurs vidéos FAQ, j’ai lu leur rapport d’activité, et pour en être absolument certain j’ai même fait le relou en leur envoyant un email avec des questions précises. Leur réponse a été claire et argumentée, donc je peux vous les recommander. Vous trouverez dans la description un lien pour faire d’Ecosia votre moteur de recherche par défaut, ce que j’ai moi-même fait. Ecosia est téléchargeable sur PC et sur mobile. À savoir que ça ne change rien pour vous, ils vont juste utiliser les revenus générés par la pub quand vous faites des recherches pour planter des arbres, plutôt que de les mettre dans leur popoche comme le ferait une entreprise normale. Et je réinsiste : c’est vrai qu’il y a une certaine hype autour de la plantation d’arbres, et que fait n’importe comment ça peut s’avérer un vrai gaspillage de ressource, mais faut pas non plus tomber dans le reforestation-bashing, si vous lisez le rapport du GIEC déjà mentionné vous vous rendrez compte que la reforestation fait partie des outils sérieusement envisagés pour lutter contre le changement climatique.
Bon, revenons à nos gourous.
Alors, en gros, ce qu’on veut essayer de construire ici, ça s’appelle une application RAG, pour Retrieval Augmented Generation, Génération augmentée par un rappel. C’est-à-dire qu’on veut construire un chatbot tout à fait classique, comme ceux que vous avez l’habitude d’utiliser, comme ChatGPT, sauf qu’on veut brancher ce chatbot sur des documents personnels pour orienter ses réponses vers les informations qui se trouvent dans ces documents.
On va faire un petit schéma ça sera plus clair. Vous, vous allez poser une question à un chatbot. Lui, en temps normal, ce qu’il fait c’est la transmettre à un modèle de langage, qu’on appelle LLM, et le LLM va écrire une réponse à partir de ses connaissances internes, c’est-à-dire à partir des milliards de textes sur lequel il a été entraîné. Nous, là ce qu’on va faire c’est qu’avant d’envoyer la question au LLM, on va aller chercher dans une base de données, qu’on appelle un index, des documents qui semblent pertinents pour répondre à la question. Moi en l’occurrence, ma base de données, elle va être constituée des scripts de toutes les vidéos que j’ai publiées sur ma chaîne YouTube depuis ses débuts, ils sont tous là dans un dossier /data.
Une question intéressante, c’est comment le chatbot fait pour savoir quels documents sont pertinents pour répondre à la question que vous lui avez posée ? il fait pas un simple CTRL+F pour rechercher s’il y a des mots-clés en commun dans votre question et la base de données, il fait un truc bien plus intéressant que ça, il va au préalable transformer votre question en une représentation numérique, qu’on appelle un vecteur, qui encode le sens de votre question. Et ensuite il va aller regarder s’il existe des vecteurs similaires dans la base de données. Ça veut dire quoi concrètement, ça veut dire que si vous posez une question sur est-ce que les manchots peuvent courir par exemple, et que dans votre base de données ya pas de document qui parle de manchots qui courent mais qu’il y a un document qui parle de pingouins qui trottinent, le chatbot va comprendre qu’il y a un lien entre les deux, parce que ces deux morceaux de texte, manchot qui coure et pingouin qui trottine, auront une représentation numérique proche. Me demandez-pas exactement comment ça marche, j’ai pas creusé, mais en tout cas c’est ça le principe. On utilise ce qu’on appelle des modèles d’embeddings qui sont spécialisés pour transformer des textes en des vecteurs, des représentations numériques qui encodent d’une façon ou d’une autre le sens du texte encodé.
Et donc si on reprend notre schéma, ça donne ça. D’abord, le chatbot transforme tous vos documents, vos pdf, vos fichiers word etc, en des représentations numériques, des vecteurs, qu’il stocke dans un index. Et ensuite, quand vous allez lui poser une question, il va la transformer elle aussi en vecteur. Il va ensuite chercher dans l’index des documents qui ont une représentation numérique similaire. Et ensuite il enverra tout ça, votre question et ces documents, à un LLM, le LLM renvoie sa réponse, et le chatbot vous la transmet. Cette dernière étape d’interroger le LLM c’est exactement comme si vous aviez posé une question à ChatGPT en copie-collant en même temps des gros morceaux de texte pour orienter sa réponse.
Et donc nous ce qu’on va faire aujourd’hui en quelques lignes de code c’est implémenter toute cette partie. Les documents on n’y touche pas, ils sont bien au chaud sur votre ordi. Le LLM on y touche pas, on va se servir de LLM existant, et en particulier de ceux d’OpenAI pour la vidéo d’aujourd’hui. Tout le reste on le code, et vous allez voir que ça se fait de façon relativement simple, notamment grâce à deux framework python, llama-index et streamlit.
Allez c’est parti. Ha non attendez deux secondes, faut que je mette mon pull à capuche sinon vous allez croire que je suis pas un vrai codeur. Voilà c’est bon.
2. Version codeur fou
Alors, on va commencer par coder tout ce qui est logique de discussion avec le LLM. Pour l’instant, on ne va pas se préoccuper du tout de l’interface utilisateur.
[code accéléré]
Et je crois que c’est bon, et donc si je ne me suis pas trompé, on a déjà terminé le codage de la logique de l’application RAG. Donc si on récapitule, on charge les documents qui se trouvent dans le dossier data_dir, on crée un index à partir de tous ces documents, on crée un moteur de recherche sur cet index, et ensuite, on n’a plus qu’à poser une question et à afficher la réponse dans le terminal. Python app.py pour lancer le script, et on obtient la réponse.
« Pour améliorer sa mémoire, il est recommandé de s’engager activement dans le processus de mémorisation en récitant les informations à retenir ou en répondant à des quiz. De plus, il est conseillé d’espacer les révisions, blablabla. » Et tout ça, c’est exactement ce que je vous racontais dans ma vidéo comment booster sa mémoire. Ça s’appelait 5 astuces, validées par la science, pour booster sa mémoire, je crois. Voilà, 5 astuces pour booster votre mémoire validée par la science. Et dans ce document, il y a en effet ces informations que je viens de vous lire. () Donc c’est vraiment cool, ça a marché. En quelques lignes de code, on a été capable de poser une question et d’aller rechercher la réponse dans un ensemble de documents, et d’avoir une réponse qui était vraiment très proche d’une réponse que j’aurais pu fournir moi-même. Donc, Gourou fabulus est sur la bonne voie.
Alors, passons au code de l’interface graphique. Pour ça, on utilise streamlit. Donc, vous mettez un petit import streamlit as st en introduction. Hop, on va commenter ça, que ça ne se lance pas à chaque fois. Vous avez juste à faire appel à des éléments en utilisant la syntaxe st.title, par exemple. Donc là, nous, on veut créer une page qui s’appelle gourou fabulus. Et pour voir votre application, il faut maintenant que vous lanciez votre fichier, non pas avec la commande python app.py, mais avec la commande streamlit run app.py. Et quand vous lancez ça, normalement, votre navigateur devrait s’ouvrir et vous devriez voir apparaître votre application à l’écran. C’est parti.
Et voilà notre application gourou fabueus version 0.1. Et donc, nous, en particulier, pour ce qui nous intéresse aujourd’hui, la commande qui va nous être très utile, c’est st.chat_input, puisqu’elle va nous permettre de mettre un petit champ pour pouvoir discuter avec gourou fabulus. Donc, notre chatbot commence à prendre forme et maintenant, la seule chose qui nous reste à faire, c’est coder tout ce qui est logique d’enregistrement des messages et d’affichage des messages pour qu’on ait vraiment une discussion structurée entre gourou fabulus et l’utilisateur.
[code accéléré]
Je crois que c’est bon. On va tester ça tout de suite. Une erreur. Je pense que c’est parce que l’appli a essayé de se lancer quand j’étais en train de taper du code. Donc, on va ignorer ça pour l’instant. Comment booster sa mémoire ? On appuie sur entrée et on a exactement la réponse qu’on obtenait dans le terminal. Et donc, en gros, on a fini. On a vraiment fini. On a codé le plus important. On a codé un petit chatbot qui permet d’aller interroger ses documents. Et vous pouvez voir qu’on a fait ça en même pas 50 lignes de code. Alors ensuite, on va l’améliorer un petit peu. On va améliorer la logique. On va améliorer le design. Mais pour le gros de l’application, c’est terminé. On pourrait en rester là. Si vous avez besoin de discuter avec des documents qui se trouvent quelque part dans un dossier sur votre ordi, en moins de 50 lignes de code avec llama index et Streamlit, vous pouvez mettre en place une petite application pour faire ça.
Alors, on va jouer un petit peu avec. Là qu’on a réussi à faire tout ça, on ne va pas s’en priver. Qu’est-ce qu’on pourrait lui demander d’autre ? C’est quoi le neurone Jennifer Aniston ? Donc ça, c’est pareil. C’est un truc dont je parle dans une vieille, vieille vidéo (). « C’est un neurone spécialisé dans la reconnaissance du concept de Jennifer Aniston. » Bon, c’est très cool. Il n’est pas très bavard, mais ça, c’est quelque chose qu’on va pouvoir modifier ensuite. On va lui demander comment les gens réagissent en général dans un attentat. C’est pareil, c’est le sujet d’une vieille, vieille vidéo. Alors là, c’est intéressant parce qu’il nous répond en anglais. C’est aussi quelque chose qu’on va pouvoir modifier ensuite. En fait, ça montre que les prompts par défaut qui sont utilisés dans llamainindex, ils sont en anglais. Et du coup, même si on a posé une question en français, derrière, cette question, elle est intégrée à un prompt plus large qui, lui, est en anglais. Et c’est pour ça que le NLM, il choisit d’envoyer une question en anglais. Et c’est de répondre en anglais, mais on va pouvoir modifier tout ça ensuite.
Et sinon, la réponse qui donne que les gens ont tendance à rester calme et à ne pas paniquer pendant les attaques terroristes, c’est exactement ce que je vous raconte dans la vidéo (). Et c’est ce que montre au passage la plupart des études sur ces sujets. Ce n’est pas de l’information qu’il est allé chercher sur Internet, tout ça, ni de l’information qui se trouvait dans sa mémoire. C’est vraiment de l’information qui vient de mes scripts de vidéos.
On va améliorer un petit peu l’esthétique de l’appli. Donc, ce que je vous propose de faire, c’est de changer, de mettre une petite icône différente pour Gourou Fabulus. Vous, les utilisateurs, on va aussi vous mettre un petit émoji. Et puis, on va aussi refaire ici le titre de l’appli avec un logo qui soit un peu plus sympa. Voilà, donc on a amélioré l’aspect esthétique. On a mis des icônes personnalisées pour chacun des interlocuteurs. On a amélioré un petit peu la qualité de l’appli. Et puis, on a amélioré un petit peu la présentation ici.
La dernière chose qui nous reste à faire, c’est le plus amusant, c’est essayer de customiser la façon dont Gourou Fabulus va répondre. J’ai gardé le meilleur pour la fin parce que vous allez voir, c’est ça qui est vraiment très marrant. Pour l’instant, Gourou Fabulus, il donne des réponses qui sont assez courtes, qui ne sont pas très bien formatées. Parfois, c’est de l’anglais, on l’a vu. Et puis surtout, c’est très impersonnel. C’est vraiment un robot. Ça ne ressemble pas du tout à ce que j’aimerais que Gourou Fabulus soit. Pour changer ça, il faut écrire un prompt personnalisé. Il faut passer par un template qui va nous permettre de changer le prompt, c’est-à-dire de changer les instructions qu’on donne à notre LLM pour écrire une réponse à partir de la question. Donc, on va écrire une fonction qui permet de faire ça. On va l’appeler PrepareTemplate.
Contenu du prompt, tu es Gourou Fabulus, un être omniscient et bienveillant qui a atteint l’illumination suprême en étudiant la psychologie évolutionnaire. Tu réponds aux questions de tes disciples. L’un d’eux t’a posé cette question. Deux points. Et là, on mettra la question. Voilà tout ce que tu sais à ce sujet. Deux points. Et là, on mettra les documents les plus pertinents qui ont été trouvés. À partir de ces connaissances à toi et uniquement à partir d’elles, réponds en français à la question. Et alors, on va faire un petit test avant et après d’avoir rajouté ce prompt. Donc là, je n’ai pas encore sauvé mon fichier. On est encore avant. Donc, par exemple, si je lui demande, si je demande à Gourou Fabulus, qui es-tu ? Voilà, il me fournit une réponse bateau qui est je suis un expert en questions-réponses prêt à fournir des informations basées sur le contexte fourni.
Et donc là, si je sauve mon fichier et que je lui repose la question qui es-tu ? Qu’est-ce qu’il va nous raconter ? Je suis Gourou Fabulus, un être omniscient et bienveillant qui a atteint l’illumination suprême en étudiant la psychologie évolutionnaire. Ça, c’est cool. C’est exactement ce que je viens de lui dire. Mais ensuite, il invente un peu plus. Je suis un guide spirituel qui cherche à transmettre de la pensée nuancée et à partager ma fascination pour l’humain malgré ses imperfections. Alors là, je dis qu’il invente, mais en fait, il invente à moitié parce que c’est quelque chose que je dis dans une de mes vidéos, que le nom Homo Fabulus, ça vient précisément de là, de ma fascination pour l’humain. « J’encourage mes disciples à voter et à prendre des décisions éclairées pour éviter que nos conditions de vie ne se détériorent. Mon objectif est d’éveiller les consciences et d’apporter de la sagesse dans un monde en constante évolution. » Donc là, il y a à moitié de l’invention et à moitié des trucs qui doivent venir de mes vidéos, je pense. Par exemple, prendre des décisions éclairées pour éviter que nos conditions de vie ne se détériorent, il a peut-être chopé ça des vidéos sur le changement climatique que j’ai faites.
Alors, petite précision au montage. En réalité, on n’a pas besoin d’essayer de deviner à partir de quoi Gourou Fabulus a produit sa réponse parce qu’on a directement accès aux documents et même aux morceaux de documents qu’il a utilisés pour générer sa réponse. Pour ça, il suffit d’imprimer dans un terminal response.sourcenode qui contient précisément les passages de texte qui ont été identifiés comme étant les plus pertinents pour répondre à la question. Alors, on va lui reposer la même question. Qui es-tu ? Et on voit qu’il encourage une fois de plus à voter et à prendre des décisions éclairées pour éviter que nos conditions de vie ne se détériorent et qu’il raconte des trucs sur le fait qu’il est en train de mettre en place des contreparties, l’inscription au générique des vidéos, etc. Donc, si on va voir dans le terminal, on se rend compte qu’il a utilisé deux morceaux de texte pour répondre à cette question. Et dans le premier morceau de texte, c’était effectivement une vidéo publiée en période électorale et une vidéo dans laquelle je dis précisément que je partage ma fascination pour l’humain (). Et le deuxième morceau de texte utilisé, lui, correspond à une vidéo beaucoup plus ancienne dans laquelle je disais qu’effectivement j’allais mettre en place un système de contrepartie qui a maintenant été abandonné si ce n’est que vous avez toujours le droit à votre nom au générique.
Et puisqu’on a accès aux documents sur lesquels Gourou Fabulus s’est basé pour écrire sa réponse, on peut faire un truc encore plus cool parce que regardez comment sont nommés mes fichiers. Chacun de mes fichiers qui contient le script de mes vidéos commence par la date et puis à la fin, on trouve l’identifiant de la vidéo YouTube. Et donc, si on a le nom des fichiers utilisés, on peut récupérer l’identifiant de la vidéo YouTube et on peut donc faire un lien directement vers cette vidéo depuis l’interface de Gourou Fabulus. Donc, on va rajouter quelques lignes de code pour faire ça. Et vous allez voir que maintenant, si je repose la même question, en fin de réponse, on aura des liens qui auront été ajoutés. Et si vous cliquez sur ces liens, vous atterrirez directement sur la vidéo correspondante. Alors attention, ça arrivera assez souvent qu’il ne vous donne pas des liens très pertinents parce qu’il va vous donner les liens les plus pertinents qu’il a trouvés, mais ça ne veut pas forcément dire qu’ils sont pertinents de façon absolue. Et puis des fois, la réponse à votre question se trouve dans une vidéo seulement, mais Gourou Fabulus, va quand même renvoyer plusieurs vidéos. Mais par contre, quand vous poserez des questions du style dans quelle vidéo tu parles d’astuces pour booster sa mémoire, alors là, normalement, vous aurez à coup sûr le bon lien pour atterrir directement sur la vidéo.
Alors petite précision au montage, en réalité on n’a pas besoin d’essayer de deviner à partir de quoi Gourou Fabulus a produit sa réponse. Parce qu’on a directement accès aux documents et même aux morceaux de documents qu’il a utilisés pour générer sa réponse. Il suffit d’imprimer dans un terminal response.sourcenode qui contient précisément les passages de texte qui ont été identifiés comme étant les plus pertinents pour répondre à la question.
Alors on va lui reposer la même question Qui es-tu ? Et on voit qu’il encourage une fois de plus à voter et à prendre des décisions éclairées pour éviter que nos conditions de vie ne se détériorent. Et qu’il raconte des trucs sur le fait qu’il est en train de mettre en place des contreparties, l’inscription générique des vidéos, etc. Donc si on va voir dans le terminal, on se rend compte qu’il a utilisé deux morceaux de texte pour répondre à cette question. Et dans le premier morceau de texte, c’était effectivement une vidéo publiée en période électorale et une vidéo dans laquelle je dis précisément que je partage ma fascination pour l’humain. Et le deuxième morceau de texte utilisé lui correspond à une vidéo beaucoup plus ancienne, dans laquelle je disais qu’effectivement j’allais mettre en place un système de contrepartie, qui a maintenant été abandonné, si ce n’est que vous avez toujours le droit à votre nom au générique.
Et puisqu’on a accès aux documents sur lesquels Gourou Fabulus s’est basé pour écrire sa réponse, on peut faire un truc encore plus cool, parce que regardez comment sont nommés mes fichiers. Chacun de mes fichiers qui contient le script de mes vidéos commence par la date, et puis à la fin on trouve l’identifiant de la vidéo YouTube. Et donc si on a le nom des fichiers utilisés, on peut récupérer l’identifiant de la vidéo YouTube et on peut donc faire un lien directement vers cette vidéo depuis l’interface de Gourou Fabulus.
Donc on va rajouter quelques lignes de code pour faire ça, et vous allez voir que maintenant, si je repose la même question, en fin de réponse on aura des liens qui auront été ajoutés, et si vous cliquez sur ces liens, vous atterrirez directement sur la vidéo correspondante. Alors attention, ça arrivera assez souvent qu’il ne vous donne pas des liens très pertinents, parce qu’il va vous donner les liens les plus pertinents qu’il a trouvés, mais ça ne veut pas forcément dire qu’ils sont pertinents de façon absolue.
Et puis des fois la réponse à votre question se trouve dans une vidéo seulement, mais Gourou Fabulus va quand même renvoyer plusieurs vidéos. Mais par contre, quand vous poserez des questions du style « dans quelle vidéo tu parles d’astuces pour booster sa mémoire », alors là normalement vous aurez à coup sûr le bon lien pour atterrir directement sur la vidéo. Et en réalité, on pourrait faire un truc encore mieux, où au lieu de démarrer la vidéo au début quand on clique sur le lien, la vidéo démarrait pile à l’endroit où je parle du sujet. C’est carrément possible techniquement, mais à cause de ma grosse flemme, ça restera pour l’instant impossible pratiquement. Fin de la précision.
Mais en tout cas, vous voyez qu’on peut influencer comme ça la façon dont le chatbot va répondre en changeant le prompt. Et on peut même aller encore un petit peu plus loin. Par exemple, je pourrais demander de répondre aux questions des disciples en les tutoyant et en les appelant « chers disciples ». Hop, on va recommencer. Qu’est-ce qu’on peut lui demander ? Pourquoi pense-t-on qu’il existe des bases biologiques à la morale ? On va voir ce que ça donne. Déjà, on voit qu’il a bien commencé sa réponse par chers disciples. « La croyance en des bases biologiques à la morale repose sur l’idée qu’il existe un algorithme génétiquement codé dans notre cerveau. Blablabla. » Bon, là, il n’a pas vraiment répondu à la question. Il a un peu esquivé. Il a juste développé l’hypothèse, réexpliqué l’hypothèse dans ses mots à lui.
Un truc qui est très important, c’est que la qualité des réponses du chatbot va être très dépendante du LLM que vous utilisez. Je n’ai pas encore parlé de ça, mais là, Llamaindex utilise par défaut GPT 3.5, qui est un LLM qui ne coûte pas très cher à utiliser, mais dont les réponses ne sont pas non plus très bonnes.
Ce qu’on peut faire, c’est changer ce LLM et regarder en quoi ça va changer la qualité des réponses. On va reposer exactement la même question. Pourquoi pense-t-on qu’il existe des bases biologiques à la morale ? Ça, c’était la réponse avec GPT 3.5 et maintenant avec GPT 4o. Donc, on peut voir que la réponse est déjà bien plus longue, qu’elle est plus structurée. On a différents paragraphes. Ça commence par « chers disciples ». Ça finit par « avec bienveillance, gourou fabulus ». Et surtout, la réponse à la question est bien meilleure. « La morale semble être produite de manière si naturelle et insidieuse par notre cerveau qu’il est difficile d’imaginer qu’elle ne puisse exister que dans notre esprit ». C’est exactement ce que je vous dis dans ma vidéo. « La variabilité des comportements moraux n’exclut pas l’existence de base biologique », c’est exactement ce que je vous raconte. Voilà, c’est une réponse qui est bien plus détaillée que la réponse qu’on a obtenue juste avant avec GPT 3.5.
C’est d’ailleurs une réponse qui est un peu trop longue à mon goût. Je pense qu’on pourrait faire plus concis que ça. Donc, pour modifier ça, on va tout simplement modifier légèrement notre prompt. Voilà, c’est mieux. « Comment expliquer la variabilité morale ? » « La variabilité morale peut s’expliquer par plusieurs facteurs. Blablabla, l’éducation, les tabous culturels. » Tout ça, c’est exactement ce que je vous raconte dans ma vidéo sur les bisounours, donc c’est parfait ().
Allez, dernière petite touche finale. Je ne sais pas ce que vous en pensez, mais je trouve que pour un gourou fabulus, ça manque un petit peu de blague sur la géologie. Donc, ce qu’on va faire, c’est qu’on va lui demander une fois sur deux de terminer sa réponse par une blague sur la géologie. Et pour faire ça, une fois de plus, on va retourner dans notre fonction qui prépare un template. Et ici, on va dire… Donc, on aura besoin d’import random. Et on va dire qu’on va tirer un nombre aléatoire entre 0 et 1. Et si ce nombre est inférieur à 0.5, on ajoutera à la fin du prompt « termine par une blague sur la géologie ». On sauve. Et donc, on va reposer nos questions. Alors, bien sûr, comme on a mis qu’on voulait une blague une fois sur deux, ce n’est pas sûr qu’on l’obtienne là tout de suite. On va voir ça. Alors, voilà. Donc là, vous pouvez voir au passage qu’en utilisant GPT-4o-mini, on a une réponse qui est bien meilleure que tout à l’heure quand on utilisait GPT-3.5 avec chacun des points que j’évoque dans ma vidéo. Il y a exactement cinq astuces et il a su les retrouver. On n’a pas, par contre, notre blague sur la géologie. Donc, on va reposer la même question. Et cette fois-ci, on l’a. « Pour finir sur une note légère, pourquoi les géologues ne se disputent-ils jamais ? Parce qu’ils savent que ça ne sert à rien de se fâcher. La Terre est toujours en mouvement. » Voilà, c’est hilarant. Ça correspond exactement au niveau de mes propres blagues sur la géologie.
Eh bien, voilà. Pour moi, ce n’est pas trop mal. Je vais faire encore quelques améliorations et puis je vais le mettre en ligne. Mais en gros, vous avez vu qu’avec même pas une centaine de lignes de code, on a réussi à créer un petit chatbot pour discuter avec ses propres données et qu’on a réussi à le personnaliser pour qu’il ressemble vraiment un vrai Gourou Fabulus. Ah oui, autre information importante, Gourou Fabulus n’a pas de mémoire. C’est-à-dire qu’à chaque fois que vous lui posez une question, il fait comme si c’était la première question que vous lui posez. Il n’a pas la mémoire de toutes les questions que vous lui avez posées précédemment. Ce serait possible d’implémenter ça, mais je n’ai pas trouvé ça très utile, donc je ne l’ai pas fait. En tout cas, n’essayez pas de lui parler de la question que vous venez de lui poser parce qu’il ne comprendra pas. Bon, eh bien voilà, on n’est pas trop mal.
N’hésitez pas à aller tester le truc à l’adresse homofabulus.com/gourou, et à me faire des retours. Au-delà de la petite blague, je pense que ça peut vraiment vous être utile, par exemple si vous recherchez une information que vous savez avoir entendu dans une de mes vidéos mais que vous ne savez plus où. Et franchement, c’est très proche d’une discussion avec moi sur certaines questions, j’ai posé par exemple à Gourou Fabulus des questions comme « Les SHS vont-elles s’ouvrir à la biologie un jour ? », et j’ai obtenu des réponses qui étaient très nuancées et proches de ce que j’aurais moi-même répondu, ce qui est tout à fait normal puisque c’est moi-même qui ai prononcé ces mots dans des vidéos il y a pas si longtemps.
Attention, si jamais l’appli ne marche pas, c’est probablement que vous êtes trop nombreux à être dessus en même temps et que vous avez fait péter le serveur, revenez un peu plus tard. Et si l’appli marche mais que vous n’obtenez pas de réponse, c’est probablement que vous avez épuisé tout mon crédit OpenAI, parce que oui, je paye à chaque fois que vous faites une requête, et donc j’ai quand même mis une limite.
N’hésitez pas à me dire si vous pensez que ça pourrait vous être vraiment utile, s’il y a d’autres fonctionnalités que vous aimeriez voir implémenter, on verra si j’ai le temps de faire ça. Si vous êtes créateur de contenu et que vous aimeriez faire la même chose avec votre chaîne Youtube, ou votre livre, ou n’importe quoi, n’hésitez pas à me contacter. Et d’ailleurs, j’en profite pour faire passer un petit message, si vous avez des connaissances en programmation, je vais bientôt avoir besoin d’un ptit coup de main, non seulement pour développer ce genre de projets, mais aussi pour accélérer de façon générale la production de vidéos sur Homo Fabulus. Je me suis rendu compte qu’il y avait plein de choses que je pouvais automatiser dans mon travail, et j’ai commencé à le faire mais j’ai pas le temps de mener de front l’automatisation et la production de vidéo, donc si vous avez quelques heures à consacrer à la cause d’Homo Fabulus de temps en temps, envoyez-moi un petit mail à homofabuluslachaine at gmail point com et je vous expliquerai tout ce que vous pouvez faire pour m’aider. Les compétences liées à la génération de vidéos seront évidemment très utiles, je pense en particulier à ffmpeg, manim, blender et aux IAs génératives, mais rien que des compétences générales en python suffisent et c’est très facile de se former sur le tas pour le reste.
[fin de la transcription]
3. Version pour les gros geeks
[pas de transcription disponible, ça n’aurait pas trop de sens vu que je ne fais que commenter du code à l’écran]
4. Derniers conseils
[pas de transcription disponible, ça n’aurait pas trop de sens vu que je ne fais que commenter du code à l’écran]
Laisser un commentaire