lundi 19 mars 2018

Création d'un Robot à partir d'une FAQ en quelques minutes avec Microsoft QnA Maker Partie 1

Tout d'abord nous allons créer le service en se connectant à la page : https://qnamaker.ai/Create/Index
Une fois la page affichée, simplement entrer le nom du Service, puis dans notre cas en 2, on référence le document en ligne du Scrum Guide, mais nous pourrions avec les options 3 et 4 utiliser soit un fichier structuré de notre choix ou bien encore construire manuellement une base de connaissance
Une fois ce choix configuré, simplement cliquer sur Create en bas de page, puis l'extraction est disponible dans le module Knowledge base comme montré ci dessous. Après avoir revu et corrigé la structure de la base d'extraction, cliquer simplement sur le bouton Save & Retrain puis cliquer sur le bouton Test pour tester votre robot. Noter que vous pourrez améliorer les réponses en lui indiquant vous même le meilleur choix.
Une fois l'interface Test affichée, il nous suffit de tester notre robot comme montré ci dessous, par exemple demandons lui le role du product owner , on voit que la réponse est bonne et conforme au Scrum Guide, à noter la zone encadrée en rouge liste toutes les réponses possibles, on peut à ce niveau améliorer la réponse du robot en modifiant la bonne réponse. Sur la droite, on peut formuler plusieurs alternatives de questions pour améliorer le panel de questions possible.
Finalement, l'entrainement se fait en multipliant les sesions de chat avec le robot, et en enrichissant la KB. Pour des utilisations simple, le retour sur investissement d'un tel robot est absolument incroyable.
La dernière étape va consister à publier notre robot, pour cela cliquer simplement le bouton Publish

La page suivante s'affiche avec un exemple d'http request pour utiliser notre service robot
Nous verrons dans le prochain article comment créer un Bot consommant ce service




Intelligence Artificielle et Ethique : Les enjeux de demain

Il m'a semblé important d'écrire cet article dans un moment ou l'intelligence artificielle n'est plus que de la science fiction mais commence véritablement à exister dans notre société et apparaitre au coeur de toute transformation digitale digne de ce nom. Les reflexions éthiques autour de l'intelligence artificielle vont faire partie des sujets majeurs à aborder dans les années à venir, aussi dans ce premier article, nous mettrons le focus sur les conséquences inquiétantes de l'intelligence artificielle sur notre monde afin de pouvoir mieux anticiper le futur pour un monde meilleur.
Optimisation Logistique, Détection de fraude, création d’œuvres artistiques, travaux de traduction : les systèmes machines dits intelligents sont en train de transformer nos vies pour le meilleur et peut être le pire. Au fur et mesure que ces systèmes accroissent leurs capacités, notre monde devient plus efficace toujours plus abondant.
Les géants de la technologie typiquement représentés par le GAFAM (Google, Amazon, Facebook, Apple et Microsoft) et bien d'autres mais aussi quelques personnes dont Stephen Hawking et Elon Musk pensent que l’heure est venue de parler du domaine quasiment sans limite de l’intelligence artificielle et de ses impacts sur notre monde. Nous allons voir dans cet article quelles sont les difficultés et conversations qui retiennent toute l’attention des Experts IA.
Elon Musk et Stephen Hawking ont signé une lettre ouverte sur l’intelligence artificielle consultable à l’adresse suivante : https://fr.wikipedia.org/wiki/Lettre_ouverte_sur_l%27intelligence_artificielle

1-Que se passera t’il après la fin des emplois ?

Le monde des travailleurs est concerné au premier rang par l’automatisation. Alors que nous avons inventé des techniques d’automatisation de multiple types de travaux, nous sommes censés créer de nouvelles perspectives pour que les travailleurs concernés puissent occuper des rôles plus complexes,  passant de travaux plutôt physiques qui ont dominé largement le monde de l’industrie jusqu’à nos jours vers du travail plus orienté intellect et création qui caractérise l’essentiel du travail stratégique dans notre société globalisé à l’échelle mondiale.  
Si l’on considère le transport routier, il emploie actuellement des millions d’individus. Que se passera t’il quand les camions autonomes promis par Tesla seront disponibles dans un peu plus d’une décennie ? Maintenant, d’un autre coté si l’on regarde la diminution du risque d’accidents, ces véhicules autonomes semblent former un choix éthique sur plan de la vie. Le même scenario pourrait arriver aux travailleurs de bureau, médecins, avocats, développeurs etc.
C’est à ce stade précisément que la question du “Comment va on passer son temps ? » se pose. La plupart des gens reposent toujours sur un système vendant leur temps afin d’avoir un salaire suffisant pour subvenir à ses besoins et ceux de sa famille. On pourrait juste imaginer que cette transition soit une opportunité permettant à ces gens de trouver du sens à des activités non reliées au travail, comme prendre soin de leur famille, s’engager dans des communautés et apprendre/découvrir de nouvelle manières de contribuer à la société humaine
Si nous réussissons dans cette voie, un jour, en se retournant et en pensant qu’il était dur et injuste que les êtres humains soient obligés de vendre la plus grande partie de leur temps juste pour être capable de "survivre" et assumer leurs besoins.
On sait qu’aujourd’hui la faisabilité de l’automatisation de taches techniques est plus importante sur des taches prédictibles qu’imprédictibles dans des proportions d’environs 78% pour les premières contre 25% pour les deuxièmes.
Sur le moyen terme, les personnes travaillant sur des travaux plus imprédictibles seront moins impactés par l'automatisation.
2-Inégalité. Comment redistribue t’on la richesse créée par les machines ?
Notre système économique est basé sur la compensation pour contribuer à l’économie, le plus souvent indexé sur le taux horaire de travail. La majorité des entreprises dépendent du travail horaire quand il s’agit de produits et de services. Mais en utilisant l’intelligence artificielle, une entreprise va drastiquement se dissocier de sa dépendance vis à vis de la force de travail humaine, ce qui signifie que les revenus seront redirigés vers une population réduite. En corollaire, les personnes impliqués dans des sociétés pilotées par l’intelligence artificielle, seront celles qui gagneront le plus d’argent.
On peut déjà voir des différences de santé d’entreprises, avec par exemple, les fondateurs de Start Ups qui récupèrent une large partie des revenus au travers des surplus créés. En 2014, à titre d’exemple, les mêmes revenus ont été générés par les 3 plus grandes compagnies de Detroit et les trois plus grandes compagnies de la Silicon Valley…. simplement, dans la Silicon Valley, il y avait 10 fois moins d’employés !
La question est donc : comment structurer une économie juste et équitable dans le futur : Le GMI (Garanteed Mininum Income) sera-t-il applicable ?
3-Humanité. Comment les machines vont affecter notre comportement et interactions?
Les agent conversationnels ou Chatbot s’améliore sans cesse à mieux modéliser une conversation humaine. En 2015, un robot nommé  Eugene Goostman won the Turing Challenge  a gagné au test de Turing pour la première fois. Dans ce challenge, les examinateurs humains ont utilisé un système de messagerie textuel pour converser avec une entité inconnue, puis essayer de deviner si la conversation avait eu lieu avec un humain ou une machine. Eugene Goostman a trompé plus de la moitié des examinateurs leur faisant croire qu’ils étaient en train de parler à un être humain.
Ce jalon est simplement le début d’une ère ou nous allons fréquemment interagir avec des machines comme s’il s’agissait d’humains, que ce soit dans les domaines du service ou de la vente. Tandis que les humains sont limités pour ce qui concerne l’attention et la gentillesse qu’ils peuvent apporter à une autre personne, les chatbot peuvent canaliser virtuellement des ressources illimitées dans la construction de relations.
Les robots d’intelligence artificielle sont tellement puissant qu’ils peuvent déclencher des phénomènes d’addiction, notamment dans le domaine du jeu, laissant présager de nombreuses opportunités de travail dans le domaine de l’addictologie. Un article intéressant démontre ce point : Tech addiction is the new frontier of human dependency.
4-La Bétise artificielle. Comment se protéger des erreurs?
L’intelligence vient par l’apprentissage, que vous soyez humain ou machine. Les systèmes passent tous au travers d’une phase de training au cours de laquelle, ils apprennent et améliorent leur capacité à détecter les bons patterns et agir de manière appropriée. Lorsqu’un système est complétement entrainé, il va partir en test ou l’on va éprouver sa performance afin de valider ou non sa mise en production.
De manière évidente, les phases de training ne peuvent pas couvrir tous les cas possibles auxquels le système sera confronté dans le monde réel. Ces systèmes peuvent être trompés dans des cas ou les humains ne le seraient pas. Par exemple, dans le cas des voitures autonomes, la programmation d’une éthique déontique ou conséquentialiste défaillante, pourrait avoir des conséquences mortelles dans certains cas. Si l’on prend l’exemple déontique, la voiture obéit strictement au code la route, dans ce cas pour éviter un piéton traversant un passage piéton, la voiture pourrait prendre la décision de se crasher pour respecter le code de la route. Nous devrons donc être vigilant si l’on souhaite pouvoir disposer d’un IA surpuissante au service de l’humain. L'accident mortel provoqué par une voiture autonome Uber met au fait de l'actualité la relative fiabilité des véhicules autonomes tel que commenté dans cet article : https://www.msn.com/fr-fr/actualite/monde/un-véhicule-autonome-duber-impliqué-dans-un-accident-mortel/ar-BBKrj5K?ocid=spartandhp
5-Des robots racistes. Comment éliminer les biais de l’IA?
Bien que l’intelligence artificielle est capable d’effectuer des taches à une vitesse et niveau de complexité bien au-delà des capacités humaines, on ne peut toujours pas lui adjuger toute notre confiance. Google et Alphabet sont parmi les leaders dans l’IA aujourd’hui, on peut le voir au travers de Google Photo Service, ou l’IA est utilisée pour identifier des personnes, objets ou scènes (a tester absolument sur votre album photo!). Mais le système peut échouer, quand un système de reconnaissance visuel pour la prédiction de futurs criminels montre un biais cognitif à l’encontre de personnes noires par exemple. De la même manière, on se rappellera du robot Microsoft rapidement retiré pour avoir tenu des propos racistes.
On ne doit pas oublier que les systèmes IA à la base sont créés par des humains, qui eux-mêmes peuvent être biaisés et juge et parti. Une fois de plus, bien utilisé, l’intelligence artificielle peut devenir un catalyseur pour un changement positif.
6-Sécurité. Comment proteger l’IA contre des utilisations dommageables?
Plus une technologie est puissante et évoluée, plus elle peut être candidate à des utilisations néfastes. La bombe atomique au siècle dernier nous en a donné de tristes exemples. Ceci s’applique non seulement aux robots fabriqués pour remplacer les soldats humains, ou les armes autonomes, mais aussi au système IA qui peuvent causer des dommages en cas d’utilisation « illicite ».  Pour cette raison, la cybersécurité va devenir de plus en plus importante, étant donné que ces combats n’auront pas forcément lieu que sur le terrain. Après tout, on a à faire à un système qui est plus rapide et capable que l’être humain dans des proportions hors norme.
7-Génie destructeur. Comment se protéger contre les conséquences inattendues ?
Ce n’est pas seulement des utilisations dommageables dont nous devons avoir peur. Que se passera t’il si l’intelligence artificielle se retournait contre nous ? Un responsable de la section IA au MIT, donnait récemment un exemple d’IA se retournant contre les humains avec l’exemple suivant : Les systèmes IA vont se développer de plus en plus vite notamment au travers du Deep Learning, par conséquent les IA vont se développer toutes seules, et à moment donné vont s’intéresser à des problèmes clés du monde. Très vite l’environnement sera un sujet identifié, l’IA déterminera alors que l’humain est l’entité la plus néfaste pour l’environnement et pour résoudre ce problème pourrait prendre la décision de détruire les humains pour régler le problème. Du point de vue machine, ce n’est pas forcément de la malveillance, mais plutôt un manque de compréhension du contexte global. Mais en détruisant l’humanité, l’IA aurait atteint son objectif de protection de l’environnement, mais pas de la manière par laquelle les humains l’aurait fait.
8-Singularité. Comment garde t’on le contrôle d’un système intelligent complexe?
La domination de l’être humaine sur la planète, n’est pas le fait de sa force physique, mais plutôt de son intelligence et sa créativité. Ceci pose une question sérieuse au sujet de l’intelligence artificielle : Va-t-elle un jour nous dépasser ? On ne peut pas juste les débrancher, parce qu’une machine suffisamment avancée pourrait anticiper ce mouvement et se défendre. C’est ce que certain appelle la singularité : Le point dans le temp ou les être humains ne seront plus les être les plus intelligents sur la planète.


mercredi 14 mars 2018

Computer Vision Science avec les technologies Microsoft - Contexte et mise en oeuvre Partie 2


Le service Custom vision fair partie du module Vision de l'offre Cognitive Services de Microsoft
Le module Vision contient les éléments suivants :

Le Service Custom Vision ou Service Vision personnalisée en français permet de télécharger des images de référence, de les classifier, puis d'entrainer un modèle pour l'utiliser afin d'évaluer et classifier automatiquement nos images.
On peut alors ajouter des images, corriger et réentrainer le modèle. Tous les fonctionnalités peuvent être lancées et invoquées à partie de l'API REST ce qui fait qu'il est facille d'incorporer toutes ces fonctionnalités à partir d'applications que l'on écrit en C#, Angular, Python etc.
Dans cet article nous allons voir comment créer un projet Custom Vision pour classifier des images, nous téléchargerons des images et entraineront et testeront le modèle. Pour cet exemple nous utiliserons des photos de plantes.
dans le prochain article nous verrons comment consommer le modèle à partir d'une application custom.
La première étape consiste à se connecter au service customvision à l'adresse : https://customvision.ai
Une fois connecté la page projets apparait : 

Cliquer sur New Project puis renseigner le nom et la description, nous choisissons ici les options compact pour pouvoir exporter les classifiers vers des telephones mobiles IOS ou Android


Nous allons ajouter des images, pour démarrer 5 images de fraises que nous taggeront fraise et fruit. Il nous faut au minimum 5 images d'une catégories et 2 tags pour pouvoir entrainer le modèle

Une foirs les images téléchargés nous allons ajouter les tags puis valider

Puis nous allons entrainer le modèle en cliquant simplement sur le bouton Train

Une foir l'itération d'entrainement terminé on voit apparaitre le résultat de la reconnaissance, bien évidemment, plus on ajoutera d'images, plus le modèle sera efficace

On peut alors tester le modèle directement à partir du site, pour cela on peut récupérer l'URL du fruit à reconnaitre puis la soumettre à l'outil de test

On voir ici une reconnaissance à 100% dans ce cas

Enfin si l'on veut le tester à partir d'un téléphone par exemple, nous pourrons exporter le modèle qui pourra être utilisé offline à partir d'un Iphone par exemple, pour cela, cliquer sur le bouton export puis choisir le type de device cible
L'assistant fournit des exemples de code pour pouvoir utiliser le modèle à partir des caméras des téléphones.
Nous avons vu qu'il est très simple de créer et entrainer un modèle sur un thème particulier et de le déployer sur le système de son choix. Dans le prochain article, nous verrons comment utiliser ce modèle et l'API REST à partir d'un application Custom




Computer Vision Science avec les technologies Microsoft - Contexte et mise en oeuvre Partie 1

Dans ce premier article, nous allons aborder le domaine et les applications du Computer Vision avec l'intelligence artificielle, dans le deuxième article nous nous interesserons plus particulièrement à la mise en oeuvre du Computer Vision au travers de la brique Microsoft Custom Vision qui constitue l'un des produits de la suite Microsoft Cognitive Services.
Le monde de l'intelligence artificielle connait aujourd'hui un essor spectaculaire tant sur le plan de l'évolution des technologies que des applications métiers. Le gros avantage de ce domaine est que le traitement d'images ne dépend pas des pays, langues etc. Ainsi, on ne retrouve pas les problèmes rencontrés dans le NLP (Natural Language Processing) par exemple pour ce qui concerne le traitement du language, ou force est de constater que dès que l'on sort de la langue de Shakespeare, les systèmes ont des niveaux de performances problématiques.
En revanche dans le domaine de l'image, ce problème n'existe pas et les applications mises en oeuvre rivalisent d'ingéniosité et de valeur ajoutée. nous allons donc commencer par faire un tour d'horizon rapide du potentiel de ce domaine fonctionnel et technologique de l'IA. Les secteurs ou l'on va retrouver des application interessantes sont 
  • Le domaine médical
  • L'industrie
  • Le secteur de la distribution
  • Le secteur de l'agriculture
  • Les réseaux sociaux
Pour citer quelques exemple, dans le domaine médical, Microsoft, l'initiative InnerEye (démarrée en 2010) permet de travailler sur des outils de diagnostic par imagerie, l'équipe a d'ailleurs posté un grand nombre de vidéos expliquant leur développements, incluant cette vidéo sur le Machnine Learning à partir d'analyse d'image : 

Le domaine du Deep Learning va très probablement jouer un role de plus en plus important dans les applications de diagnostic étant donné que le Deep Learning devient plus accessible et que l'on a des sources de données de plus en plus importantes en termes d'images médicales qui font désormais partie intégrante du Process de Diagnostic par IA.
Dans le domaine de la distribution, les nouvelles expériences d'achat proposée par Amazon Go entièrement basée sur du Computer Vision et du Machine Learning, permettent aux client une expérience nouvelle évitant le pénible passage à la caisse comme montré dans la vidéo ci dessous :

Dans le domaine de l'agriculture tout comme dans l'industrie des applications sont faites pour accèlérer le tri ou le controle optique permettant de détecter par exemple des défauts sur des légumes ou bien manufacturés à des cadences largement supérieures à celle d'un humain.
Dans le domaine de la sécurité, les système de controle au frontières sont en train également de migrer vers la reconnaissance faciale comme preuve d'identité ( évolution des systèmes Parafe existants).
Enfin dans le domaine des résaux sociaux, on pourra citer le projet Lens de Pinterest qui fonctionne comme Shazam mais avec des images, permetttant de reconnaitre à peu près tout ce qui existe et connecter à du contenu marketing ou de type blog, comme montré ci dessous.

mardi 3 octobre 2017

Retour sur l'AI Summit de San Francisco - Voyage dans le futur proche

A l'issue de la première journée de la conférence, on a une sensation de  disruption émergente, à tel point que l'on se demande si l'on est pas en train de vivre une sorte d'avènement des robots "The Raise of the Robots".
Mais tout d'abord quelques chiffres sur cette conférence qui se tient au cœur de la région la plus innovante au monde, la Silicon Valley dans la région de San Francisco
c'est aussi une opportunité de rencontrer les acteurs majeurs du secteur dont beaucoup ont des bureaux en Californie
La conférence aborde également le sujet de la collaboration Humain - Robot et donc comment tirer partie de l'ensemble de l'écosystème à la fois software, hardware et plate forme pour faire de l'IA un atout majeur dans la production de valeur au travers notamment de gain de productivité encore jamais atteint.
On apprend d'entrée que l'IA nous emène dans un changement de paradigme total, qui va considérablement impacter notre métier et également le business sous jacent. Il faut donc tout d'abord explorer ce nouveau domaine et voir comment les entreprises peuvent en recueillir les bénéfices. Pour cela, une bonne approche va consister à se former sur le sujet au travers de lecture telles que
Au passage, on ne bypasser la réference de Francois Chollet sur le Deep Learning, dont la première partie est gratuite chez Manning en ligne

Et également par le biais de formation, de nombreuses possibilités existent avec Plurasight, mais aussi Microsoft qui produit gratuitement des formations et livres blancs sur la création d'agent conversationnels , le Machine/Deep Learning, l'utilisation du NLP etc. On notera également un ecosystème de ressources de training plus ou moins techno agnostique :
Plusieurs facteurs seront donc à prendre en considération pour démarrer avec de l'IA en entreprise
1 Le Leadership : La première question est qui porte l'IA dans l'entreprise, Le role de CDO (Chief Digital Officer) est il présent, qui gère les projets et la stratégie autour de l'intelligence artificielle?
2 La sélection des projets, avec par exemple pour une compagnie financière, l'utilisation du Machine Learning avec de l'analyse predictive et des simulations vont être un véritable challenge de scoping pour passer d'un Lab à la production
3 Pour finir, les compétences et les équipes qui seront en charge de ces implémentations, à savoir ai-je les compétences necessaires en interne?
Les entreprises devront se réorganiser quelque peu si elle veulent réaliser avec succès et efficacité leur transformation digitale basée sur de l'intelligence artificielle.
Pour ce qui concerne le driver, 70% des personnes interrogées considèrent que l'IA a le potentiel de faire que les humains pourront ce concentrer d'avantage sur du travail à forte valeur ajoutée. C'est l'essence de la promesse du RPA et également de tous les assistants conversationnels sensés nous faire gagner beaucoup de temps sur des taches  répétitives pour lesquelles nous sommes peu efficaces.
Coté Microsoft, David Smith (VP Microsoft AI & Research) argumente sur le fait que l'IA va permettre d'amplifier l'ingeniosité de l'être humain, voire de l'augmenter ce qui est tout à fait aligné avec la vision globale de Microsoft : "Permettre à toute personne et toute organisation sur la planète d'accomplir d'avantage"
David présentera l'ensemble de la plate forme Cognitive Microsoft ainsi que des démonstrations époustouflantes rendues possibles grace au capacité de Machine Learning et Deep Learning de Microsoft, comme la démo ci dessous
Chez Daisy, on est persuadé que l'IA va disrupter le monde de la grande distribution, avec l'arrivée d'Amazon et Ali Baba, les grands acteurs français vont devoir réagir rapidement au prix de se faire uberiser par ces nouveaux mutants. Daisy est un produit permettant d'utiliser l'IA pour d'optimiser la prise de décision concernant les promotions des magasins par exemple, basé sur du  Machine/Deep Learning, est déjà utilisé chez Lidl, Amazon, Wallmart etc.




Parmi les exposants du salon, on va retrouver des solutions entreprises complètes baties sur de l'IA avec DryIce par exemple de pnl. De telle solution nous font réaliser que la majeure partie des entreprises n'en sont encore qu'à l'age de Pierre, et on pourrait reprendre une illustration bien connue dans le monde de l'Agile, le manque de réactivité pour pivoter rapidement vers plus de productivité et de modernisation. Il faudra veiller à ne pas reproduire les erreurs du passé
En revanche pour le Machine / Deep learning le problème critique est le challenge créé par la qualité relative  et la structure des données, La réconciliation et l'harmonisation de données disparates à travers de multiples LOB en silo pose de réels problèmes de consistence et pertinence.Nous avons besoin de techniques de gestion effective de la données permettant de s'assurer que la donnée utilisée est à la fois comprise par l'humain et par la machine aux travers des algorithmes de MLpar exemple
La donnée est clé. La solution à ce problème dans le domaine de la finance par exemple résiderait dans l'utilisation d'ontologies au travers de la mise en place d'un standard commun de données gratuit et open source. Les ontologies permettent une harmonisation des données et l'alignememnt nécessaire pour une consolidation de données disparates basées sur un sens commun.
Les ontologies peuvent être utilisées pour transformer un contenu non structuré en une forme structurée pour du Machine Learning par exemple.
 Les recherches de l'université de Mannheim en Allemagne démontrent de plus que les ontologies peuvent aider le Machine learning à effectuer de la validation de données à minima 50 fois plus vite qu'en mode standard. 
En conclusion, pas de Machine Learning / Deep Learning performant/relevant sans ontologie
 Le Machine /Deep Learning c'est également le retour des mathématiques et statistiques avancées, ce qui va profondément changer notre métier dans les années à venir, qui vont voir considérablement augmenter les profils type Data Scientistes qui seuls aujourd'hui savent comprendre les notions d'algorithme du gradient stochastique ou la rétropropagation du gradient
Aujourd'hui, Les utilisateurs s'attendent à pouvoir communiquer avec leurs appareils, sites web en langage naturel. Les systèmes modernes doivent être conversationnels, humain et intelligent. Les récentes implémentations par google avec Google Home et Amazon Echo… en sont les meilleurs exemples

Face à cet enjeu, nous devons être capable de batir des agents conversationnels performant et conforme aux attentes des utilisateurs dans des temps de mise sur le marché courts à l'aide d'outils proposant des interfaces graphiques de conception, avec par exemple le Conversation Designer de Microsoft avec également  des capacités de déploiment multi canaux.
L'éthique en matière d'IA constitue un sujet clé, on entend parler par exemple pour les voitures autonomes d'éthique déontique ou éthique conséquensialiste qui sont par exmple deux modèles de prise de décision relarivement opposé en termes de résultats, le premier basé sur le droit commun soit le code de la route pour une voiture, le deuxième sur l'évaluation des conséquenses d'une décision sur par exemple l'espérance de vie humaine. Face à une situation critique, le véhicule ne prendra pas la même décision en fonction de son code éthique. Ce sujet a été abordé dans de multiples sessions de la conférence, ci dessous un exemple.


En conclusion de cet article : L'IA est là, les ressouces pour la développer également au travers de plate formes SAAS, Hardware avec notamment les GPUs (NVidia en tête), l'arrivée prochaine des calculateurs quantiques, des Frameworks de développements pour l'essentiel proposés par Microsoft, Amazon et Google. Il n'y a plus de raison de ne pas avancer sur ce sujet, que ce soit au travers de projets de productivité internes (RH, Finance, Recrutement etc…) ou bien encore d'applications métiers innovantes
Pour conclure ce premier article sur cette conférence voici le message délivré par Amazon: 

jeudi 27 juillet 2017

Bot Framework Part 5 - Déployer un Chatbot

Dans cet article, nous allons aborder toutes les étapes nécessaires à la mise en production d'un Chatbot

  • Enregistrer notre bot sur le portail Bot Framework
  • Déployer notre Chatbot sur une instance de site web dans Azure
  • Tester notre Chatbot
  • Emuler différents channels : Slack, Teams, Skype, Facebook Messenger etc.
Notre Chatbot est simplement une application web et de ce fait il est possible de l'héberger sur tout host permettant d'héberger une site web ASP.net (Azure, AWS etc.)
Pour enregistrer notre Bot, il suffit de se connecter au portail dev.botframework.com en s'authentifiant, puis cliquer sur l'onglet My Bots
Puis cliquer sur Register pour enregistrer notre Chatbot, nous complétons alors le nom du Chatbot, le Handle qui est à usage interne uniquement et ne doit pas contenir d'espaces et enfin une description du Chatbot
Pour la configuration, elle sera fournie par le portail, mais il faut tout de même en entrer une, nous pouvons mettre temporairement : https://blank-url.com puis cliquer sur  le  bouton Create Microsoft App ID
Nous sommes alors rediriger vers le portail de développement Microsoft avec la génération de l'ID
Cliquer sur le bouton générer Mot de passe, la fenêtre suivante s'affiche alors
Attention à bien copier l'App ID et le Password dans un endroit ou vous saurez le retrouver, nous en aurons besoin pour modifier la configuration du Chatbot ultérieurement. Il ne sera affiché qu'une seule fois tel qu'indiqué dans la fenêtre popup
Enfin, on renseigne l'adresse email Admin (notre compte LiveID) puis simplement cliquer le bouton Register
Nous devons maintenant configurer et déployer notre Chatbot, pour cela revenons dans Visual Studio, ouvrir le fichier Web config et complèter les variables App ID et Password avec les valeurs générées lors de l'enregistrement du Chatbot

Puis nous allons déployer le Chatbot sur une instance Web Azure, pour cela simplement lancer la commande Publish à partir du projet Chatbot et choisir la création d'une nouvelle Microsoft Azure App Service
Visual Studio, nous propose la fenêtre de création en renseignant à partir de nos données de profil, simplement cliquer sur le bouton Create
Une fois généré, nous récupérons l'URL du Chatbot afin de la remplacer dans la page de définition de notre bot et donc remplacer l'URL https://blank-url.com par celle générée.
Nous revenons dans le portail bot Framework et remplacons l'adresse sans oublier de la suffixer par : /api/messages et préfixer par https, puis cliquer sur Save Changes en bas de page




Dernière étape, tester le Chatbot, pour cela, simplement cliquer sur le bouton Test, une fenêtre de dialogue s'ouvre, le Chatbot devrait répondre tel qu'attendu : 
Pour terminer, nous savons qu'il n'est absolument pas une bonne idée de laisser des mots de passe ou identifiants dans le controle de code source, pour cela nous allons retirer l'App ID et le password du web.config pour le reporter dans la section App Settings de notre App service, en créeant simplement les 2 Clé valeurs comme montré ci dessous

Ne pas oublier de sauvegarder
Nous allons par exemple pouvoir l'intégrer dans Skype par exemple, à partir de la page de votre Bot, cliquer sur Skype
Puis cliquer sur Add to Contacts et lancer Skype
Ci dessous, la conversation avec le Bot intégrée dans Skype

Pour tous les autres logiciels conversationnels, il suffit de cliquer sur celui que l'on veut intégrer et simplement suivre la procédure