https://a.storyblok.com/f/270183/97787/4461bc11be/vonageaistuido.png

Escolha sua própria aventura com o Vonage AI Studio

Publicado em August 2, 2022

Tempo de leitura: 11 minutos

Vonage AI Studio é uma plataforma sem código/com pouco código para a criação de fluxos conversacionais em diversos canais de comunicação. Ela utiliza uma interface do tipo arrastar e soltar para conectar módulos e ações em fluxos complexos, capazes de automatizar processos e se conectar a diversos serviços. Os fluxos conversacionais do AI Studio são construídos com base nos algoritmos proprietários de compreensão de linguagem natural (NLU) da Vonage AI, permitindo interações conversacionais nas quais os usuários podem se comunicar em “linguagem natural”, sem a necessidade de usar palavras-chave específicas, escolher entre uma lista de opções ou formular suas perguntas de maneira específica.

O AI Studio já está disponível há algum tempo na versão Developer Preview. Recentemente, ele passou a estar disponível para uso geral, o que é super empolgante; por isso, gostaria de destacar esse fato escrevendo sobre alguns de seus recursos. Havia várias abordagens que eu poderia ter adotado para fazer isso, como criar um fluxo de atendimento ao cliente do “mundo real”. Para este artigo, porém, quis tentar algo um pouco diferente e explorar alguns dos recursos do AI Studio de uma maneira divertida e interessante.

Quando eu era mais jovem, adorava ler livros do tipo “escolha sua própria aventura”. Esses livros, em vez de seguirem uma estrutura narrativa linear, permitiam que você tomasse decisões em determinados momentos da história e, em seguida, fosse para a página correspondente, de acordo com sua escolha. Achei que seria legal criar minha própria história do tipo “escolha sua própria aventura” com o AI Studio.

Book cover from 'The Warlock of Firetop Mountain' depicting a dragon and a wizard'The Warlock of Firetop Mountain' book cover

Agentes

Na interface do AI Studio, cada fluxo de conversa é criado como um “agente”. Existem diferentes tipos de agentes disponíveis, dependendo dos seus casos de uso, como Voice, SMS, WhatsApp e HTTP.

A screenshot of the Agent Creation step in Vonage AI Studio showing the channel selection options: Telephony, WhatsApp, SMS, HTTP AI Studio screenshot: Agent Creation

Para minha história do tipo “escolha sua própria aventura”, decidi criar um agente de voz. Os agentes de voz do AI Studio combinam o reconhecimento automático de fala (ASR) exclusivo da Vonage com seus recursos de compreensão natural da linguagem (NLU) para proporcionar interações de voz naturalistas.

Ao criar um agente pela primeira vez, há várias configurações a serem definidas, como o nome do agente, o país, o idioma e o fuso horário.

Para os agentes de voz, você também precisa escolher a voz que seu agente usará para “falar”, utilizando os recursos de conversão de texto em fala do AI Studio. No entanto, ao criar os diversos elementos do seu fluxo de conversação, também existe a opção de usar gravações de áudio.

A screenshot of the Agent setup step in Vonage AI Studio showing the selection options: Region, Agent Name, Language, Voices, Time ZoneAI Studio screenshot: Agent Set up

Saiba mais sobre Agentes.

Fluxos

Os fluxos são combinações de diferentes nós de conversa conectados entre si na tela de arrastar e soltar do AI Studio.

A screenshot of one of the flows (the intro flow) for my AI Studio agent. Shows various conversation nodes connected together on the AI Studio canvas to form a conversational flowAI Studio screenshot: Intro flow

Você pode colocar todos os nós de todo o seu fluxo na mesma tela. No entanto, para fluxos grandes e complexos, pode ser mais prático dividi-los em subfluxos. Essa foi a abordagem que adotei para a minha história, que conta com quatro partes principais. Há um Fluxo Principal que define o cenário da aventura. No final desse fluxo, a história chega a uma “bifurcação na estrada” e o aventureiro precisa escolher qual caminho seguir. Foi aí que criei alguns subfluxos, com a bifurcação levando tanto a um Fluxo do Rio quanto a um Fluxo da Floresta. Esses dois subfluxos, então, convergem novamente para a parte final da aventura no Fluxo do Castelo.

A screenshot of part of an AI Studio conversational flow, showing a conversation node linked to two sub-flow nodesAI Studio screenshot: sub-flows

Você cria e gerencia subfluxos na guia “Fluxos” do menu do AI Studio.

A screenshot of the Flows tab of the AI Studio menu showing the already created sub-flows (Forest Path, Castle, and River Road) as well as an 'Add flow' buttonAI Studio screenshot: Flows tab of the menu

Em um cenário real, você pode criar subfluxos para diferentes funções de negócios às quais um cliente possa querer acessar, como vendas, suporte, faturamento e assim por diante.

Saiba mais sobre Fluxos.

Nós de conversação

Como mencionado anteriormente, os Flows são combinações de diferentes nós de conversa interligados. Existem diferentes tipos de nós de conversa, cada um dos quais cumpre uma finalidade específica dentro do fluxo geral da conversa. Vamos dar uma olhada em alguns deles.

A screenshot of the Conversation Nodes tab of the AI Studio menu with buttons for the different types of Conversation nodes (Classification, Collect Input, Speak, Conditions, Listen)AI Studio screenshot: Conversation Nodes tab

O Nó Inicial

Todas as histórias têm um começo, e todos os fluxos de conversação no AI Studio precisam de um Nó Inicial. Além de servirem como ponto de partida para o seu fluxo, os Nós Iniciais permitem que você defina certas opções para o fluxo como um todo. As opções exatas que você pode escolher aqui dependerão do tipo de fluxo que você estiver criando. Para um fluxo de Chamada Voice, você pode optar por gravar a chamada e também configurar um webhook que responda a um evento de desconexão da chamada. Nenhuma dessas opções é necessária para a minha história de aventura, então usei o nó apenas como ponto de partida.

A screenshot of the setup options for the AI Studio Start node (Record Call, Call Disconnected Webhook)AI Studio screenshot: Start Node setup

Speak Node

O objetivo do Nodo Speak é fornecer informações ao chamador. Ao configurar o Nodo, você tem a opção de inserir um texto, que será lido na voz que você definiu usando os recursos de conversão de texto em fala do AI Studio, ou gravar uma fala real.

Como meu “fluxo de aventura” tem como objetivo principal contar uma história emocionante, recorri bastante a esse nó em vários momentos do fluxo para definir o cenário e descrever várias partes da narrativa.

A screenshot showing an example of the AI Studio Speak node, showing the 'Text to Speech' tab with some text from the conversational flow.AI Studio screenshot: Speak Node

Saiba mais sobre o nó Speak.

Nó de coleta de entrada

Esse é um dos tipos mais importantes de nós disponíveis para a criação de um fluxo de conversação. Os fluxos de conversação do AI Studio são, essencialmente, interações entre duas partes — o usuário e o agente de IA. Em qualquer interação, ambas as partes precisam poder contribuir, e é aí que entra o nó “Coletar Entrada”.

Esse nó permite, basicamente, criar um parâmetro e coletar alguma informação do usuário para definir como valor desse parâmetro. Você define um nome para o parâmetro e um prompt, que é, essencialmente, uma pergunta ou afirmação para obter uma resposta do usuário. Você também pode permitir um número definido de tentativas para responder à pergunta e tem a opção de usar uma mensagem específica para as tentativas.

Na minha história, utilizei esse conceito em vários momentos em que o protagonista precisa tomar certas decisões, como aceitar ou não a missão, qual bifurcação na estrada seguir, explorar ou não um prédio abandonado e assim por diante. Existem muitos cenários do mundo real em que você pode querer ou precisar coletar informações de um usuário, desde perguntar por que ele está entrando em contato com sua empresa até obter informações específicas, como um pedido, número de Account ou alguns dados de contato.

A screenshot showing an example of the AI Studio Collect Input node, showing Parameter field with 'QUEST_ACCEPTANCE' set as the parameter name, and the Prompts field with 'Are you ready to go on a quest?' set as the prompt text.AI Studio screenshot: Collect Input Node

Saiba mais sobre o nó Collect Input.

Quando você coleta uma entrada como parte de um fluxo de conversa que representa algum tipo de escolha do usuário, geralmente é porque deseja direcionar o fluxo de uma determinada maneira em resposta a essa escolha. A maneira como um agente do AI Studio avalia e responde às entradas do usuário é determinada por meio dos nós “Condições” ou “Classificação”, e é aí que grande parte da “mágica” do AI Studio acontece. A entrada do usuário é definida como um parâmetro, que é então utilizado no contexto dos nós “Condições” e “Classificação”.

Nó de classificação

O nó “Classificação” é uma maneira de determinar o que fazer em resposta a alguma entrada do usuário. No seu fluxo, ele geralmente vem logo após um nó “Coletar Entrada”. Os nós de Classificação são ótimos para um fluxo natural de conversa, pois, em vez de restringir as escolhas do usuário a um conjunto muito específico de valores (pense em sistemas de atendimento automatizado com opções como “Diga ‘1’ para Vendas, ‘2’ para Suporte...”, etc.), eles permitem que o usuário fale de maneira natural, como dizer “suporte”, “atendimento ao cliente”, “o departamento de atendimento ao cliente” ou até mesmo “preciso de ajuda”. Cabe ao nó de Classificação determinar o que fazer com base nessa entrada do usuário. Ele faz isso por meio de intenções.

Intenções

Uma maneira de entender as intenções é considerá-las como uma expectativa geral do que um usuário poderia dizer em resposta a uma determinada pergunta ou situação. Cada intenção abrange um caso de uso ou ação específica e é composta por várias expressões do usuário — ou coisas que ele poderia dizer — para sugerir essa ação ou caso de uso.

Na minha história de aventura, utilizei bastante os nós de Classificação e as Intenções nos diversos pontos de decisão que ocorrem durante a narrativa. Por exemplo, o aventureiro precisa decidir se vai explorar um prédio abandonado. Dentro do nó de Classificação para essa decisão, utilizo duas intenções: uma para investigar o prédio e outra para continuar na estrada.

A screenshot showing an example of the AI Studio Classification Node, showing a Classification Parameter field with 'INVESTIGATE_DWELLING' set as the parameter name, and the Intents field with 'Investigate Dwelling' and 'Stay on Road' set as the intents..AI Studio screenshot: Classification Node

Este nó contém as diferentes intenções que abrangem as possíveis respostas do usuário à situação, e cada intenção contém várias expressões que podem indicar essa intenção.

A screenshot showing an example of an AI Studio Intent, showing the name of the Intent 'Investigate Dwelling' and various User Expressions that make up the intent such as 'Investigate building', 'Investigate house', 'Explore dwelling', etc.AI Studio screenshot: Intent setup

Saiba mais sobre Nós de classificação e Intenções.

Nó de condições

Os nós de condições são semelhantes aos nós de classificação em termos de finalidade — eles determinam um curso de ação com base nas entradas do usuário —, mas utilizam um mecanismo subjacente diferente para isso: as entidades.

Entidades

Uma entidade é, essencialmente, uma lista de valores e seus sinônimos. Elas são úteis em situações em que um usuário precisa escolher algo entre um grupo de itens específicos, mas pode haver palavras diferentes para cada um desses itens. Por exemplo, se alguém estivesse informando o tamanho de sua camiseta, poderia dizer tanto “grande” quanto “largo” para se referir à mesma coisa; da mesma forma, “extragrande” e “XL” são sinônimos.

Para o fluxo da minha aventura, usei principalmente nós de Classificação e Intenções, em vez de nós de Condições e Entidades, já que as situações em que meu aventureiro se encontra são mais abertas e se adaptam melhor às Intenções. No entanto, usei nós de Condições em alguns pontos em que fazia sentido utilizá-los. Um desses momentos foi ao determinar quais opções estavam disponíveis para atacar o dragão.

A screenshot showing an example of an AI Studio Conditions node, called 'Attack Option', with conditions such as 'User has bow' and 'User has Potion' branching off to different paths in the conversation flowAI Studio screenshot: Conditions Node

A lógica deste nó se baseia em condições determinadas pelo valor de certos parâmetros relativos aos itens que o usuário coletou durante a aventura.

A screenshot showing an the setup step for the  'Attack Option' Conditions node, listing the 'User has bow' and 'User has Potion' Entities that make up this condition AI Studio screenshot: Conditions Node setup

A screenshot showing an the setup for the 'User has bow' Entity with a Parameter of 'QUEST_BOW' an Operation of 'is equal to' and a Value of 'True'AI Studio screenshot: Entity

Saiba mais sobre Nós de condições e Entidades.

Outros tipos de nós

Os nós “Speak”, “Collect Input”, “Conditions” e “Classification” são os “protagonistas” dos fluxos conversacionais do AI Studio, e a maioria dos fluxos será construída principalmente com esses quatro tipos de nós. No entanto, há situações em que você pode precisar de alguma funcionalidade adicional que não pode ser fornecida por esses nós. Felizmente, o AI Studio oferece um forte elenco coadjuvante de nós mais especializados. Usei vários deles no meu fluxo, então vamos dar uma olhada neles!

Definir nó de parâmetro

Já abordamos brevemente os parâmetros no contexto dos nós “Collect Input”. Nesses nós, o valor do parâmetro era definido de acordo com alguma entrada do usuário. No entanto, há situações em que você pode querer definir um valor específico para um parâmetro.

No meu fluxo de aventura, há situações em que o protagonista pode pegar itens para ajudá-lo em sua missão. Nessas situações, usei o nó “Set Parameter” para registrar que o item havia sido pegado.

A screenshot showing an the setup for a Set Parameter node, in this case the 'Pick Up Bow' parameter with a Parameter name of 'QUEST_BOW' and a Value of 'True'AI Studio screenshot: Set Parameter Node

Saiba mais sobre Nós de parâmetros de configuração.

Nó de envio de SMS

O nó SMS é usado para enviar uma mensagem SMS a um usuário. É necessário fornecer a ele um número (incluindo o código do país) e a mensagem a ser enviada.

Na prática, isso pode ser útil para ações como enviar links para páginas de ajuda ou documentação em resposta a determinadas consultas.

Na minha história, usei esse nó em um momento em que o aventureiro precisa de uma senha secreta para entrar no castelo. Ele recebe a senha por SMS e precisa digitá-la em resposta a uma solicitação de entrada para abrir as portas do castelo.

A screenshot showing an the setup for a Send SMS node, in this case the Send Secret Password part of the flow, showing the From, To, and Body fieldsAI Studio screenshot: Send SMS Node

Há também um nó “Enviar e-mail”, que tem uma finalidade semelhante.

Saiba mais sobre o nó “Enviar SMS” e nó “Enviar e-mail”.

Nó de código personalizado

O AI Studio é, em grande parte, uma solução sem código, permitindo que qualquer pessoa configure fluxos de conversação poderosos e completos, sem nenhum conhecimento de programação, por meio de uma interface intuitiva do tipo arrastar e soltar. No entanto, há certas situações em que você pode querer definir ou manipular o valor de um parâmetro com base em alguma lógica específica e personalizada. É aí que entra o nó “Código Personalizado”!

O nó “Código personalizado” permite que você use código JavaScript para gerar um valor específico, que é então definido como o valor de um parâmetro de saída, o qual pode ser utilizado em outras partes do seu fluxo.

Utilizei o nó “Código Personalizado” em alguns pontos da minha história de aventura. Um deles foi quando eu quis remover quaisquer zeros à esquerda (se houvesse) do número de celular e do código do país fornecidos pelo usuário, para depois combiná-los em um único valor e atribuí-lo a um parâmetro de saída, que eu poderia então usar no nó “Enviar SMS” para enviar a senha secreta.

A screenshot showing an the setup for a Custom Code Node, in this case the Set SMS Number part of the flow, which uses Javascript type conversion to removing leading zeroes from the values of the $MOBILE_NUMBER and $COUNTRY_CODE paramters, and then combines them into a single ouput parameter SMS_TO_NUMBERAI Studio screenshot: Custom Code Node

Outra utilidade do nó “Código Personalizado” no meu fluxo foi simular um lançamento de dado durante uma batalha contra o dragão.

A screenshot showing an the setup for a Custom Code Node, in this case the Roll Dice part of the flow, which uses Math.random to determine the outcome of a battle with the dragon, and then sets the result as the value of the output parameter DRAGON_DEFEATEDAI Studio screenshot: Custom Code Node

Existem muitos outros casos de uso possíveis para o nó “Código Personalizado”.

Saiba mais sobre o nó Código Personalizado.

Nó de troca de contexto

O nó “Context Switch” faz exatamente o que o próprio nome sugere — ele muda o contexto do atual para um completamente diferente. Um caso de uso na prática poderia ser quando um cliente está passando por um fluxo automatizado para rastrear um pedido ou talvez atualizar alguns detalhes em sua Account, mas, a qualquer momento desses fluxos estruturados, ele pode dizer “Quero falar com alguém”, e o fluxo pode ser interrompido, com a chamada do cliente sendo encaminhada para um agente.

Assim como o nó “Classificação”, o nó “Troca de Contexto” funciona com base em intenções.

No meu enredo, imaginei uma situação em que viajar por florestas assustadoras, explorar prédios abandonados ou lutar contra dragões pudesse se tornar um pouco opressivo; por isso, a qualquer momento, o aventureiro pode optar por fugir de volta para a segurança da vila!

A screenshot showing an example of a flow starting with a context switch node. In this case the flow begins with the 'Run away!' context switch node, followed by a Speak node and then an End Call node AI Studio screenshot: Context Switch Node

Saiba mais sobre o nó Context Switch.

Nó de encerramento da chamada

Todas as histórias e chamadas precisam chegar ao fim em algum momento. O objetivo do nó “Encerrar Chamada” é encerrar a chamada. Para um fluxo de chamada Voice, você precisará inserir um nó “Encerrar Chamada” no final de cada “ramificação” do seu fluxo.

Saiba mais sobre o nó “Encerrar Chamada”.


Quer embarcar em uma aventura onde você poderá passear por florestas encantadas, encontrar fadas e lutar contra dragões? Então experimente meu fluxo de voz do AI Studio ligando para um dos seguintes números:

  • Reino Unido: +44 (0)7418 371898

  • EUA: +1 (0)201 464 3585

  • AUS: +61 (0)485828854

Divirta-se e boa sorte na sua aventura!

Talvez você queira criar seu próprio fluxo de conversação com o Vonage AI Studio. É super fácil começar! Faça login no Painel do Vonage e acesse o AI Studio.

Existem também vários nós e integrações que não utilizei no meu fluxo; por isso, não os abordei neste artigo. Para obter mais informações sobre eles e sobre o uso do AI Studio em geral, consulte a documentação do AI Studio.

Sempre incentivamos a participação da comunidade. Fique à vontade para se juntar a nós no Slack da Comunidade Vonage ou nos enviar uma mensagem no Twitter.

Compartilhar:

https://a.storyblok.com/f/270183/373x376/e8d3211236/karl-lingiah.png
Karl LingiahDefensor da Comunidade de Desenvolvedores Ruby

Karl é um Developer Advocate da Vonage, com foco na manutenção de nossos SDKs de servidor em Ruby e na melhoria da experiência dos desenvolvedores da nossa comunidade. Ele adora aprender, criar coisas, compartilhar conhecimento e tudo o que esteja relacionado à tecnologia da web em geral.