Introduction
Selon Wikipedia, « Un bot informatique est un agent logiciel automatique ou semi-automatique qui interagit avec des serveurs informatiques. » Le bot, viens du mot robot, auquel une syllabe a été enlevée, afin de signifier la nature exclusivement logcielle du bot, qui, contrairement au robot, perfome exclusivement des actions programatiques. Les types de bots auquels nous sommes confrontés au quotidien sont par exemple, les robot crawlers de Google qui indexent les pages mises en ligne sur le web, ou, du côté obscur, les programmes de spam qui envoient des milliers d'email dans des buts malveillants (phishing ou autres arnaques en tous genres).
Plus spécifiquement, « Un chatbot, ou dialogueur ou encore agent conversationnel, est un agent logiciel qui dialogue avec un utilisateur. » Il s'agit d'un programme spécifiquement designé pour tenir une conversation avec un utilisateur. Les buts et domaines d'application des chatbots sont extrêment divers, depuis l'automatisation du service après-vente pour des entreprises commerciales aux assistants virtuels en passant par les jeux basés exclusivement sur des interfaces textuelles, nés dans les années 1970. Les techniques logicielles qui sous-tendent ces programmes sont également très diverses, du scénario pré-écrit qui laissent un nombres de réponses limitées à l'utilisateur aux réseaux de neuronnes prédictifs qui génèrent des réponses neuves en se basant sur l'analyse (souvent dririgée) d'immenses corpus de textes.
Quelques chatbots et programmes liés à l'évolution des chatbots
Afin de nous familiariser avec les chatbots, nous allons démarrer notre bloc par une série de petits exposés, qui nous permettront de découvrir des exemples actuels ou historiques de chatbots. Pour la semaine prochaine, en ouverture de notre bloc commun, chacun d'entre vous devra se saisir d'un des programmes ci-dessous, et le présenter brievement à la classe.
- Bard by Google, 2023
- ChatGPT by Open AI, 2022
- ElonJet by Jack Sweeney, 2020
- Tay by Microsoft, 2016
- Siri by Apple, 2011
- Lenny by "Mango", 2011
- Anna by IKEA, 2008
- The Office Assistant or "Clippy", Microsoft, 2003
- Eugene Goostman by Vladimir Veselov, Eugene Demchenko, and Sergey Ulasen, 2001
- GooglyMinotaur by ActiveBuddy, 2001
- CleverBot by Rollo Carpenter, 1997
- Le jeu Colossal Cave Adventure by William Corwther, 1976
- PARRY by Kenneth Colby, 1972
- The House of Dust, Alison Knowles, 1967 | @ahouseofdust, Twitter Bot, 2015
- ELIZA by Joseph Weizenbaum, 1964
La présentation devra comprendre
- Le but du bot et son domaine d'application
- Une image ou plusieurs images de l'interface du bot
- Une explication (conceptuelle) de la ou des techniques qui sous-tendent le bot
- Les controverses liées au fonctionnement du bot (car il y en quasi exclusivement toujours)
Quelques ressources sur l'histoire des bots
- Le Bruit des Bots par Marie Lechner, conférence de 2017 à la HEAR > https://www.mixcloud.com/m%C3%A9diam%C3%A9diums/marie-lechner-bots/
- An Encyclopédie of Twitter Bots, par l'artiste et designeuse Elizaveta Pritychenko, qui rassemble une liste de bots présents sur anciennement Twitter, 2014 > https://archive.org/details/twitter_bot_encyclopedia_with_cover/page/n19/mode/2up?view=theater
- Botwiki.org, un site dédié aux bots géré par le programmeur Stefan Bohacek, avec énromément de ressources (à creuser pour inspiration) > https://botwiki.org
- Chartbots.orgs, un site qui référence des chatsbots plutôt "vintages" et improbables, comme M'Velov, le bot qui vous aide à utiliser des Vélovs > https://www.chatbots.org/features/animated_avatar/
- The Turing test: Can a computer pass for a human?, une petite vidéo qui explique le fonctionnement du Test de Turing (attention, informations potentiellement controversée quant au bots Eugene Goostamn :)) > https://www.youtube.com/watch?v=3wLqsRLvV-c
- Apple Knowledge Navigator Video, 1987 (concept prototype), ancêtre des assistants virtuels actuels > https://www.youtube.com/watch?v=umJsITGzXd0
Bots dans la fiction
- 2001 L'Odyssée de l'espace, Stanley Kubrick, 1968 > https://www.youtube.com/watch?v=oR_e9y-bka0
- Her, Spike Jonze, 2014 > https://www.youtube.com/watch?v=wiIXVmyFygw
- Plonger dans la machine, Lionel Maes, 2021, archives d'une conférence du designer et artiste Lionel Maes qui reprend une liste de films dédiés à l'AI (notemment des films extrêment bizarres) > http://archives.tangible-cloud.be/216_plonger-dans-la-machine/
Miscellaneous
- Espeak, un logiciel de synthèse vocale en ligne de commande > https://espeak.sourceforge.net/
Techniques actuelles d'inteligence artificielles
Afin de nous familiariser également avec le fonctionnement conceptuel des techniques d'intelligence artificielles (que nous n'utiliseront pas mais qu'il est important de connaître), nous allons de nouveau nous réferer à l'excellente série Crash Course Computer Sciende de PBS, présenté par Carrie-Ann Philbin.
- Crash Course Computer Science, Machine Learning and Artificial Intelligence > https://www.youtube.com/watch?v=z-EtmaFJieY&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=35
- Crash Course Computer Science, Computer Vision > https://www.youtube.com/watch?v=-4E2-0sxVUM&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=36&ab_channel=CrashCourse
- Crash Course Computer Science, Natural Language Processing > https://www.youtube.com/watch?v=fOvTtapxa9c&list=PLH2l6uzC4UEW0s7-KewFLBC1D0l6XRfye&index=37
Quelques ressources pour aller plus loin sur le fonctionement des AI
Technique
- You Look Like a Thing and I love You, How Artificial Intelligence Work and Why it's Making the World a Weirder Place, Janelle Shane, 2019
- Quand la machine apprend, Yann LeCun, 2019 (très technique, sur le Deep Learning)
- Le Mythe de la Singularité, Jean-Gabriel Ganascia, 2017
- Servitudes Virtuelles, Jean-Gabriel Ganascia, 2022
- A Story of Discrimination and Unfairness: Prejudice in Word Embeding, Aylin Caliskan, 2017 > https://media.ccc.de/v/33c3-8026-a_story_of_discrimination_and_unfairness
Digital Labour
- Qu’est-ce que le Digital Labor ? Dominique Cardon, Antonio Cassilli, 2015
- Mon boss est un algorithme, témoignages d’humains derrières les intelligence artificielles (effrayant) > https://www.radiofrance.fr/franceculture/podcasts/les-pieds-sur-terre/mon-boss-est-un-algorithme-4375852
- Amazon Mechanical Turk par Amazon, 2001 > https://en.wikipedia.org/wiki/Amazon_Mechanical_Turk
- Le système des re-captcha par Google, 2007 > https://en.wikipedia.org/wiki/ReCAPTCHA
Sujet
Au cours de ce premier bloc, chacun devra créer un chatbot interactif en utilisant le language de programmation Javascript. Le but est de se familliariser avec ce language tout en commençant à pratiquer la création d'interfaces, en utlisant des techniques de conversations rudimentaires basées sur des arbres de décisons basiques. Ne pouvant pas manipuler des intelligences artificiels, chacun devra ruser pour créer un bot fonctionel avec nos moyens de programmation classiques. Le début du bloc sera consacré au développement en commun d'une structure basique en Javascript pour votre bot, qu'il vous sera possible de modifier ensuite. Le sujet, la fonction, les répliques du bots sont laissés entierement libres.
Hints
- Vous êtes libres de limiter le nombre de réponse possibles, comme de ne poser que des questions dont la réponse est oui ou non, ou de n'accepter que les chiffres, que des emojis etc... en bref de limiter l'input.
- Votre bot est incapable de comprendre les phrases lui étant adressé : pensez à des techniques humaines qui font face à l'incomprhésension.
- Vous êtes libres d'utiliser des citations, des textes provenants de livres, sites web, des images, des vidéos, du son etc... pour répondre (aucune obligation de tout écrire).
- L'input et l'output n'ont pas forcément de lien (vous pouvez créer un bot qui ignore toutes les réponses)
- Réfléchissez bien à l'utilité de votre bot: un programme de chatbot peut être autre chose qu'un assistant comme le montrerons les exposés.
Script
Ici, vous pouvez consulter, puis télécharger le squelette du bot.
Critères de notation
Concept
- Pertinance et actualité du concept
- Capacité à projetter le programme / l’installation au-delà du contexte scolaire
/4
Qualité de l’interface graphique
- Cohérence par rapport au concept
- Facilité d’utilisation, lisibilité
- Adéquation au(x) appareil(s) sur le(s)quel(s) le bot tourne (application mobile? site desktop? responsive?)
- Pertinance des choix typographiques
/10
Code
- Capacité à se réaproprier le programme modèle
- Compréhension du langage Javascript
/3
Spatialisation / Installation
- Qualité de la mise en scène de l’utilisation du bot
- Adéquation avec le concept
/3