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
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.
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.
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.
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