Machine Learning — Entrando no mundo dos assistentes virtuais

Rosário Pereira Fernandes
5 min readJan 20, 2017

Desde criança, sempre assisti filmes de ficção científica que falavam sobre Inteligência Artificial. Desenvolver uma dessas “máquinas falantes” sempre foi um sonho. Mas agora, com as novas plataformas de Machine Learning, este sonho está muito mais perto de tornar-se realidade.

Falo de plataformas como o api.ai (recentemente adquirido pela Google), wit.ai (adquirido pelo Facebook) e o luis.ai (da Microsoft Cognitive Systems). Não vou falar muito sobre a diferença entre eles, mas se você estiver curioso, leia este artigo em inglês.

Na hora de escolher uma das plataformas para experimentar, optei pelo api.ai porque tem fácil integração com outras plataformas como o Facebook Messenger, Actions on Google, Telegram, Cortana e Amazon Alexa.

Então, nesta série de posts com o tema Machine Learning, mostro como criar um Assistente Virtual no api.ai e algumas das várias formas de implementação dele em outras plataformas.

Primeiros passos

Vamos criar um bot capaz de responder à pedidos de uma loja de doces. Como em todas plataformas online, o primeiro passo é sempre o cadastro. Entre no site do api.ai e cadastre-se com a sua conta Google.

1. Criar um agente

Logo depois de se cadastrar, você tem de criar um agente.

O agente é o seu assistente virtual. O api.ai permite que você tenha mais de um assistente virtual.

Depois de introduzir o nome do Agente, escolha o idioma. O api.ai suporta tanto o português brasileiro como o europeu.

Novo Agent

Atenção: 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.

2. Criar Entities

Entities são objectos que ajudam o agente a interpretar linguagem natural e não apenas frases pré-programadas. Sei que pela definição é díficil de compreender como usá-los, por isso vamos ver um exemplo:

Vamos criar uma entity denominada “doce”, onde vamos especificar os doces que a loja vende e alguns sinónimos.

Entity Doce

3. Criar Intents

Depois de termos criado as entities, podemos criar Intents. Os Intents mapeam todas as requisições do usuário à uma acção.

Para criar o primeiro Intent, clique na Aba Intents. Ao abrir esta aba, você irá reparar que já existem 2 Intents pré-criados:

Aba Intents
  • 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 activa o Assistente Virtual em algumas plataformas (iremos ver isto com mais detalhes nos próximos artigos).

Vamos então criar o nosso primeiro Intent. Para isso, basta clicar no botão “Create Intent”.

No topo da página, temos um campo para colocar o nome do Intent. Vamos chamar este de encomendar.doces .

No campo “User says”, preenchemos com expressões que o usuário provavelmente utilizará para encomendar doces:

Intent encomendar.doces

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.

Depois, basta colocarmos as possíveis respostas no campo response:

Campo Response

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.

Por fim, não se esqueça de clicar em “Save” no topo da página e vamos ver o que acabamos de criar.

4. Testar e Treinar o nosso agente

Para testar o nosso agente, podemos utilizar a “Test Console” que se encontra à direita. Basta escrevermos (ou falarmos pelo microfone) uma das frases que criamos e ver o resultado:

Test Console

Repare que é possível ver também qual foi o Intent utilizado para reponder à esta requisição e mais alguns dados. Todos os dados da requisição são retornados e formato JSON. E é este JSON que irá no ajudar a implementar o nosso agente em outras plataformas, como o Android.

E pronto. Criar um pequeno assistente virtual resume-se nestes 4 passos. Você pode continuar a enviar requisições diferentes para o seu agente, para treinar ele.

No próximo artigo, vemos mais detalhes sobre as Entities:

Se você tem alguma dúvida ou sugestão, não hesite em me contactar pelo email rosariofernandes51@gmail.com ou pelo Telegram. Ficarei feliz por conversar com você. :)

--

--

Rosário Pereira Fernandes

Firebase DevRel Engineer at Google … Views and Opinions are my own.