O blog da AWS
Construindo um Chatbot Escalável
Por Rolando Natalizia, Diretor da Edge S.A.
Após a Conferência para Desenvolvedores do Facebook (F8), um cliente, líder no setor de telecomunicações na América Latina, nos pediu desenvolver um chatbot para responder em linguagem natural às consultas de seus usuários via Facebook Messenger. Como também fomos a empresa responsável por expor a maioria de seus serviços através de um gerenciador de API, conseguimos fazer a integração rapidamente graças ao número de serviços REST disponíveis e ao nosso conhecimento avançado sobre eles. Na época, decidimos usar a AWS para hospedar nosso chatbot porque pensamos que teríamos a oportunidade de dimensionar facilmente o serviço caso a demanda aumentasse.
A Edge S.A. começou em 2008, no Paraguai, e atualmente somos Parceiros APN da Tecnologia nível Select. Tendo experiência no setor de telecomunicações, começamos a fornecer serviços de mensagens para empresas locais, especialmente instituições financeiras. Nosso amplo conhecimento de serviços de mensagens de telecomunicações nos permitiu construir uma plataforma para controlar serviços de valor agregado em telefones celulares, uma solução implantada em diferentes operadoras de telecomunicações na América Latina e África. Esta experiência de sucesso nos permitiu estender nossos serviços para outras áreas, como transformação digital, marketing digital e chatbots, sempre a partir dos aspectos técnicos da solução, confiando na nuvem sempre que possível.
Em 2019, quando nosso cliente decidiu se envolver mais seriamente com a AWS, decidimos capitalizar nossos investimentos anteriores em know-how e nos dedicamos a obter o nível Select, sendo a primeira empresa no Paraguai a obtê-lo.
Sabíamos que o tráfego em nosso chatbot aumentaria este ano ao integrar o WhatsApp e o Zendesk chat web em nossos canais de comunicação e estávamos confiantes que as decisões de arquitetura que tínhamos tomado estavam corretas. Então COVID-19 apareceu. Distanciamento social e quarentenas foram implementados nos mercados que atendemos. Nosso cliente teve que confiar fortemente em canais digitais para atender a demanda por atendimento ao cliente e nosso chatbot estava no centro dessa infraestrutura.
Graças à flexibilidade da AWS e à habilidade de nossa equipe, conseguimos dimensionar nossa infraestrutura para que possamos lidar com a carga inesperada que surgiu sem qualquer aviso.
Nossa solução de chatbot permite aos usuários conversar através de diferentes canais (Facebook Messenger, clientes de bate-papo baseados na web, Whatsapp, Telegram, iMessage, etc.), como se estivessem interagindo com seres humanos graças às capacidades de conversação do bot, contando com um ou mais processadores de linguagem natural (NLP). Para atender aos requisitos específicos de cada empresa, as integrações necessárias são feitas com os sistemas de back-end, o bot é alimentado com a base de conhecimento da empresa e ele é treinado nas consultas e serviços da organização.
Quando o bot não entende a solicitação do usuário, a conversa pode ser transferida para um agente humano para que ele possa assumir o caso, o que é conseguido através da integração da plataforma no sistema CRM do cliente (por exemplo: Zendesk).
O Edge Chatbot também se integra com sistemas de análise especializados (por exemplo, Google Analytics ou Segment e Mixpanel) ou sistemas de informação estatística e análise já em uso na infraestrutura da empresa.
Nosso chatbot é criado com a tecnologia .NET, é executado no Amazon EC2 e usa um banco de dados Multi-AZ Amazon RDS para PostgreSQL. Contamos com um Application Load Balancer para controlar e equilibrar a carga recebida, o que também nos permite atualizar e implantar novos serviços sem tempo de inatividade. Os componentes estão localizados em diferentes redes Amazon Virtual Private Cloud para melhorar a segurança de todo o sistema e através do roteador podemos fornecer o acesso necessário aos serviços. Usamos o Amazon CloudWatch para gerar logs e alarmes, bem como painéis de métricas. Também usamos Grafana e Runscope para monitorar alguns serviços. Alguns dos alertas são acionados por meio do Amazon SNS, e, para outros, enviamos para os canais do Slack, usamos os recursos do AWS Lambda. Também usamos funções do Lambda para tirar instantâneos de instâncias do EC2. Para implantações de desenvolvimento e produção, confiamos no Jenkins e, para determinadas configurações compartilhadas, usamos buckets do Amazon S3. Para gerenciar usuários, grupos e funções no nível do sistema, usamos o AWS IAM.
Olhando para o lado positivo desta assustadora conjuntura com COVID-19, aprendemos que a empresa pode continuar trabalhando como uma equipe unida de qualquer lugar para continuar servindo nossos clientes e que nossa solução de chatbot passou por um teste de estresse que nunca imaginamos.