Criando um Chatbot com o Microsoft Azure QnA Maker e o Alexa

James Ashley em Tutoriais bot seguir 01 de maio · 6 min ler

O QnA Maker é a API da Microsoft, fácil de usar e baseada na nuvem, que transforma uma página de perguntas frequentes voltada ao público, manuais de produtos e documentos de suporte em um serviço de bot de linguagem natural. Como ele usa dados pré-selecionados para usar como "inteligência", é uma das maneiras mais fáceis de criar um bot poderoso para sua empresa.

Alexa, é claro, é o host mais difundido do mundo para bots de conversação. Ele é encontrado em residências, salas de reuniões corporativas e em qualquer outro lugar onde as pessoas querem acesso fácil a informações baseadas na web.

Neste artigo, mostrarei a você como anexar o encanamento para enviar as informações de Q & A que sua empresa deseja que os usuários conheçam nos dispositivos de bot de conversação que eles usam com mais frequência.

Parte 1: Criando um serviço de bot com o QnA Maker

Para começar, criei uma conta gratuita do Azure para jogar. Fui então para a página do portal QnA Maker e cliquei na guia Criar uma base de conhecimento na parte superior para configurar a base de conhecimento para o meu bot. Em seguida, cliquei no botão azul Criar um serviço QnA para criar um novo serviço QnA com minha conta gratuita do Azure.

Segui as instruções ao longo do processo, o que facilitou a compreensão do que eu precisava fazer em cada etapa.

Na etapa 2, selecionei meu locatário do Azure, o nome da assinatura do Azure e o nome do recurso do Azure associado ao serviço do Criador do QnA. Eu também escolhi o serviço Azure QnA Maker que acabei de criar na etapa anterior para hospedar a base de conhecimento.

Em seguida, inseri um nome para minha base de conhecimento e a URL do FAQ da minha empresa para usar como o cérebro da minha base de conhecimento. Se você quer apenas testar esta parte, você pode usar o FAQ do próprio QnA Maker .

O QnA Maker possui um recurso opcional chamado Chit-chat que me permite dar personalidade ao meu serviço de bot. Eu decidi ir com “The Professional” para isso, mas definitivamente gostaria de experimentar “The Comic” em algum momento para ver como é.

O próximo passo foi apenas clicar no botão Create your KB e esperar pacientemente que meus dados sejam extraídos e que minha base de conhecimento seja criada.

Feito isso, abri a página Publish no portal QnA Maker, publiquei minha base de conhecimento e clique no botão Create Bot .

Depois de preencher as informações de configuração adicionais do Azure específicas da minha conta, tive um bot implantado com codificação zero no Microsoft Bot Framework v4. Eu poderia até conversar com ele usando o recurso “Test in Web Chat” integrado. Você pode encontrar mais detalhes neste tutorial de serviços cognitivos.

Parte 2: Fazendo seu serviço de bot funcionar no Alexa

Para obter o serviço de bot que eu criei acima trabalhando com o Alexa, eu tive que usar um adaptador de middleware de código aberto criado pela comunidade de botbuilders. Felizmente, o adaptador Alexa Middleware estava disponível como um pacote NuGet para o Visual Studio.

Fui ao portal do Azure e selecionei o bot que criei na seção anterior. Isso me deu a opção de "Fazer o download do código-fonte do Bot". Baixei o código-fonte do meu bot como um arquivo zip, extraí-lo em um diretório de trabalho e abri-lo no Visual Studio 2017.

Quando o bot é gerado automaticamente, ele é criado com referências ao pacote Microsoft.AspNetCore.App NuGet e ao Microsoft.AspNetCore.App SDK. Infelizmente, isso teve problemas de compatibilidade com o pacote middleware. Para corrigir isso, cliquei com o botão direito no pacote Microsoft.AspNetCore.App NuGet na janela Solution Explorer e o removi. Isso também removeu automaticamente o SDK equivalente. Para recuperar todas as DLLs de que precisava, usei o NuGet Package Manager para instalar o Microsoft.AspNetCore. Todo o pacote (2.0.9) em vez disso. Certifique-se de instalar esta versão específica do pacote para garantir a compatibilidade.

Depois de fazer esses ajustes na solução, fui para a barra de menus do Visual Studio e selecione Ferramentas -> Gerenciador de Pacotes Nuget -> Gerenciar Pacotes Nuget para Solução . Eu procurei por Adapters.Alexa e instalei o pacote Bot.Builder.Community.Adapters.Alexa .

Se o seu aplicativo baixado não tiver seu arquivo Program.cs ou Startup.cs , você precisará criá-lo para seu projeto para criar e publicar. No meu caso, criei um novo projeto do Microsoft Bot Builder v4 e copiei esses dois arquivos de lá. No método de inicialização da classe Startup eu criei um ConfigurationBuilder para reunir as minhas configurações de aplicativos.

Então nos ConfigureServices e configurar métodos, eu adicionei uma chamada para services.AddAlexaBot e UseAlexa, a fim de permitir que o middleware Alexa e configurar um endpoint especial para chamadas de Alexa.

Após essas alterações de código, publiquei o Web App Bot de volta à minha conta do Azure. O serviço de bot QnA original agora tem um endpoint de canal adicional para o Alexa. O endereço Alexa é o endereço raiz original do Web App Bot com / api / skillrequests adicionados ao final.

Neste momento, eu estava pronto para ir para minha conta da Amazon e criar uma nova habilidade do Alexa. Eu fui para: https://developer.amazon.com/alexa e assinei. (Se você ainda não tem uma conta de desenvolvedor, você precisará inserir suas informações e concordar com o EULA do desenvolvedor.) Em seguida, eu toquei o item de menu do Alexa na parte superior da página do desenvolvedor e o Alexa Skills Set selecionado. Isso me levou a https://developer.amazon.com/alexa/console/ask , onde cliquei no botão Create Skill .

Escrevi um nome exclusivo para minha habilidade, selecionei o Custom para o modelo e cliquei em Criar habilidade . Na tela seguinte, selecionei Start from Scratch para o meu modelo.

Eu selecionei o JSON Editor .

Em seguida, abri outro navegador da Web e fui até esse código-fonte e copiei o JSON de exemplo encontrado no arquivo README.md .

Voltei para o navegador da Web que tinha o portal Amazon Alexa aberto e colei o JSON na caixa. Eu mudo o invocationName para o nome da minha habilidade, clico em Save Model e finalmente clico em Build Model.

Depois de esperar pacientemente pela conclusão da compilação, selecionei Endpoint na janela de navegação esquerda e cliquei em HTTPS . Em seguida, inseri o endereço do URL do Serviço de Aplicativo do Azure e adicionei / api / skillrequests ao final.

Para distribuir minha habilidade Alexa para que as pessoas possam usá-la em seus próprios dispositivos Amazon, cliquei no link Distribution no console do desenvolvedor do Alexa e segui as instruções de lá.

E antes que eu soubesse, eu era capaz de ter uma conversa com a página de perguntas frequentes da minha empresa, usando a personalidade profissional do QnA Maker, da minha sala de estar.