SlideShare a Scribd company logo
 Cos’è un bot
 Come sviluppare un bot con Microsoft Bot Framework
 Cognitive services
 Custom vision
 Pubblicazione
Agenda
Da A a Bot con un pizzico di
Cognitive
Alessio Iafrate
Freelance Developer e Fondatore DotNetAbruzzo
http://www.acquariusoft.com
@alessioiafrate
alessioiafrate@hotmail.com
ll bot è un programma che accede alla rete attraverso lo stesso tipo di
canali utilizzati dagli utenti umani.
Programmi di questo tipo sono diffusi in relazione a molti diversi servizi in
rete, con scopi vari, ma in genere legati all'automazione di compiti che
sarebbero troppo gravosi o complessi per gli utenti umani.
(Fonte Wikipedia)
Cosa è un bot?
 Facebook Messenger
 Telegram
 Skype
 Slack
 Cortana
 SMS
 Sito Web
 Email
 ………….
Dove posso ospitare un bot
Per ogni piattaforma abbiamo API differenti con metodologie diverse di
sviluppo e concetti propri di ogni servizio.
- Sviluppo per ogni singola piattaforma
- Utilizzo framework comune (Es. Microsoft Bot Framework)
Come lo sviluppo?
 Account azure anche in versione trial
 Conoscenze di C# o node.js
 Visual Studio anche in versione community (opzionale)
La lista della spesa
 Bot Framework Connector (Singola Api rest che permette al bot di
comunicare con i vari canali)
 Activity (Oggetto contenente i vari dati della conversazione)
 Dialog (Gestisce la conversazione)
 State (Gestione dati associati all’utente, alla conversazione e all’utente
nella conversazione)
Concetti base
Il nostro primo bot
Un’occhiata al codice - Il controller
La classe principale del
progetto è un controller che
gestisce le chiamate in
ingresso ed in base al tipo e
distingue tra un messaggio
inviato oppure operazioni di
gestione ( typing, ping,
aggiunta e rimozione di
membri dalla conversazione
ecc)
Un’occhiata al codice - Dialog
La classe dialog permette di
gestire i messaggi inviati
dall’utente con tutti i dettagli
associati e di rispondere di
conseguenza
Memorizziamo i dati
Il bot builder SDK permette di
memorizzare i dati delle sessioni in
• Memoria (volatile)
• Azure table
• Database SQL
• CosmosDB
Nel template di default la registrazione
viene eseguita nel metodo
Application_Start del Global.asax
Come gestisco il debug?
Con il bot framework
emulator possiamo testare
in locale il nostro bot con
una semplice interfaccia
che mostra anche il log
delle chiamate
E’ open source e disponibile
su github
Demo time!
Cosa ci fornisce il framework:
 Gestione dello stato dell’utente
 Domanda e risposta (Richiesta di informazioni o selezione di una
scelta)
 Invio messaggio ad un’utente a seguito di un evento lato server
Interagire con l’utente
Il context permette di gestire i dati associati all’utente e per farlo abbiamo
a disposizione
 UserData relativo allo User
 ConversationData relativo alla Conversazione
 PrivateConversationData relativo a quell’utente in quella specifica
conversazione
Per gestirli esistono i relativi metodi get e set (GetUserData,
SetUserData, ecc)
Lo stato dell’utente
Un’occhiata al codice - PromptDialog
La classe PromptDialog permette di gestire le conversazioni basate basate su domanda e risposta, in
questo caso il metodo Text (o quello relativo al dato che vogliamo ottenere) prende come parametro
una callback alla funzione da richiamare direttamente dopo che l’utente ha inviato una risposta
Un’occhiata al codice - Proactive Message
Per inviare un messaggio all’utente è necessario ricreare tutta la cascata di connessioni per
raggiungerlo utilizzando i dati memorizzati precedentemente
I Cognitive services
Aggiungiamo un pizzo di intelligenza!
Come utilizzare il bot framework
Custom Vision
Demo custom vision
Integriamo il tutto
Con una semplice chiamata
Rest è possibile inviare i
dati della nostra immagine e
ricevere i dati
dell’elaborazione
Come leggere le immagini inviate
Il message contiene una
lista di file in Attachments
che contengono l’url da cui
con una semplice chiamata
http è possibile scaricare i
files che ci sono stati inviati
Demo time!
Andiamo a pubblicare
 https://docs.microsoft.com/en-us/bot-framework/
 https://github.com/Microsoft/BotFramework-Emulator
 https://azure.microsoft.com/en-us/services/cognitive-services/
 https://www.customvision.ai/
 http://t.me/RostyBot
 https://github.com/a-iafrate/Rosty
Link
Domande?
Grazie a tutti!

More Related Content

PPTX
Da A a Bot con un pizzico di Cognitive
PPTX
Azure Bot Service with Node.js
PDF
XMASDEV 2018 - XMAS GIFT ASSISTANT
PPTX
Wcf data services
PDF
Acadevmy - Visual Studio Code Overview
PPTX
Sviluppo apps multipiattaforma con visual studio e xamarin
PPT
PDF
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...
Da A a Bot con un pizzico di Cognitive
Azure Bot Service with Node.js
XMASDEV 2018 - XMAS GIFT ASSISTANT
Wcf data services
Acadevmy - Visual Studio Code Overview
Sviluppo apps multipiattaforma con visual studio e xamarin
Realizzazione di un ChatBot sulla piattaforma Messenger di Facebook per l'inf...

Similar to Come utilizzare il bot framework (20)

PPTX
Sistemi di web conferencing - Caso di studio Apache OpenMeetings
PPTX
Silverlight in Action
PPT
Buzzreader engine
PDF
Liferay: Esporre Web Services Custom
PDF
September 2010 - Gatein
PPTX
Win05 accesso ai dati in win 8
PDF
Corso Javascript
PPTX
Dot net framework 2
PPTX
Progettato per specialisti del web
PPTX
Machine learning models continuous deployment on azure using devops
PDF
Programmazione per il web - WebWord
PDF
Meetup DotNetCode A.I. Bot Framework and Azure Functions
PPTX
Writing apps for android with .net
PDF
Liferay Web Services - Come importare utenti da un foglio Excel
PPTX
Intelligenza artificiale nel mondo front-end - CodeGen2021
PDF
HTML5, il lato client della forza...
PPTX
Corso sharepoint D2
PDF
Introduzione a node.js
PDF
Introduzione a Node.js
PDF
DDive - 8.5.2 Xpages - L'evoluzione continua
Sistemi di web conferencing - Caso di studio Apache OpenMeetings
Silverlight in Action
Buzzreader engine
Liferay: Esporre Web Services Custom
September 2010 - Gatein
Win05 accesso ai dati in win 8
Corso Javascript
Dot net framework 2
Progettato per specialisti del web
Machine learning models continuous deployment on azure using devops
Programmazione per il web - WebWord
Meetup DotNetCode A.I. Bot Framework and Azure Functions
Writing apps for android with .net
Liferay Web Services - Come importare utenti da un foglio Excel
Intelligenza artificiale nel mondo front-end - CodeGen2021
HTML5, il lato client della forza...
Corso sharepoint D2
Introduzione a node.js
Introduzione a Node.js
DDive - 8.5.2 Xpages - L'evoluzione continua
Ad

More from Alessio Iafrate (10)

PPTX
Workshop sulle spatial anchors
PPTX
Realtà aumentata ed Azure, un binomio imbattibile
PPTX
Custom Vision e Win.ml per le nostre app intelligenti offline
PPTX
What's new in Visual Studio 2019
PPTX
Santa Claus Alert: ovvero come sfruttare WinML per intercettare babbo natale
PPTX
Tecniche di Machine Learning per l’analisi offline dei dati aziendali
PPTX
Aperitech winml
PPTX
Xamarin forms
PPTX
Windows 10 e Universal Windows Platform
PPTX
Introduzione alle Universal App
Workshop sulle spatial anchors
Realtà aumentata ed Azure, un binomio imbattibile
Custom Vision e Win.ml per le nostre app intelligenti offline
What's new in Visual Studio 2019
Santa Claus Alert: ovvero come sfruttare WinML per intercettare babbo natale
Tecniche di Machine Learning per l’analisi offline dei dati aziendali
Aperitech winml
Xamarin forms
Windows 10 e Universal Windows Platform
Introduzione alle Universal App
Ad

Come utilizzare il bot framework

  • 1.  Cos’è un bot  Come sviluppare un bot con Microsoft Bot Framework  Cognitive services  Custom vision  Pubblicazione Agenda Da A a Bot con un pizzico di Cognitive
  • 2. Alessio Iafrate Freelance Developer e Fondatore DotNetAbruzzo http://www.acquariusoft.com @alessioiafrate alessioiafrate@hotmail.com
  • 3. ll bot è un programma che accede alla rete attraverso lo stesso tipo di canali utilizzati dagli utenti umani. Programmi di questo tipo sono diffusi in relazione a molti diversi servizi in rete, con scopi vari, ma in genere legati all'automazione di compiti che sarebbero troppo gravosi o complessi per gli utenti umani. (Fonte Wikipedia) Cosa è un bot?
  • 4.  Facebook Messenger  Telegram  Skype  Slack  Cortana  SMS  Sito Web  Email  …………. Dove posso ospitare un bot
  • 5. Per ogni piattaforma abbiamo API differenti con metodologie diverse di sviluppo e concetti propri di ogni servizio. - Sviluppo per ogni singola piattaforma - Utilizzo framework comune (Es. Microsoft Bot Framework) Come lo sviluppo?
  • 6.  Account azure anche in versione trial  Conoscenze di C# o node.js  Visual Studio anche in versione community (opzionale) La lista della spesa
  • 7.  Bot Framework Connector (Singola Api rest che permette al bot di comunicare con i vari canali)  Activity (Oggetto contenente i vari dati della conversazione)  Dialog (Gestisce la conversazione)  State (Gestione dati associati all’utente, alla conversazione e all’utente nella conversazione) Concetti base
  • 9. Un’occhiata al codice - Il controller La classe principale del progetto è un controller che gestisce le chiamate in ingresso ed in base al tipo e distingue tra un messaggio inviato oppure operazioni di gestione ( typing, ping, aggiunta e rimozione di membri dalla conversazione ecc)
  • 10. Un’occhiata al codice - Dialog La classe dialog permette di gestire i messaggi inviati dall’utente con tutti i dettagli associati e di rispondere di conseguenza
  • 11. Memorizziamo i dati Il bot builder SDK permette di memorizzare i dati delle sessioni in • Memoria (volatile) • Azure table • Database SQL • CosmosDB Nel template di default la registrazione viene eseguita nel metodo Application_Start del Global.asax
  • 12. Come gestisco il debug? Con il bot framework emulator possiamo testare in locale il nostro bot con una semplice interfaccia che mostra anche il log delle chiamate E’ open source e disponibile su github
  • 14. Cosa ci fornisce il framework:  Gestione dello stato dell’utente  Domanda e risposta (Richiesta di informazioni o selezione di una scelta)  Invio messaggio ad un’utente a seguito di un evento lato server Interagire con l’utente
  • 15. Il context permette di gestire i dati associati all’utente e per farlo abbiamo a disposizione  UserData relativo allo User  ConversationData relativo alla Conversazione  PrivateConversationData relativo a quell’utente in quella specifica conversazione Per gestirli esistono i relativi metodi get e set (GetUserData, SetUserData, ecc) Lo stato dell’utente
  • 16. Un’occhiata al codice - PromptDialog La classe PromptDialog permette di gestire le conversazioni basate basate su domanda e risposta, in questo caso il metodo Text (o quello relativo al dato che vogliamo ottenere) prende come parametro una callback alla funzione da richiamare direttamente dopo che l’utente ha inviato una risposta
  • 17. Un’occhiata al codice - Proactive Message Per inviare un messaggio all’utente è necessario ricreare tutta la cascata di connessioni per raggiungerlo utilizzando i dati memorizzati precedentemente
  • 18. I Cognitive services Aggiungiamo un pizzo di intelligenza!
  • 22. Integriamo il tutto Con una semplice chiamata Rest è possibile inviare i dati della nostra immagine e ricevere i dati dell’elaborazione
  • 23. Come leggere le immagini inviate Il message contiene una lista di file in Attachments che contengono l’url da cui con una semplice chiamata http è possibile scaricare i files che ci sono stati inviati
  • 26.  https://docs.microsoft.com/en-us/bot-framework/  https://github.com/Microsoft/BotFramework-Emulator  https://azure.microsoft.com/en-us/services/cognitive-services/  https://www.customvision.ai/  http://t.me/RostyBot  https://github.com/a-iafrate/Rosty Link

Editor's Notes

  • #8: Connector The Bot Framework Connector provides a single REST API that enables a bot to communicate across multiple channels such as Skype, Email, Slack, and more Activity The Connector uses an Activity object to pass information back and forth between bot and channel (user). The most common type of activity is message, but there are other activity types that can be used to communicate various types of information to a bot or channel Dialog When you create a bot using the Bot Builder SDK for .NET, you can use dialogs to model a conversation and manage conversation flow. A dialog can be composed of other dialogs to maximize reuse, and a dialog context maintains the stack of dialogs that are active in the conversation at any point in time. A conversation that comprises dialogs is portable across computers, which makes it possible for your bot implementation to scale. State The Bot Builder Framework enables your bot to store and retrieve state data that is associated with a user, a conversation, or a specific user within the context of a specific conversation. State data can be used for many purposes, such as determining where the prior conversation left off or simply greeting a returning user by name. If you store a user's preferences, you can use that information to customize the conversation the next time you chat. For testing and prototyping purposes, you can use the Bot Builder Framework's in-memory data storage. For production bots, you can implement your own storage adapter or use one of Azure Extensions. The Azure Extensions allow you to store your bot's state data in either Table Storage, CosmosDB, or SQL