Primeiras aulas do curso Chatbot parte 2: Avançando e integrando o bot

Chatbot parte 2: Avançando e integrando o bot

Dummies, expression language e variáveis globais - Introdução

Sejam bem-vindos à segunda parte do curso de Watson Conversation!

Continuaremos com o projeto da primeira parte do curso. Caso não tenham feito "Chatbot parte 1: Começando com as conversas inteligentes usando o Watson", recomendamos que vocês façam antes de realizar a segunda parte.

Codificaremos um pouco, então se souberem programar, melhor! Se não, recomendamos o curso de "Lógica de programação I".

Neste curso, mostraremos:

Tornaremos acessível o link do projeto, que será hospedado no Blue Mix. Poderemos conversar com o Watson, enviar o link para outras pessoas e teremos uma interface de acesso a esse serviço.

Veremos o que é o quarto ícone do menu localizado à esquerda, representado por métricas, e como podemos aprimorar as conversas no Watson.

Localização métricas no Watson

Exploraremos "User conversations", edição das intenções e entidades utilizando um arquivo de compartilhamento, e a refatoração de algumas partes do projeto para que ele melhore cada vez mais.

Como sempre, o foco será no serviço de Conversation . Assim, se quiserem aprofundar seus conhecimentos, recomendamos que façam os seguintes cursos da Alura:

Além destes, temos curso em aplicativos de mensagens, entre outros.

Se fôssemos abordar, por exemplo, apenas a API da Conversation, teríamos que criar um curso específico sobre o assunto. Mas, temos outros cursos que ensinam esse conteúdo, então não focaremos na construção do Back-End e Front-End ou somente na comunicação do Watson.

Trabalharemos um pouquinho para ver como funciona e pegar um projeto — o link do Blue Mix — para ter uma interface de conversação com o Watson.

Espero que vocês aproveitem bastante o curso!

Dummies, expression language e variáveis globais - Incluindo Saudações

Continuaremos com o desenvolvimento do projeto iniciado na primeira parte do curso.

Nela, as pessoas que utilizaram o bot em testes internos, disseram que ele não respondia bem quando tentávamos conversar normalmente. Geralmente, quando conversamos com alguém, cumprimentamos com frases como "Oi!", "Oi, tudo bem?", "Bom dia", "Boa tarde!".

E foi reportado que ao tentar utilizar esse tipo de diálogo, o bot não funcionava. Sendo assim, faremos um teste para saber o que aconteceu.

Abriremos o Conversation e utilizaremos o mesmo espaço e projeto que trabalhamos na primeira parte do curso.

Clicaremos no balão de conversa com três pontinhos, localizado na parte superior direita da plataforma, para abrir o chat.

Localização ícone chat

Começaremos a conversar, obtendo o seguinte diálogo:

Olá. Como posso te ajudar?

oi

Eu não entendi. Você pode tentar reformular a frase.

Respondemos à pergunta do bot com um oi e ele não entendeu. Lembram por que ele não entende o oi?

Antes de explicar, tentaremos responder com "bom dia" para ver o que acontece:

Olá. Como posso te ajudar?

oi

Eu não entendi. Você pode tentar reformular a frase.

bom dia

Posso ajudar com mais alguma coisa?

Notem que o oi não foi compreendido e o bom dia foi identificado como intenção de agradecimento.

Sabemos que "bom dia" é uma saudação, não um agradecimento. Mas é interessante que ele tenha entendido dessa forma, porque o nó e a intenção de agradecimento é mais próximo do que tentamos fazer. Se clicarmos em "Intents" para ver as intenções, veremos #agradecimento, que criamos para tentar humanizar o bot.

O que precisamos fazer? A proposta para agradecimento será a mesma para entender — respondendo a questão anterior sobre o bot não entender o "oi" que digitamos — as intenções de "oi" e "bom dia".

Como sabemos, quando o bot não entende o que o usuário digitou, precisamos criar uma nova intenção, que ensine a ele o que significa.

Relembrado o porquê de o bot não entender a resposta, fecharemos o chat e clicaremos em "Create new" para criar uma nova intenção.

Localização do botão "Creat new"

Será aberta a seguinte janela:

Janela de criação de intenção

Criaremos uma com o nome #saudar. Na linha abaixo, adicionaremos os exemplos:

- oi
- oi,tudo bem
- bom dia
- boa tarde
- boa noite
- tudo bem
- olá
- e aí

Quanto mais exemplos criarmos, melhor. Assim, treinamos o Watson com respostas diferentes.

Em seguida, clicaremos em "Done", "Feito" em português.

Fechamos a intenção #saudar e, se olharmos a linha dela no Watson, à direita, encontraremos o número 8, indicando que há oito intenções diferentes nela.

Número de intenções

Agora, clicaremos em "Dialog", para configurar as respostas do Watson. Para isso, como vocês devem lembrar, clicaremos em "Add node" para adicionar um novo nó.

Nomearemos como Saudações. Em If bot recognizes ("Se o bot reconhecer", em português), basta selecionar a opção #saudar que aparece no menu de intenções abaixo.

No campo abaixo, há um espaço para adicionar uma resposta ("Add response condition"), no qual colocaremos oi. Assim, cada vez que digitarmos uma daquelas intenções ou algo similar, o Watson entenderá e responderá com oi.

Vamos testar para ver como funciona. Abriremos o chat novamente e limparemos o teste anterior, clicando em "Clear" localizado no topo. Desenvolveremos a seguinte conversa:

Olá. Como posso te ajudar?

oi

oi

Funcionou. A mensagem oi digitada foi respondida com oi, como programado.

Se digitarmos "bom dia", que pertence à mesma intenção, obteremos a mesma resposta:

Olá. Como posso te ajudar?

oi

oi

bom dia

oi

Mas, fica um pouco estranho responder "bom dia" com "oi".

Como poderíamos melhorar a comunicação, sendo que "oi" e "bom dia" fazem parte de uma mesma intenção e identificar a diferença entre cada um deles?

Dummies, expression language e variáveis globais - Acessando variáveis internas com input text igual boa tarde

Para criar uma entidade, vocês devem ter considerado a opção de clicar em "Entities > Create new".

Na sequência desse caminho, o Watson abre uma janela de "Update" ("Atualização"), mas não nos preocuparemos com isso agora. Para ocultar a mensagem, basta clicar no botão "Got it".

Aberta a janela de criação, podemos criar uma entidade chamada @saudacao e colocar em "Value", "Valor" em português, bom dia. Ao lado, no campo de sinônimos ("Synonyms"), adicionaremos dia — algumas pessoas falam somente "dia", no lugar de "bom dia".

Clicaremos no símbolo de soma à direita para acrescentar mais valores.

Botão adicionar valores

E adicionaremos os seguintes valores, com os respectivos sinônimos:

Para finalizar, clicaremos em "Done".

Sempre que criamos uma nova entidade, o Watson tem um tempo de treino, ao qual estamos acostumados e, portanto, aproveitaremos para limpar o chat, clicando em "Clear".

Em seguida, clicaremos em "Dialog", para ir ao diálogo e configurar a nova entidade.

Localizaremos e selecionaremos Saudações. Adicionaremos uma nova resposta ("Add response condition") e se o bot reconhecer a entidade @saudacao, no valor — no menu aparece a opção de dois pontos (:) que podemos utilizar — de (bom dia), responderá bom dia.

Aprendemos isso na primeira parte do curso. É um jeito de diferenciar as respostas do bot, mas há outras maneiras. Podemos criar um "nó filho" (a expressão em inglês é child node) para cada caso, e diferenciá-lo de acordo com a entidade ou adicionar Intents diferentes, com uma intenção para cada resposta.

Voltaremos ao chat e veremos que o Watson concluiu o treino. Podemos conferir se a alteração que aplicamos na entidade funciona.

Olá. Como posso te ajudar?

bom dia
#saudar
@saudacao:bom dia

bom dia

oi
#saudar
@saudacao:oi

No teste, o bot responde corretamente o bom dia, ao contrário de oi, pois não estabelecemos uma resposta padrão, nem identificamos a resposta oi.

Notem que criar a entidade foi um ato forçado. Nem nomeamos direito. Reaproveitamos o nome do nó (@saudacao).

Dentro de @saudacao, as informações continuam misturadas. Até podemos utilizar os valores, considerando o limite de entidades e intenções disponíveis quando o serviço é gratuito (free). Mas há outro jeito, que faz mais sentido do que adicionar uma nova entidade.

Podemos fazer a mesma coisa, sem criar uma nova entidade. Para isso, voltaremos ao diálogo (clicando em "Dialog"), limparemos e fecharemos o chat. Em seguida, abriremos o nó de Saudações.

Por enquanto, deixaremos a entidade @saudacao. Clicaremos em "Add response" no fim da página, e em seguida acrescentaremos uma condição de resposta ("Add response condition"), que orientará o bot a responder somente se for da forma que especificarmos nesse campo.

Em vez de usarmos as opções de "filtrar por" ("Filter by"), digitaremos algo diferente:

input.text == 'boa tarde'

Na linha abaixo, escreveremos boa tarde. Abriremos o chat, e veremos o que acontece após essa alteração.

Olá. Como posso te ajudar?

bom dia
#saudar
@saudacao:bom dia

bom dia

O Watson continua respondendo bom dia. Tudo certo. Digitaremos boa tarde para ver qual será a resposta:

Olá. Como posso te ajudar?

bom dia
#saudar
@saudacao:bom dia

bom dia

boa tarde
#saudar

boa tarde

O Watson respondeu boa tarde, de acordo com o que definimos no input, na aba "Dialog". Em qualquer tipo de sistema ou máquina há input e output — entrada e saída.

Em uma máquina de café, por exemplo, o pó de café seria o input — produto de entrada — para se transformar no output, o café pronto para beber — produto de saída.

Justificando o exemplo: programadores só pensam em café, como vocês devem saber.

Voltando ao que digitamos, nesse caso, input equivale ao que é digitado no chat. Tudo que for escrito para se comunicar com o Watson será entendido como input.

O ponto (.) indica acesso. O que queremos acessar dentro do input. No caso, estamos acessando o texto (text). Assim, por meio do input, orientamos o Watson a analisar somente o texto.

Em seguida, igualamos (==) ao 'boa tarde', um tipo de expressão que podemos colocar dentro do Watson, entre apóstrofos — sem eles a expressão não funciona. A abreviação dela é "SPEL", de "Spring Expression Language.

São as expressões, que podemos utilizar para acessar algo que não esteja visível, sem construir uma entidade que talvez não seja necessária.

É o que fizemos por meio de input. Orientamos o Watson a conferir se o texto digitado no chat é igual às palavras que estão entre apóstrofos. Se for igual a 'boa tarde', ele responderá com boa tarde.

Com a expressão input.text, o Watson é treinado a lidar com outras expressões que utilizaremos para desenvolver o diálogo.

Sobre o curso Chatbot parte 2: Avançando e integrando o bot

O curso Chatbot parte 2: Avançando e integrando o bot possui 289 minutos de vídeos, em um total de 70 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Machine Learning acessando integralmente esse e outros cursos, comece hoje!

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1184 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana