https://a.storyblok.com/f/270183/52841/048936fd71/bots-clip7_800x300.jpg

Bots e IA: O que é, exatamente, uma plataforma de bots?

Publicado em May 14, 2021

Tempo de leitura: 9 minutos

Os principais provedores no setor de bots de IA — IBM Watson, Microsoft Cognitive Services, Amazon Lex, APIs do Google — oferecem, em linhas gerais, os mesmos recursos, mas cada um possui sua própria terminologia. De plataforma de bots a canal de bots e estrutura de bots, pedi ao evangelista técnico da Microsoft, Martin Beeby, e ao CEO e cofundador da The Bot Platform, Syd Lawrence, que me ajudassem a entender o que esses termos significam na prática.

Assista ao Video da nossa conversa aqui ou role a página para baixo, logo abaixo do Video, para ler a transcrição completa.

Bots e IA: O que é, exatamente, uma plataforma de bots? (Transcrição completa)

Sam Machin (Defensor de Desenvolvedores da Nexmo e Campeão da Alexa): Então, vamos entrar um pouco mais nos detalhes técnicos desta vez. Uma das coisas que aprendi é que, ao analisar — especialmente quando estou comparando diferentes plataformas —, tenho trabalhado com o IBM Watson, com os Serviços Cognitivos da Microsoft, com a Alexa da Amazon e Lex, e a API do Google, o Google Assistente com IA. Todo mundo tem abordagens diferentes... mas, no geral, todos estão fazendo mais ou menos a mesma coisa por meio de um conjunto de APIs.

Todas elas têm um recurso, têm um recurso de conversão de voz em texto. Têm algum tipo de processamento de linguagem natural, têm algum tipo de mecanismo de execução. Mas estão chamando isso de nomes diferentes, usando terminologias diferentes. Alguém está percebendo alguma... Quero dizer, por exemplo, se voltarmos às nossas plataformas de bots, o que é uma plataforma de bots? Syd, é a sua empresa.

Syd Lawrence (CEO/cofundador da The Bot Platform): Antes de lançarmos a The Bot Platform, essas plataformas ainda não eram chamadas de plataformas de bots. Então, vínhamos desenvolvendo nossos sistemas desde abril do ano passado. E surgiram alguns, o que se chamava de “construtores de bots”. E nós... bem, acreditávamos que o que estávamos criando não era apenas um construtor de bots, mas uma plataforma completa, não só para bots, mas também para ampliar suas funcionalidades. E fazíamos várias coisas nos bastidores. Então, lançamos a The Bot Platform.

Então, nos últimos três meses, percebi que todo mundo começou a chamá-las de plataformas de bots. E agora isso dá a impressão de que nós... bem, não consigo decidir se isso é bom, porque fomos os primeiros a surgir, ou se é ruim, porque agora as pessoas acham que só nos chamamos “The Bot Platform” porque estão chamando essas plataformas de “plataformas de bots”.

Então, no fim das contas, eu... bem, nosso objetivo inicial era desenvolver um sistema que permitisse que outras pessoas criassem seus próprios bots de mensagens para aplicativos. E o que percebemos nos últimos seis meses é que as pessoas não têm a menor ideia do que fazer quando se deparam com uma solução técnica como essa. "people have got no idea what to do when they're presented with a technical solution like this." Quer dizer, não é nada técnico; é, de certa forma, algo que você poderia descrever como um CMS, até certo ponto. Então, o que estamos fazendo agora é oferecer uma solução de serviço em que ajudamos a desenvolver o bot para elas ou junto com elas, para começar, e depois passamos a solução técnica para elas.

Mas é isso mesmo, no fim das contas, elas só passaram a ser chamadas de “plataformas de bots” depois que lançamos a The Bot Platform. Então, essa é a minha resposta para essa pergunta.

Sam: Então me diga, quer dizer, um dos debates que eu queria ouvir é, para mim... tudo bem. Mas, quer dizer, a plataforma de bots precisa ter certas características. Tipo, o Facebook Messenger por si só não é uma plataforma de bots, não é mesmo?

Martin Beeby (Evangelista Técnico na Microsoft): Nós chamaríamos isso de... descreveríamos isso como um canal, na nossa terminologia. Então, seja o Skype, o Facebook, qualquer que seja a sua plataforma, o Kik ou qualquer outra — ou o Slack —, nós os chamamos de canais. E, então, temos uma estrutura, uma estrutura de bots, que abrange todas essas coisas. Assim, você pode desenvolver para todas essas plataformas com um único bot. Com uma única estrutura de bots, você pode desenvolver para todas essas plataformas.

Mas é, para todas essas plataformas, para todos esses canais. Vê só, já estamos ficando confusos com a terminologia. Estou tentando ajudar com a terminologia e acabando criando mais ambiguidade. Mas sim, chamamos esses canais assim e, além disso, temos uma estrutura de bots. Na verdade, não chamamos isso de plataforma de bots porque reconhecemos que a Syd chegou primeiro. Então, não queríamos causar transtornos nessa área.

Sam: Acho que isso é... sim, com certeza o termo “canal” é uma das coisas que vejo como uma terminologia emergente. O canal é a forma como o usuário acessa o bot, porque o bot em si é... e a maioria desses canais são, na verdade, canais de comunicação. Eles foram originalmente projetados principalmente para bate-papos entre pessoas. O Slack é uma forma de se comunicar com outras pessoas. A única diferença é que, em vez de se comunicar com uma pessoa, você está se comunicando com um bot. Portanto, para o próprio bot, ele não faz mais parte do canal do que eu, como usuário. O canal é o que conecta a mim e ao bot.

E imagino que, em alguns dos sistemas mais integrados, como talvez a Alexa, seja tudo em um só lugar. Mas, como ainda estamos desenvolvendo coisas com base em canais de comunicação já existentes, então sim. Nesse caso, definitivamente há uma separação entre o bot.

Então, Martin, qual é a sua estrutura? O que ela faz, em um nível mais geral? Quais são os recursos que a compõem?

Martin: Basicamente, é uma estrutura, um kit de desenvolvimento, um SDK que funciona tanto em Node quanto em C#. Você cria esse bot e... essas duas linguagens funcionam de maneiras ligeiramente diferentes. Mas, de modo geral, temos um padrão para receber uma mensagem e, em seguida, enviar respostas. Cobrimos todas as plataformas. Então, você criaria um bot usando tanto o Node quanto o C#...

Syd: Isso abrangeu todos os canais.

Martin: Eu falei em plataformas? Ótimo. Eu abranjo todos os canais. E a ideia é que você crie um desses bots e, então, a gente atua como um intermediário, garantindo que ele esteja disponível em todos os diferentes canais para você. Mas você cria apenas um bot.

Mais recentemente, também é possível dar respostas diferentes dependendo do canal em que você está se comunicando. Então, se eu estiver criando um bot para o Facebook Messenger, por exemplo, provavelmente vou querer dar mais ênfase à interface do usuário. Tipo, porque as diretrizes do Facebook Messenger falam sobre botões, carrosséis e coisas do tipo. Bem, em alguns canais, as restrições quanto à aparência da interface são muito maiores. E talvez, nesses casos, você esteja apenas exibindo texto, botões ou algo do tipo. Assim, criamos um único bot, mas você pode responder de maneiras diferentes dependendo do canal e da forma como a mensagem chega até você.

Mas o motivo, digamos... a proposta que a Microsoft está oferecendo é essa economia de dinheiro. Você cria um único bot e, em seguida, pode disponibilizá-lo no Skype, no Facebook Messenger e no Slack. "You build one single bot and then you can make it available on Skype, Facebook Messenger, and Slack." Sam: Qual era aquele velho ditado do Java? “Escreva uma vez, execute em qualquer lugar.”

Martin: Sim, estamos nessa... essa é a ideia: tentar tornar tudo cada vez mais simples. E a esperança é que, à medida que mais e mais canais forem surgindo, você possa aproveitar os benefícios deles sem precisar... ou precisando fazer muito pouco trabalho de desenvolvimento. E isso, quando pensamos em clientes internacionais, é realmente um aspecto importante, porque, dependendo da região em que você mora, diferentes plataformas de mensagens têm mais importância em diferentes regiões. Então, alguém que esteja desenvolvendo um bot, digamos, para um público chinês, estaria considerando um conjunto totalmente diferente de redes sociais do que alguém que queira criar um para a América do Norte.

Então, esse é o conceito que estamos tentando oferecer ou ajudar a implementar para tornar os desenvolvedores mais produtivos, porque, no fim das contas, é esse o nosso objetivo.

Sam: Então, sua estrutura... na verdade, dentro dela, para mim, provavelmente há algumas coisas que você está fazendo. Porque você tem algumas... você recebe as mensagens que chegam pelo canal, e esse é o ponto de entrada da sua estrutura. Mas então, presumivelmente, há algum tipo de linguagem natural... bem, seria “linguagem natural” o termo correto? Possivelmente, conversão de fala em texto e, em seguida, processamento de linguagem natural.

Martin: Você pode, com certeza, mas não precisa. Obviamente, se quiser, é muito, muito simples adicionar a compreensão de linguagem natural. Ou, como chamamos, LUIS, Serviço de Compreensão de Linguagem [Inteligente]. É um serviço do Azure em que você simplesmente adiciona a compreensão de linguagem e, então, pode vinculá-la a diferentes funções com base na intenção do usuário. É muito fácil de usar. Mas você não precisa usar nada disso. Quer dizer, a decisão é sua.

Sam: Então você pode simplesmente usar a entrada bruta do canal no seu código; tudo o que o usuário digitar no Messenger, ou qualquer outra pessoa, pode ser passado para o seu código, ou...

Martin: Com certeza. Com certeza. Você poderia programar, basicamente, toda a inteligência do seu bot com base em Regex, se realmente quisesse fazer isso. Mas, de modo geral, recomendamos — pelo menos na maioria dos casos — utilizar algum tipo de serviço de compreensão de linguagem, em vez de tentar adivinhar o que o usuário está tentando fazer no seu bot. E a maioria dos exemplos que geramos inclui isso.

Mas é isso mesmo, oferecemos diversos serviços diferentes. Oferecemos um serviço de perguntas e respostas, por exemplo. Então, você carrega todas as suas perguntas e respostas, e nós podemos disponibilizá-las como um bot para você de forma muito rápida e simples. Você pode fazer isso praticamente sem precisar programar, usando também as Funções do Azure. Se você conhece a AWS, eles têm uma plataforma chamada Lambda, que é como uma plataforma sem servidor. Nós também temos algo semelhante, chamado Funções do Azure. E você pode, com apenas alguns cliques, implantar um bot nela, enviar uma planilha do Excel com perguntas e respostas. E então, seu bot será capaz de responder a perguntas, como se fosse um bot de perguntas frequentes. E assim você está usando aprendizado de máquina para descobrir a resposta certa.

Sam: Na verdade, eu já brinquei um pouco com isso. Sim, é uma maneira bem legal de criar seu primeiro bot. Acho que foi preciso um documento do Word, mesmo para mim. Eu queria apenas uma pergunta-chave e uma resposta.

Martin: Ele pega uma página da web com uma seção de perguntas e respostas e a transforma em um bot de perguntas e respostas. E é surpreendentemente preciso. Não se trata apenas de comparar padrões, mas de compreender a linguagem natural e, a partir daí, fazer o mapeamento. Ele faz classificação de texto e todo esse tipo de processo inteligente de aprendizado de máquina nos bastidores. Mas você, como usuário, pode criar um bot de perguntas e respostas muito, muito rapidamente usando algo assim.

[Nota do editor: Assista à discussão completa de uma hora sobre o estado da tecnologia dos bots de IA.]

Compartilhar:

https://a.storyblok.com/f/270183/384x384/7fbbc7293b/sammachin.png
Sam MachinEx-funcionários da Vonage