SlideShare une entreprise Scribd logo
1  sur  54
Jackson Mafra - Tolv12
Desmistificando o
API.AI Dialogflow
API.AI agora é DialogFlow
Introducing Dialogflow, the new name for API.AI
October 10, 2017
JACKSON FERREIRA DE ANDRADE MAFRA
Desenvolvedor há mais de 20 anos com background em projetos de e-commerce e
real estate, desde 2009 com interesses focados para o desenvolvimento de
interfaces móveis e aplicações MEAP.
Me chama lá...
http://about.me/jacksonfdam
http://linkedin.com/in/jacksonfdam
@jacksonfdam
Construa experiências de conversação
naturais e ricas
Dê aos usuários novas formas de interagir com o seu
produto através da construção de interfaces de
conversação com voz e texto baseadas em texto,
alimentadas por AI.
Conecte-se com usuários no Assistente do Google, Amazon
Alexa, Facebook Messenger e outras plataformas e
dispositivos populares.
Use a aprendizagem de máquina para
entender o que os usuários estão dizendo
Forneça exemplos de o que um usuário pode dizer ao
interagir com seu produto. Usando anos de conhecimento
de domínio e compreensão de linguagem natural, para
analisar e entender a intenção do usuário para ajudá-lo a
responder da maneira mais útil.
Em qualquer plataforma
Traga seu aplicativo conversacional para qualquer
plataforma em que seus usuários estejam, como o Google
Assistant, Slack, Cortana, Alexa e Facebook Messenger.
Agora estamos testemunhando uma nova mudança na
computação do movimento de mobile–first para um mundo AI-
first
Sundar Pichai, CEO de Google
São softwares que funcionam dentro de aplicações de
mensagens.
Caio Calado, ChatBots Brasil
Chatbots são bons martelos, mas nem tudo é prego.
Amir Shevat, Slack
Não deixe o frenesi da mídia e o barulho em torno da AI te
enganar. As máquinas têm suas limitações - pelo menos no
cenário de hoje
Então, antes de ir todo entusiasmado em AI-fying todo o seu
negócio, comece a entender o que esses diferentes processos de
negócios são e se é ou não uma boa idéia para substituir seus
processos atuais por uma máquina / algoritmo / peça de código.
E o bot perfeito?
Diálogo natural
O Bot deve entender linguagem natural, múltiplas formas de fazer perguntas,
jargões, gírias, regionalismos, erros de digitação, erros gramaticais e outras
deformações linguísticas.
CaveRat
Achar que a Inteligência Artificial vai ser capaz de conversar de primeira sem
treinamento e criação de uma base de conhecimento.
Contexto e Coerência
Manter o estado da memória para a coerência em longas conversas. O bot deve
reconhecer o canal e obtém dados do usuário para fornecer uma solução
personalizada.
Evoluir continuamente
Algoritmos, dicionário e banco de dados de significados proprietários que evoluem
em tempo real usando a Aprendizagem de Máquinas.
Prever
Quando não possui as informações solicitadas, o Bot deve sugerir conteúdo
relacionado com base em interações similares com outros clientes.
Conceitos
Falo de plataformas como o api.ai (recentemente adquirido pela Google), wit.ai
(adquirido pelo Facebook) e o luis.ai (da Microsoft Cognitive Systems).
Conceitos
As APIs de linguagem natural fornecem uma boa maneira de começar com
interações únicas (ex. Pergunta-resposta, ação de comando)
Quando você se move para conversas, a maior parte da lógica, inclusive gerenciando
o estado e alterando as ações com base nela, precisa ser implementada pelo
desenvolvedor, muitas vezes de forma rígida
As APIs disponíveis são boas para a construção de MVPs, mas têm várias
desvantagens (Contexto e histórico não utilizados pelos algoritmos, gerenciamento
de falhas deficiente, sem otimização de diálogo, nenhuma maneira de influenciar o
conhecimento especializado, menor precisão) que podem dificultar a experiência do
usuário
Compreender a terminologia de Chatbots
● Agents(Agentes)
● Intents(Intenções)
● Entities(Entidades)
● Training(Treinamento)
● Integrations(Integrações)
● Fulfillment (Realização)
Agente
O agente é o seu assistente virtual. O api.ai permite que você tenha mais de um
assistente virtual.
O api.ai suporta tanto o português brasileiro como o europeu.
Em PT_BR temos algumas limitações, sendo as mais importantes:
- Não podemos ativar manualmente e nem controlar as configurações do ML/THRESHOLD
da plataforma (https://api.ai/docs/machine-learning)
- Não temos a opção de Training (https://api.ai/docs/training)
- Entidades definidas pelo sistema são limitada (https://api.ai/docs/reference/system-
entities)
- Poucos exemplos de Prebuilt Agents (https://api.ai/docs/agents)
Agente
O idioma escolhido não poderá ser alterado depois de salvo. Mas você pode sempre
criar mais um agente se quiser que o assistente virtual se comunique em outro idioma.
Entities
Entities são objetos que ajudam o agente a interpretar linguagem natural e não
apenas frases pré-programadas.
Se você criar uma entity denominada “doce”, onde vai especificar os doces que sua
loja vende e alguns sinónimos.
Intents
Os Intents mapeam todas as requisições do usuário à uma ação.
● O Default Fallback Intent possui algumas frases pré-definidas que serão
enviadas ao usuário caso o assistente virtual “não entenda” a requisição feita.
Ele provavelmente dirá coisas como “Não entendi”, “Ainda não fui programado
para responder isso”, etc.
● O Default Welcome Intent possui frases de boas vindas que são mostradas ao
usuário quando ele ativa o Assistente Virtual em algumas plataformas.
Intents
Quando criamos o nosso primeiro Intent, preenchemos 3 campos: nome do Intent,
User says e Response.
Intents
A tecnologia Machine Learning é utilizada em todos os Intents. Isso significa que o
seu agente irá se basear em todas as frases adicionadas no “User says” para treinar e
começar a entender variações ou frases semelhantes.
É possível desativar o ML em uma determinada intent, porém o agente só irá dar
match com os exemplos citados no "User Says"
Intents
Repare que os doces serão automaticamente destacados. E além disso, veja que a
unidade de peso “Kg” também foi destacada e identificada como “sys.unit-weight”.
Isso porque o api.ai tem algumas entities já pré-criadas para facilitar a nossa vida.
Estas entities são fáceis de distinguir, pois usam o pré-fixo sys
Intents
Response
Como você provavelmente já sabe, o campo response permite definirmos a resposta
que o nosso agente dará quando o Intent for chamado.
Esta resposta não precisa de ser apenas uma; o api.ai permite definir até 10
respostas sequenciais.
Intents
Imagem
Se você estiver a desenvolver um bot capaz de funcionar em redes sociais (Facebook
Messenger, Kik, Slack ou Telegram), é provável que você queira que o seu bot seja
capaz de enviar imagens aos utilizadores. E é exatamente para isso que existe a
Image Response.
Note que as redes sociais têm certas limitações para imagens:
- Facebook Messenger: só suporta jpg, png e gif (incluindo os animados);
- Kik: só jpg e a imagem não deve exceder 1Mb;
- Slack: só suporta jpg, png, bmp e gif;
- Telegram: basta não exceder 5Mb.
Intents
Resposta rápida
As respostas rápidas (quick replies) oferecem-nos a possibilidade de “prevermos” a
resposta do utilizador. Damos algumas opções/sugestões (no máximo 10) ao
utilizador de como responder. Quando ele clica numa dessas opções, o texto dessa
opção é enviado ao agente como se fosse uma requisição do utilizador.
Nas redes sociais, estas opções são mostradas como botões para facilitar a interação
entre o utilizador e o agente.
Note que pelo fato de serem apresentados em botões, cada opção da resposta
rápida não pode ter mais de 20 caracteres.
Intents
Card
Com as cartas (cards), podemos permitir que o bot dê uma resposta mais completa
em relação às responses anteriores.
As cartas possuem 4 elementos:
Imagem;
Título;
Subtítulo;
Botões interactivos.
Actions
Uma ação corresponde ao passo que a nossa aplicação dará quando um Intent for
chamado.
Ações podem conter parâmetros para passar alguns detalhes extras à nossa
aplicação, quando necessário. Estes parâmetros podem ser definidos no campo
Action, quando estamos a criar um Intent na consola do api.ai
Actions
Parameters
Como já foi dito, parâmetros são argumentos que podem, opcionalmente, ser adicionados ao nosso
Intent para que a nossa aplicação tenha mais detalhes sobre a acção que deve tomar. Estes
parâmetros podem ser definidos automaticamente de acordo com os exemplos que você coloca
automaticamente no campo “User says” ou você pode colocá-los na tabela de forma manual.
Definição automática
Quando você introduz um exemplo no campo User says que contém uma entity (tanto system
como developer entity), ele automaticamente irá destacar essa entity e adicionar à tabela de
parâmetros:
Definição de constantes
Dependendo da aplicação que estamos a desenvolver, por vezes podemos querer que a nossa
acção tenha parâmetros constantes.
Amazon’s Alexa
https://developer.amazon.com/alexa
Google’s Dialogflow
https://dialogflow.ai/
Microsoft’s Luis
https://www.luis.ai/
Apple’s SiriKit
https://developer.apple.com/sirikit/
IBM’s Watson
https://www.ibm.com/watson/developercl
oud/nl-classifier.html
Referencias
Facebook’s Wit
https://wit.ai/
Snips
https://snips.ai/
Converse AI
http://www.converse.ai/
Referencias
Artigo do Rosário Pereira Fernandes - Machine Learning—Entrando no mundo dos
assistentes virtuais
https://medium.com/@rosariopfernandes/ml-b7eba66e0e03
Artigo da Caroline Wisniewski - Benchmarking Natural Language Understanding Systems
https://snips.ai/content/sdk-benchmark-visualisation/
Artigo do Jess Holbrook - Human-Centered Machine Learning
https://medium.com/google-design/human-centered-machine-learning-a770d10562cd
Artigo do Neil Balthaser - Fight! Api.ai vs. Converse.ai
https://chatbotsmagazine.com/fight-api-ai-vs-converse-ai-8e44e29b5fb
Referencias
Artigo da Jéssica Rodrigues - O que é o Processamento de Linguagem Natural?
https://medium.com/botsbrasil/o-que-%C3%A9-o-processamento-de-linguagem-natural-
49ece9371cff
Artigo do Pavlo Bashmakov - Advanced Natural Language Processing Tools for Bot Makers
– LUIS, Wit.ai, Api.ai and others
https://stanfy.com/blog/advanced-natural-language-processing-tools-for-bot-makers/
Artigo do Abraham Kang - Understanding the Differences Between Alexa, API.ai, WIT.ai,
and LUIS/Cortana
https://www.linkedin.com/pulse/understanding-differences-between-different-ai-platforms-
abraham-kang
Artigo do Stefan Kojouharov - A Review of Natural Language APIs For Bots
https://medium.com/@Conversate/natural-language-apis-for-bots-e791f090e32f
Referencias
Confusion matrix
https://en.wikipedia.org/wiki/Confusion_matrix
Hangout—Chatbot Pernambuco + BotCaverna—API.AI
https://medium.com/@jacksonfdam/hangout-chatbot-pernambuco-botcaverna-api-ai-
9e2971b03215
Obrigado
Perguntas?

Contenu connexe

Tendances

UX Design for Mobile Apps
UX Design for Mobile AppsUX Design for Mobile Apps
UX Design for Mobile AppsKamil Zieba
 
O365 Groups- Best Practices and Solutions
O365 Groups- Best Practices and SolutionsO365 Groups- Best Practices and Solutions
O365 Groups- Best Practices and SolutionsJohnConnected
 
RPA Architecture
RPA Architecture RPA Architecture
RPA Architecture Apsara G
 
Human computer interaction
Human  computer interactionHuman  computer interaction
Human computer interactionAyusha Patnaik
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 
Chatbots - The Business Opportunity
Chatbots - The Business OpportunityChatbots - The Business Opportunity
Chatbots - The Business OpportunityAlexandros Ivos
 
RPA (Robotic Process Automation)
RPA (Robotic Process Automation)RPA (Robotic Process Automation)
RPA (Robotic Process Automation)MERITAS-CORPORATION
 
Chat bots and AI
Chat bots and AIChat bots and AI
Chat bots and AIGeff Thomas
 
UI vs UX workshop
UI vs UX workshopUI vs UX workshop
UI vs UX workshopInova LLC
 
Familiarization with UiPath Studio.pptx
Familiarization with UiPath Studio.pptxFamiliarization with UiPath Studio.pptx
Familiarization with UiPath Studio.pptxApurbaSamanta9
 
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
HCI 3e - Ch 20:  Ubiquitous computing and augmented realitiesHCI 3e - Ch 20:  Ubiquitous computing and augmented realities
HCI 3e - Ch 20: Ubiquitous computing and augmented realitiesAlan Dix
 

Tendances (20)

Puertos y memorias (1)
Puertos y memorias (1)Puertos y memorias (1)
Puertos y memorias (1)
 
UX Design for Mobile Apps
UX Design for Mobile AppsUX Design for Mobile Apps
UX Design for Mobile Apps
 
O365 Groups- Best Practices and Solutions
O365 Groups- Best Practices and SolutionsO365 Groups- Best Practices and Solutions
O365 Groups- Best Practices and Solutions
 
RPA Architecture
RPA Architecture RPA Architecture
RPA Architecture
 
2022.06 Community Update.pdf
2022.06 Community Update.pdf2022.06 Community Update.pdf
2022.06 Community Update.pdf
 
Human computer interaction
Human  computer interactionHuman  computer interaction
Human computer interaction
 
What is Microsoft Teams
What is Microsoft TeamsWhat is Microsoft Teams
What is Microsoft Teams
 
Aula 01 - IPD
Aula 01 - IPDAula 01 - IPD
Aula 01 - IPD
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
Chatbots - The Business Opportunity
Chatbots - The Business OpportunityChatbots - The Business Opportunity
Chatbots - The Business Opportunity
 
ChatGPT, Generative AI and Microsoft Copilot: Step Into the Future - Geoff Ab...
ChatGPT, Generative AI and Microsoft Copilot: Step Into the Future - Geoff Ab...ChatGPT, Generative AI and Microsoft Copilot: Step Into the Future - Geoff Ab...
ChatGPT, Generative AI and Microsoft Copilot: Step Into the Future - Geoff Ab...
 
RPA (Robotic Process Automation)
RPA (Robotic Process Automation)RPA (Robotic Process Automation)
RPA (Robotic Process Automation)
 
Green computing
Green computingGreen computing
Green computing
 
Chat bots and AI
Chat bots and AIChat bots and AI
Chat bots and AI
 
UI vs UX workshop
UI vs UX workshopUI vs UX workshop
UI vs UX workshop
 
Familiarization with UiPath Studio.pptx
Familiarization with UiPath Studio.pptxFamiliarization with UiPath Studio.pptx
Familiarization with UiPath Studio.pptx
 
UX/UI Design 101
UX/UI Design 101UX/UI Design 101
UX/UI Design 101
 
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
HCI 3e - Ch 20:  Ubiquitous computing and augmented realitiesHCI 3e - Ch 20:  Ubiquitous computing and augmented realities
HCI 3e - Ch 20: Ubiquitous computing and augmented realities
 
Human Computer Interaction of an Information System
Human Computer Interaction of an Information SystemHuman Computer Interaction of an Information System
Human Computer Interaction of an Information System
 
HCI Basics
HCI BasicsHCI Basics
HCI Basics
 

Similaire à Desmistificando o DialogFlow

Microsoft Bot Framework + Cognitive Services
Microsoft Bot Framework + Cognitive ServicesMicrosoft Bot Framework + Cognitive Services
Microsoft Bot Framework + Cognitive ServicesDiego Castro
 
Introdução ao DialogFlow
Introdução ao DialogFlowIntrodução ao DialogFlow
Introdução ao DialogFlowGDGFoz
 
8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf
8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf
8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdfjoelmaster
 
GUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdf
GUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdfGUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdf
GUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdfWandersonkleitondoss
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaMario Guedes
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
Android About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreAndroid About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreVinícius Thiengo
 
Desenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisDesenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisJorge Moisés Assis
 
AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...
AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...
AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...Amazon Web Services LATAM
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheirasElton Minetto
 
1ª prova pós web 1ª chamada
1ª prova pós web 1ª chamada1ª prova pós web 1ª chamada
1ª prova pós web 1ª chamadaAlexandre Ernesto
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar pythonLourenço Junior
 
Prática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIPrática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIEverson Wolf
 
Memorias das trincheiras - 2015
Memorias das trincheiras - 2015Memorias das trincheiras - 2015
Memorias das trincheiras - 2015Elton Minetto
 

Similaire à Desmistificando o DialogFlow (20)

Microsoft Bot Framework + Cognitive Services
Microsoft Bot Framework + Cognitive ServicesMicrosoft Bot Framework + Cognitive Services
Microsoft Bot Framework + Cognitive Services
 
Apis Abertos
Apis AbertosApis Abertos
Apis Abertos
 
Introdução ao DialogFlow
Introdução ao DialogFlowIntrodução ao DialogFlow
Introdução ao DialogFlow
 
Chatbot apresentation v4
Chatbot apresentation v4Chatbot apresentation v4
Chatbot apresentation v4
 
8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf
8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf
8 Ferramentas de IA Que só Você e Poucos Estão Sabendo.pdf
 
GUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdf
GUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdfGUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdf
GUIA Como usar o ChatGPT para ganhar mais TEMPO. – Apresentação.pdf
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistema
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
Android About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela SobreAndroid About Page API Para Construir a Tela Sobre
Android About Page API Para Construir a Tela Sobre
 
Desenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisDesenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos Sociais
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...
AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...
AWS Innovate 2020 - Como construir aplicações inteligentes utilizando Intelig...
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheiras
 
1ª prova pós web 1ª chamada
1ª prova pós web 1ª chamada1ª prova pós web 1ª chamada
1ª prova pós web 1ª chamada
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Prática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação IIPrática de ensino de Linguagem de Programação II
Prática de ensino de Linguagem de Programação II
 
Memorias das trincheiras - 2015
Memorias das trincheiras - 2015Memorias das trincheiras - 2015
Memorias das trincheiras - 2015
 

Plus de Jackson F. de A. Mafra

PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...Jackson F. de A. Mafra
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
O que você precisa saber sobre chatbots
O que você precisa saber sobre chatbotsO que você precisa saber sobre chatbots
O que você precisa saber sobre chatbotsJackson F. de A. Mafra
 
WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressJackson F. de A. Mafra
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesJackson F. de A. Mafra
 
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...
Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...Jackson F. de A. Mafra
 
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Jackson F. de A. Mafra
 
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout  Tempo Real Eventos - Javascript - Os Primeiros PassosHangout  Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout Tempo Real Eventos - Javascript - Os Primeiros PassosJackson F. de A. Mafra
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
Conexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibotsConexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibotsJackson F. de A. Mafra
 
Phalcon 2 High Performance APIs - DevWeekPOA 2015
Phalcon 2 High Performance APIs - DevWeekPOA 2015Phalcon 2 High Performance APIs - DevWeekPOA 2015
Phalcon 2 High Performance APIs - DevWeekPOA 2015Jackson F. de A. Mafra
 
TDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit HappensTDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit HappensJackson F. de A. Mafra
 

Plus de Jackson F. de A. Mafra (20)

PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
 
PHP SSO no Zentyal
PHP SSO no ZentyalPHP SSO no Zentyal
PHP SSO no Zentyal
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
O que você precisa saber sobre chatbots
O que você precisa saber sobre chatbotsO que você precisa saber sobre chatbots
O que você precisa saber sobre chatbots
 
WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativos
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativos
 
The Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPressThe Ultimate Guide to Development in WordPress
The Ultimate Guide to Development in WordPress
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicações
 
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...
Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...Hangout  Tempo Real Eventos - ChatOps (ChatBots e DevOps)  - Como bots podem ...
Hangout Tempo Real Eventos - ChatOps (ChatBots e DevOps) - Como bots podem ...
 
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...Hangout  Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
Hangout Tempo Real Eventos - Android - Os primeiros passos do desenvolviment...
 
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout  Tempo Real Eventos - Javascript - Os Primeiros PassosHangout  Tempo Real Eventos - Javascript - Os Primeiros Passos
Hangout Tempo Real Eventos - Javascript - Os Primeiros Passos
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
ChatOps (ChatBots + DevOps)
ChatOps (ChatBots + DevOps) ChatOps (ChatBots + DevOps)
ChatOps (ChatBots + DevOps)
 
Conexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibotsConexao kinghost - Vendas inteligentes com intelibots
Conexao kinghost - Vendas inteligentes com intelibots
 
WoMakersCode 2016 - Shit Happens
WoMakersCode 2016 -  Shit HappensWoMakersCode 2016 -  Shit Happens
WoMakersCode 2016 - Shit Happens
 
Phalcon 2 High Performance APIs - DevWeekPOA 2015
Phalcon 2 High Performance APIs - DevWeekPOA 2015Phalcon 2 High Performance APIs - DevWeekPOA 2015
Phalcon 2 High Performance APIs - DevWeekPOA 2015
 
Dev Heroes
Dev HeroesDev Heroes
Dev Heroes
 
Trilha Android - Android Evolved
Trilha Android - Android EvolvedTrilha Android - Android Evolved
Trilha Android - Android Evolved
 
TDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit HappensTDC 2015 - POA - Trilha PHP - Shit Happens
TDC 2015 - POA - Trilha PHP - Shit Happens
 
Material design
Material designMaterial design
Material design
 

Desmistificando o DialogFlow

  • 1. Jackson Mafra - Tolv12 Desmistificando o API.AI Dialogflow
  • 2. API.AI agora é DialogFlow Introducing Dialogflow, the new name for API.AI October 10, 2017
  • 3. JACKSON FERREIRA DE ANDRADE MAFRA Desenvolvedor há mais de 20 anos com background em projetos de e-commerce e real estate, desde 2009 com interesses focados para o desenvolvimento de interfaces móveis e aplicações MEAP. Me chama lá... http://about.me/jacksonfdam http://linkedin.com/in/jacksonfdam @jacksonfdam
  • 4. Construa experiências de conversação naturais e ricas Dê aos usuários novas formas de interagir com o seu produto através da construção de interfaces de conversação com voz e texto baseadas em texto, alimentadas por AI. Conecte-se com usuários no Assistente do Google, Amazon Alexa, Facebook Messenger e outras plataformas e dispositivos populares.
  • 5. Use a aprendizagem de máquina para entender o que os usuários estão dizendo Forneça exemplos de o que um usuário pode dizer ao interagir com seu produto. Usando anos de conhecimento de domínio e compreensão de linguagem natural, para analisar e entender a intenção do usuário para ajudá-lo a responder da maneira mais útil.
  • 6. Em qualquer plataforma Traga seu aplicativo conversacional para qualquer plataforma em que seus usuários estejam, como o Google Assistant, Slack, Cortana, Alexa e Facebook Messenger.
  • 7. Agora estamos testemunhando uma nova mudança na computação do movimento de mobile–first para um mundo AI- first Sundar Pichai, CEO de Google
  • 8. São softwares que funcionam dentro de aplicações de mensagens. Caio Calado, ChatBots Brasil
  • 9. Chatbots são bons martelos, mas nem tudo é prego. Amir Shevat, Slack
  • 10. Não deixe o frenesi da mídia e o barulho em torno da AI te enganar. As máquinas têm suas limitações - pelo menos no cenário de hoje
  • 11. Então, antes de ir todo entusiasmado em AI-fying todo o seu negócio, comece a entender o que esses diferentes processos de negócios são e se é ou não uma boa idéia para substituir seus processos atuais por uma máquina / algoritmo / peça de código.
  • 12.
  • 13. E o bot perfeito?
  • 14. Diálogo natural O Bot deve entender linguagem natural, múltiplas formas de fazer perguntas, jargões, gírias, regionalismos, erros de digitação, erros gramaticais e outras deformações linguísticas.
  • 15.
  • 16. CaveRat Achar que a Inteligência Artificial vai ser capaz de conversar de primeira sem treinamento e criação de uma base de conhecimento.
  • 17. Contexto e Coerência Manter o estado da memória para a coerência em longas conversas. O bot deve reconhecer o canal e obtém dados do usuário para fornecer uma solução personalizada.
  • 18.
  • 19. Evoluir continuamente Algoritmos, dicionário e banco de dados de significados proprietários que evoluem em tempo real usando a Aprendizagem de Máquinas.
  • 20.
  • 21. Prever Quando não possui as informações solicitadas, o Bot deve sugerir conteúdo relacionado com base em interações similares com outros clientes.
  • 22.
  • 23. Conceitos Falo de plataformas como o api.ai (recentemente adquirido pela Google), wit.ai (adquirido pelo Facebook) e o luis.ai (da Microsoft Cognitive Systems).
  • 24. Conceitos As APIs de linguagem natural fornecem uma boa maneira de começar com interações únicas (ex. Pergunta-resposta, ação de comando) Quando você se move para conversas, a maior parte da lógica, inclusive gerenciando o estado e alterando as ações com base nela, precisa ser implementada pelo desenvolvedor, muitas vezes de forma rígida As APIs disponíveis são boas para a construção de MVPs, mas têm várias desvantagens (Contexto e histórico não utilizados pelos algoritmos, gerenciamento de falhas deficiente, sem otimização de diálogo, nenhuma maneira de influenciar o conhecimento especializado, menor precisão) que podem dificultar a experiência do usuário
  • 25.
  • 26. Compreender a terminologia de Chatbots ● Agents(Agentes) ● Intents(Intenções) ● Entities(Entidades) ● Training(Treinamento) ● Integrations(Integrações) ● Fulfillment (Realização)
  • 27. Agente O agente é o seu assistente virtual. O api.ai permite que você tenha mais de um assistente virtual. O api.ai suporta tanto o português brasileiro como o europeu. Em PT_BR temos algumas limitações, sendo as mais importantes: - Não podemos ativar manualmente e nem controlar as configurações do ML/THRESHOLD da plataforma (https://api.ai/docs/machine-learning) - Não temos a opção de Training (https://api.ai/docs/training) - Entidades definidas pelo sistema são limitada (https://api.ai/docs/reference/system- entities) - Poucos exemplos de Prebuilt Agents (https://api.ai/docs/agents)
  • 28.
  • 29. Agente O idioma escolhido não poderá ser alterado depois de salvo. Mas você pode sempre criar mais um agente se quiser que o assistente virtual se comunique em outro idioma.
  • 30. Entities Entities são objetos que ajudam o agente a interpretar linguagem natural e não apenas frases pré-programadas. Se você criar uma entity denominada “doce”, onde vai especificar os doces que sua loja vende e alguns sinónimos.
  • 31.
  • 32.
  • 33. Intents Os Intents mapeam todas as requisições do usuário à uma ação. ● O Default Fallback Intent possui algumas frases pré-definidas que serão enviadas ao usuário caso o assistente virtual “não entenda” a requisição feita. Ele provavelmente dirá coisas como “Não entendi”, “Ainda não fui programado para responder isso”, etc. ● O Default Welcome Intent possui frases de boas vindas que são mostradas ao usuário quando ele ativa o Assistente Virtual em algumas plataformas.
  • 34. Intents Quando criamos o nosso primeiro Intent, preenchemos 3 campos: nome do Intent, User says e Response.
  • 35.
  • 36.
  • 37. Intents A tecnologia Machine Learning é utilizada em todos os Intents. Isso significa que o seu agente irá se basear em todas as frases adicionadas no “User says” para treinar e começar a entender variações ou frases semelhantes. É possível desativar o ML em uma determinada intent, porém o agente só irá dar match com os exemplos citados no "User Says"
  • 38. Intents Repare que os doces serão automaticamente destacados. E além disso, veja que a unidade de peso “Kg” também foi destacada e identificada como “sys.unit-weight”. Isso porque o api.ai tem algumas entities já pré-criadas para facilitar a nossa vida. Estas entities são fáceis de distinguir, pois usam o pré-fixo sys
  • 39.
  • 40.
  • 41. Intents Response Como você provavelmente já sabe, o campo response permite definirmos a resposta que o nosso agente dará quando o Intent for chamado. Esta resposta não precisa de ser apenas uma; o api.ai permite definir até 10 respostas sequenciais.
  • 42. Intents Imagem Se você estiver a desenvolver um bot capaz de funcionar em redes sociais (Facebook Messenger, Kik, Slack ou Telegram), é provável que você queira que o seu bot seja capaz de enviar imagens aos utilizadores. E é exatamente para isso que existe a Image Response. Note que as redes sociais têm certas limitações para imagens: - Facebook Messenger: só suporta jpg, png e gif (incluindo os animados); - Kik: só jpg e a imagem não deve exceder 1Mb; - Slack: só suporta jpg, png, bmp e gif; - Telegram: basta não exceder 5Mb.
  • 43. Intents Resposta rápida As respostas rápidas (quick replies) oferecem-nos a possibilidade de “prevermos” a resposta do utilizador. Damos algumas opções/sugestões (no máximo 10) ao utilizador de como responder. Quando ele clica numa dessas opções, o texto dessa opção é enviado ao agente como se fosse uma requisição do utilizador. Nas redes sociais, estas opções são mostradas como botões para facilitar a interação entre o utilizador e o agente. Note que pelo fato de serem apresentados em botões, cada opção da resposta rápida não pode ter mais de 20 caracteres.
  • 44.
  • 45. Intents Card Com as cartas (cards), podemos permitir que o bot dê uma resposta mais completa em relação às responses anteriores. As cartas possuem 4 elementos: Imagem; Título; Subtítulo; Botões interactivos.
  • 46.
  • 47. Actions Uma ação corresponde ao passo que a nossa aplicação dará quando um Intent for chamado. Ações podem conter parâmetros para passar alguns detalhes extras à nossa aplicação, quando necessário. Estes parâmetros podem ser definidos no campo Action, quando estamos a criar um Intent na consola do api.ai
  • 48. Actions Parameters Como já foi dito, parâmetros são argumentos que podem, opcionalmente, ser adicionados ao nosso Intent para que a nossa aplicação tenha mais detalhes sobre a acção que deve tomar. Estes parâmetros podem ser definidos automaticamente de acordo com os exemplos que você coloca automaticamente no campo “User says” ou você pode colocá-los na tabela de forma manual. Definição automática Quando você introduz um exemplo no campo User says que contém uma entity (tanto system como developer entity), ele automaticamente irá destacar essa entity e adicionar à tabela de parâmetros: Definição de constantes Dependendo da aplicação que estamos a desenvolver, por vezes podemos querer que a nossa acção tenha parâmetros constantes.
  • 49. Amazon’s Alexa https://developer.amazon.com/alexa Google’s Dialogflow https://dialogflow.ai/ Microsoft’s Luis https://www.luis.ai/ Apple’s SiriKit https://developer.apple.com/sirikit/ IBM’s Watson https://www.ibm.com/watson/developercl oud/nl-classifier.html Referencias Facebook’s Wit https://wit.ai/ Snips https://snips.ai/ Converse AI http://www.converse.ai/
  • 50. Referencias Artigo do Rosário Pereira Fernandes - Machine Learning—Entrando no mundo dos assistentes virtuais https://medium.com/@rosariopfernandes/ml-b7eba66e0e03 Artigo da Caroline Wisniewski - Benchmarking Natural Language Understanding Systems https://snips.ai/content/sdk-benchmark-visualisation/ Artigo do Jess Holbrook - Human-Centered Machine Learning https://medium.com/google-design/human-centered-machine-learning-a770d10562cd Artigo do Neil Balthaser - Fight! Api.ai vs. Converse.ai https://chatbotsmagazine.com/fight-api-ai-vs-converse-ai-8e44e29b5fb
  • 51. Referencias Artigo da Jéssica Rodrigues - O que é o Processamento de Linguagem Natural? https://medium.com/botsbrasil/o-que-%C3%A9-o-processamento-de-linguagem-natural- 49ece9371cff Artigo do Pavlo Bashmakov - Advanced Natural Language Processing Tools for Bot Makers – LUIS, Wit.ai, Api.ai and others https://stanfy.com/blog/advanced-natural-language-processing-tools-for-bot-makers/ Artigo do Abraham Kang - Understanding the Differences Between Alexa, API.ai, WIT.ai, and LUIS/Cortana https://www.linkedin.com/pulse/understanding-differences-between-different-ai-platforms- abraham-kang Artigo do Stefan Kojouharov - A Review of Natural Language APIs For Bots https://medium.com/@Conversate/natural-language-apis-for-bots-e791f090e32f
  • 52. Referencias Confusion matrix https://en.wikipedia.org/wiki/Confusion_matrix Hangout—Chatbot Pernambuco + BotCaverna—API.AI https://medium.com/@jacksonfdam/hangout-chatbot-pernambuco-botcaverna-api-ai- 9e2971b03215
  • 53.