SlideShare uma empresa Scribd logo
1 de 20
BOT: Conversando com o seu sistema
Mario Guedes
Mario?
• Aquele ...
• José Mario Silva Guedes
• Humano
• 20+ anos de desenvolvimento
• Delphi, Python, JavaScript, Lua e bancos noSQL
• Facilitador de Desenvolvimento na CONTACT STUDIO Software
• Tentado virar Cientista de Dados
• Portanto sejam generosos comigo =)
• jmarioguedes@gmail.com | Em todas as redes: /jmarioguedes
• http://eugostododelphi.blogspot.com.br/
Severiiinu!
• Severiiinu!
• Bot
• 3 semanas em desenvolvimento
• Exemplo de assistente virtual de propósito específico
Vamos bater um papo?
Evolução(?)
Interface Humano Computador
Conversacional
ChatBot
• Chat – Conversa
• Bot – Robot
• Juntos somos o ChatBot!
• Em vários momento podemos ler apenas bot
• As bases para o funcionamento de um bot são o PNL - Processamento de
Linguagem Natural, e ML - Aprendizado de Máquina.
“Um chatbot, portanto, é uma solução que permite às empresas conversarem e
interagirem com as pessoas por meio de aplicativos de mensagens, utilizando
softwares baseados em regras (e, em alguns casos, inteligência artificial) com o
suporte de informações de outros sistemas empresariais.”
CHATBOT PARA INICIANTES – Take - http://take.net/
Utilizações
• Soluções B2C
• Relacionamento com o consumidor de forma geral
• Compras, Dúvidas, Cobrança, Mala Direta, URA
• Assistente pessoal
• Cortana - Microsoft
• Siri - Apple
• Google Now - Google
• Alexia - Amazon
• Um atendente bot está sempre disponível
• O desafio é integrar as diversas soluções de bot aos nossos sistemas
E se os usuários pudessem conversar com o seu
sistema?
• Essa abordagem é extremamente bem vinda nos aplicativos móveis
• Ao invés de navegar em várias telas e interpretar números e gráficos o usuário
poderá, simplesmente, perguntar: “como esta o estoque hoje?”
• Andando, dirigindo, prestes a entrar em uma reunião, no banheiro talvez ...
• Tem espaço também nos aplicativos desktop (seja Win32 ou Web)
• Curva de aprendizado mais rápido
Escolhendo uma plataforma
• A não ser que você tenha muito tempo, irá escolher uma plataforma
consolidada para criar o seu bot:
• Dialogflow (Google) - https://dialogflow.com (Antiga API.AI)
• WIT.AI (Facebook)
• LUIS (Microsoft)
• AWS Lex (Amazon)
• IBM Watson Dialog (IBM)
Qualidades de uma boa plataforma
• Agnóstica:
• Ser plugável à várias soluções de IM (Instant Message)
• Slack, Telegram, WhatsApp (você ainda não), Messenger, Hangouts, Allo, Skype,
Viber, e até mesmo SMS e eMail (por que não)
• Integrável:
• Possibilitar a integração com serviços web terceiros via webhooks
• Permitir que “ensinemos” a plataforma de uma maneira fluida
• RestFul
Não é magia, é tecnologia!
• A língua Portuguesa, assim como diversas outras, ainda não permitem
muitas features especialmente aquelas relacionadas à PLN. Naturalmente
ocorre o “English first!”.
• Um bot deve ser encarado como ele é: uma interface entre o usuário e o
software. Isso exige cuidados parecidos ao se fazer uma GUI (Interface
gráfica de usuário). Algo como “CUI” (Interface conversacional de
usuário)
• Portanto para que a experiência do usuário seja realmente agradável é
necessário trabalhos de UX específicos.
Principais conceitos
• Personalidade: É adequado que o agente tenha personalidade que influencie por exemplo se a comunicação
será formal ou coloquial.
• Agent: Um agente é o bot propriamente dito.
• Intents: Intenção é o mapeamento da interpretação da linguagem natural do usuário final e uma programação
que atenda à intenção da frase. Em caso de falha do mapeamento é acionado o Fallback Intent
• Entities: Entidade é a identificação de um objeto alvo dentro da intenção. “Gostaria de um suco de uva” – Uva
pode ser um elemento da entidade fruta. Poderia ser uma lista também.
• De sistema
• De desenvolvedor
• De usuário
• Pode ser composta (complexa)
• Context: Inter-relação de circunstâncias que acompanham um fato ou uma situação. Com isso o bot será capaz
de manter a fluidez do diálogo.
• Event: Mecanismo que permite acionar uma intent sem ser por uma interação conversacional mas sim por conta
de um “acontecimento”
• Webhook: Mecanismo que permite a integração da plataforma de BOT a sistemas terceiros.
Trazendo tudo isto para o nosso Delphi
• Para nosso exemplo utilizamos:
• Dialogflow
• Uma aplicação cliente Win32 Old School (para fins didáticos)
• Imagine qualquer coisa no lugar: Web ou Mobile talvez
• Um servidor DataSnap
• Uma máquina AWS-EC2
• https://bot.dialogflow.com/EC2017
• Mas basicamente precisamos ter domínio sobre integração REST
Topologia simplificada
CAMADA CLIENTE
Plataforma de Bot
(Dialogflow)
Servidor DataSnap
Hora do prêmio!
• Acesse o Severino!
https://bot.dialogflow.com/EC2017
• Diga: “Eu quero participar!”
• Digite o seu nome.
• Valendo!
Analisando o fluxo - Sorteio
• Default Fallback Intent
• Default Welcome Intent
• Contexto de saída
• Lifespan (Vida útil)
• quem.delphi
• quem.nome
• quem.proposito
• quem.real
• sorteio.cupom
• Contexto
• Parâmetros
Recomendação de curso e links
• Desenvolvimento de Chatbots
Data Science Academy
Suemar Éverton Contessoto
https://www.datascienceacademy.com.br/public-course?courseid=desenvolvimento-de-chatbots
• Como desenhar conversas para chatbots?
InfoQ | UXCONF
Caio Calado
https://www.infoq.com/br/presentations/como-desenhar-conversas-para-chatbots
• Desenhando interfaces conversacionais: o desafio de UX
uxdesign.cc Brasil
Fabricio Teixeira
https://brasil.uxdesign.cc/desenhando-interfaces-conversacionais-o-desafio-de-ux-5d94cce7e82
BOT: Conversando com o seu sistema

Mais conteúdo relacionado

Mais procurados

Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOpsBeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOps4LinuxCursos
 
WordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperWordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperPaulino Michelazzo
 
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieTecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieRenato Groffe
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosPaulino Michelazzo
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Renato Groff
 
Apresentacao institucional 4Linux
Apresentacao institucional 4LinuxApresentacao institucional 4Linux
Apresentacao institucional 4Linux4LinuxCursos
 
Apresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiApresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiRankest
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...Ricardo Martinelli de Oliveira
 
Escalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisEscalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisMario Guedes
 
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...Renato Groff
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Renato Groff
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
Novidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evoluçãoNovidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evoluçãoRafael Cruz, MCT, MBA
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIRudá Almeida
 

Mais procurados (20)

Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
BeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOpsBeavOps : Como o Python ajudou a integrar o mundo DevOps
BeavOps : Como o Python ajudou a integrar o mundo DevOps
 
WordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperWordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé Developer
 
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieTecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
Apresentacao institucional 4Linux
Apresentacao institucional 4LinuxApresentacao institucional 4Linux
Apresentacao institucional 4Linux
 
Apresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpiApresentacao institucional-4linux-maio2015-4 100dpi
Apresentacao institucional-4linux-maio2015-4 100dpi
 
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
De zero a cem em cloud computing  transformando idéias em aplicações em pouco...De zero a cem em cloud computing  transformando idéias em aplicações em pouco...
De zero a cem em cloud computing transformando idéias em aplicações em pouco...
 
Escalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisEscalando o backend com NGINX e Redis
Escalando o backend com NGINX e Redis
 
Palestra OSCON 2011
Palestra OSCON 2011Palestra OSCON 2011
Palestra OSCON 2011
 
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
 
ASP.NET Core
ASP.NET CoreASP.NET Core
ASP.NET Core
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
Novidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evoluçãoNovidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evolução
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 

Semelhante a BOT: Conversando com o seu sistema

Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.jsFelipe Pedroso
 
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assimArrayOf.io
 
Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPMichael Douglas
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Overview - Bot Framework
Overview - Bot FrameworkOverview - Bot Framework
Overview - Bot FrameworkRenato Romão
 
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkOpen Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkDouglas Romão
 
HTML5.pptx
HTML5.pptxHTML5.pptx
HTML5.pptxLuanDev1
 
Apostila iniciacao programacao - scratch
Apostila iniciacao programacao - scratchApostila iniciacao programacao - scratch
Apostila iniciacao programacao - scratchValter Neto
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou AppHeider Lopes
 
Trab
TrabTrab
Trabornei
 
T R A B A L H O S O B R E S O C I A L S O F T W A R E
T R A B A L H O  S O B R E  S O C I A L  S O F T W A R ET R A B A L H O  S O B R E  S O C I A L  S O F T W A R E
T R A B A L H O S O B R E S O C I A L S O F T W A R Eornei
 
Incubadora Virtual de Conteúdo Digitais
Incubadora Virtual de Conteúdo DigitaisIncubadora Virtual de Conteúdo Digitais
Incubadora Virtual de Conteúdo DigitaisJacson Tiola
 
Net uma revisão sobre a programação orientada a objetos
Net   uma revisão sobre a programação orientada a objetosNet   uma revisão sobre a programação orientada a objetos
Net uma revisão sobre a programação orientada a objetosLP Maquinas
 

Semelhante a BOT: Conversando com o seu sistema (20)

Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
1, 2, 3 e já estamos com um chatbot funcionando: Rápido assim
 
Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHP
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Open Source Bootcamp Mogi das Cruzes
Open Source Bootcamp Mogi das CruzesOpen Source Bootcamp Mogi das Cruzes
Open Source Bootcamp Mogi das Cruzes
 
Desmistificando o DialogFlow
Desmistificando o DialogFlowDesmistificando o DialogFlow
Desmistificando o DialogFlow
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Overview - Bot Framework
Overview - Bot FrameworkOverview - Bot Framework
Overview - Bot Framework
 
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkOpen Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot Framework
 
HTML5.pptx
HTML5.pptxHTML5.pptx
HTML5.pptx
 
Apostila iniciacao programacao - scratch
Apostila iniciacao programacao - scratchApostila iniciacao programacao - scratch
Apostila iniciacao programacao - scratch
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App
 
Web ou App?
Web ou App?Web ou App?
Web ou App?
 
Trab
TrabTrab
Trab
 
T R A B A L H O S O B R E S O C I A L S O F T W A R E
T R A B A L H O  S O B R E  S O C I A L  S O F T W A R ET R A B A L H O  S O B R E  S O C I A L  S O F T W A R E
T R A B A L H O S O B R E S O C I A L S O F T W A R E
 
Incubadora Virtual de Conteúdo Digitais
Incubadora Virtual de Conteúdo DigitaisIncubadora Virtual de Conteúdo Digitais
Incubadora Virtual de Conteúdo Digitais
 
HTML5
HTML5HTML5
HTML5
 
Net uma revisão sobre a programação orientada a objetos
Net   uma revisão sobre a programação orientada a objetosNet   uma revisão sobre a programação orientada a objetos
Net uma revisão sobre a programação orientada a objetos
 

Mais de Mario Guedes

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitMario Guedes
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISMario Guedes
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumMario Guedes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTMario Guedes
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - CookbookMario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!Mario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Mario Guedes
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis Mario Guedes
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Mario Guedes
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiMario Guedes
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Mario Guedes
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosMario Guedes
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming LibraryMario Guedes
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
 
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Mario Guedes
 

Mais de Mario Guedes (20)

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
 
Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - Cookbook
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
 

BOT: Conversando com o seu sistema

  • 1. BOT: Conversando com o seu sistema Mario Guedes
  • 2. Mario? • Aquele ... • José Mario Silva Guedes • Humano • 20+ anos de desenvolvimento • Delphi, Python, JavaScript, Lua e bancos noSQL • Facilitador de Desenvolvimento na CONTACT STUDIO Software • Tentado virar Cientista de Dados • Portanto sejam generosos comigo =) • jmarioguedes@gmail.com | Em todas as redes: /jmarioguedes • http://eugostododelphi.blogspot.com.br/
  • 3. Severiiinu! • Severiiinu! • Bot • 3 semanas em desenvolvimento • Exemplo de assistente virtual de propósito específico
  • 8. ChatBot • Chat – Conversa • Bot – Robot • Juntos somos o ChatBot! • Em vários momento podemos ler apenas bot • As bases para o funcionamento de um bot são o PNL - Processamento de Linguagem Natural, e ML - Aprendizado de Máquina. “Um chatbot, portanto, é uma solução que permite às empresas conversarem e interagirem com as pessoas por meio de aplicativos de mensagens, utilizando softwares baseados em regras (e, em alguns casos, inteligência artificial) com o suporte de informações de outros sistemas empresariais.” CHATBOT PARA INICIANTES – Take - http://take.net/
  • 9. Utilizações • Soluções B2C • Relacionamento com o consumidor de forma geral • Compras, Dúvidas, Cobrança, Mala Direta, URA • Assistente pessoal • Cortana - Microsoft • Siri - Apple • Google Now - Google • Alexia - Amazon • Um atendente bot está sempre disponível • O desafio é integrar as diversas soluções de bot aos nossos sistemas
  • 10. E se os usuários pudessem conversar com o seu sistema? • Essa abordagem é extremamente bem vinda nos aplicativos móveis • Ao invés de navegar em várias telas e interpretar números e gráficos o usuário poderá, simplesmente, perguntar: “como esta o estoque hoje?” • Andando, dirigindo, prestes a entrar em uma reunião, no banheiro talvez ... • Tem espaço também nos aplicativos desktop (seja Win32 ou Web) • Curva de aprendizado mais rápido
  • 11. Escolhendo uma plataforma • A não ser que você tenha muito tempo, irá escolher uma plataforma consolidada para criar o seu bot: • Dialogflow (Google) - https://dialogflow.com (Antiga API.AI) • WIT.AI (Facebook) • LUIS (Microsoft) • AWS Lex (Amazon) • IBM Watson Dialog (IBM)
  • 12. Qualidades de uma boa plataforma • Agnóstica: • Ser plugável à várias soluções de IM (Instant Message) • Slack, Telegram, WhatsApp (você ainda não), Messenger, Hangouts, Allo, Skype, Viber, e até mesmo SMS e eMail (por que não) • Integrável: • Possibilitar a integração com serviços web terceiros via webhooks • Permitir que “ensinemos” a plataforma de uma maneira fluida • RestFul
  • 13. Não é magia, é tecnologia! • A língua Portuguesa, assim como diversas outras, ainda não permitem muitas features especialmente aquelas relacionadas à PLN. Naturalmente ocorre o “English first!”. • Um bot deve ser encarado como ele é: uma interface entre o usuário e o software. Isso exige cuidados parecidos ao se fazer uma GUI (Interface gráfica de usuário). Algo como “CUI” (Interface conversacional de usuário) • Portanto para que a experiência do usuário seja realmente agradável é necessário trabalhos de UX específicos.
  • 14. Principais conceitos • Personalidade: É adequado que o agente tenha personalidade que influencie por exemplo se a comunicação será formal ou coloquial. • Agent: Um agente é o bot propriamente dito. • Intents: Intenção é o mapeamento da interpretação da linguagem natural do usuário final e uma programação que atenda à intenção da frase. Em caso de falha do mapeamento é acionado o Fallback Intent • Entities: Entidade é a identificação de um objeto alvo dentro da intenção. “Gostaria de um suco de uva” – Uva pode ser um elemento da entidade fruta. Poderia ser uma lista também. • De sistema • De desenvolvedor • De usuário • Pode ser composta (complexa) • Context: Inter-relação de circunstâncias que acompanham um fato ou uma situação. Com isso o bot será capaz de manter a fluidez do diálogo. • Event: Mecanismo que permite acionar uma intent sem ser por uma interação conversacional mas sim por conta de um “acontecimento” • Webhook: Mecanismo que permite a integração da plataforma de BOT a sistemas terceiros.
  • 15. Trazendo tudo isto para o nosso Delphi • Para nosso exemplo utilizamos: • Dialogflow • Uma aplicação cliente Win32 Old School (para fins didáticos) • Imagine qualquer coisa no lugar: Web ou Mobile talvez • Um servidor DataSnap • Uma máquina AWS-EC2 • https://bot.dialogflow.com/EC2017 • Mas basicamente precisamos ter domínio sobre integração REST
  • 16. Topologia simplificada CAMADA CLIENTE Plataforma de Bot (Dialogflow) Servidor DataSnap
  • 17. Hora do prêmio! • Acesse o Severino! https://bot.dialogflow.com/EC2017 • Diga: “Eu quero participar!” • Digite o seu nome. • Valendo!
  • 18. Analisando o fluxo - Sorteio • Default Fallback Intent • Default Welcome Intent • Contexto de saída • Lifespan (Vida útil) • quem.delphi • quem.nome • quem.proposito • quem.real • sorteio.cupom • Contexto • Parâmetros
  • 19. Recomendação de curso e links • Desenvolvimento de Chatbots Data Science Academy Suemar Éverton Contessoto https://www.datascienceacademy.com.br/public-course?courseid=desenvolvimento-de-chatbots • Como desenhar conversas para chatbots? InfoQ | UXCONF Caio Calado https://www.infoq.com/br/presentations/como-desenhar-conversas-para-chatbots • Desenhando interfaces conversacionais: o desafio de UX uxdesign.cc Brasil Fabricio Teixeira https://brasil.uxdesign.cc/desenhando-interfaces-conversacionais-o-desafio-de-ux-5d94cce7e82

Notas do Editor

  1. Sorteio do e-Book: Código: 106229
  2. O aniversário da minha filha teve emoji como tema
  3. Código do prêmio: 106229
  4. Um contexto mapeia todos os parâmetros.