Como criar seu próprio bot

Minh Dong Blocked Unblock Seguir Seguindo 4 de junho de 2017

Neste post, eu irei guiá-lo pelas etapas que usei para criar meu próprio bot, que poderia entender a linguagem natural e a resposta de acordo. O bot funciona com mensagem de texto, slack, facebook messenger, skype, web chat etc.

O bot foi construído a partir do framework Microsoft Bot , usando os serviços cognitivos da microsoft para entender as conversas (existem muitas outras APIs interessantes de serviços cognitivos, como Visão Computacional, API Face, reconhecimento de voz, tradução, recomendação, etc.). Por enquanto, só estou usando o Language Understanding Intelligent Service para manipular a entrada de usuários.

Estou usando o NodeJS para levantar um serviço rápido para o meu bot e implementá-lo no Heroku.

Então vamos começar a construir nosso primeiro bot!

Aqui está uma visão geral básica do nosso bot

Este tutorial terá 4 partes principais:

A. Configure seu bot

B. Teste seu bot

C. Usando o LUIS para suportar sua conversa de bot

C. Implante seu bot

<A> Configure seu bot:

  • Você precisará do nodejs e express (ou restify), crie uma pasta bot para manter seus diretórios e torná-los como sua pasta de trabalho.
 $ mkdir nodebot 
$ cd nodebot
  • Inicialize o projeto e instale express (ou restify)
 $ npm init 
$ npm install express --save
$ npm install body-parser --save
  • Instalar o botbuilder
 npm instalar botbuilder --save 
  • Setup ESLint (você não tem também, mas geralmente eu gosto de começar isso para meus projetos)
 $ npm instalar eslint --save-dev 
  • Comece seu serviço simples adicionando:
 const express = require ('express'); 
 const bodyParser = require ('body-parser'); 

 const app = express (); 
 app.use (bodyParser.urlencoded ({extended: false})); 
 app.use (bodyParser.json ()); 

// manipulação de erros do middleware
 app.use ((err, req, res, next) => { 
 if (res.headersSent) { 
 volte em seguida (err); 
 } 
 console.error (err.stack); 
 return res.status (500) .json ({mensagem: err.message}); 
 }); 
 app.listen (process.env.PORT || 3000, () => { 
 console.log ('Exemplo de aplicativo escutando na porta 3000!'); 
 }); 
  • Agora, se você acessar http: // localhost: 3000 em seu navegador, receberá uma resposta do seu servidor.
  • Passar para peças mais interessantes, vamos adicionar nossos códigos bot. Agora volte para a pasta nodebot, adicione uma pasta controllers e um arquivo news.js lá. Este arquivo news.js será o coração do nosso bot. Ele vai ouvir pedidos de usuários, ligue para newsapi para preencher as solicitações do usuário, em seguida, responder de volta com mensagens apropriadas.
  • Você também precisa ter um id e uma senha para o aplicativo bot. Vá para https://dev.botframework.com/bots/new e registre-se no seu bot. Isso fornecerá essas informações.
  • Agora coloque este código no arquivo news.js que você criou acima:
 const builder = require ('botbuilder'); 
 const env = process.env; 
 função init (app) { 
 // Cria bot de chat e ligação 
 conector const = new builder.ChatConnector ({ 
 appId: env.BOT_APP_ID, 
 appPassword: env.BOT_APP_PASSWORD, 
 }); 
 app.post ('/ api / news', connector.listen ()); 
 const bot = new builder.UniversalBot (conector, (sessão) => { 
 session.send ('Desculpe, eu não entendi '% s  '. Envie ' help  'se você precisar de ajuda.', session.message.text); 
 }); 
 // Imprime mensagem de ajuda 
 bot.dialog ('Help', (session) => { 
 session.endDialog ('Olá !, esta é uma mensagem de ajuda'); 
 }). triggerAction ({ 
 correspondências: 'Ajuda', 
 }); 
 } 
 module.exports.init = init; 

Tudo isso faz o seguinte:

  1. Crie um conector com o appID e a senha que você obtém do botframework.com .
  2. Crie um bot universal usando esse conector
  3. Nosso bot irá ouvir comando e resposta de volta. Então, se você enviar “Help”, nosso bot irá mandar de volta “Hi! esta é uma mensagem de ajuda ”
  • Agora chame esse bot de notícias em nosso app.js

Adicionando as seguintes partes ao seu app.js. Isso basicamente chama a função init no news.js e passa uma função de aplicativo para que pudéssemos ouvir endpoint / api / news

 const newsbot = require ('./ controllers / news'); 
 newsbot.init (app); 
  • Uma nota: Você pode ver que usei process.env.BOT_APP_ID. Para executar o aplicativo, você precisa definir essa variável em seu ambiente nodejs. Dotenv é uma boa maneira de fazer isso https://github.com/motdotla/dotenv , mais tarde, quando implantarmos nosso serviço, precisaremos configurar também essas variáveis de ambiente. Se você estiver usando o VSCode, poderá defini-lo no launch.json como abaixo:
 { 
 “Versão”: “0.2.0”, 
 “Configurações”: [ 
 { 
 "Tipo": "nó", 
 "Pedido": "lançamento", 
 “Nome”: “Programa de Lançamento”, 
 "Programa": "$ {workspaceRoot} /app.js", 
 "Env": { 
 "BOT_APP_ID": "xxxxxxxxx", 
 “BOT_APP_PASSWORD”: “xxxxxxxxx”, 
 "PORT": "3001" 
 } 
 } 
 ] 
 } 
  • Então é isso. Você acabou de criar seu próprio bot que poderia ouvir o comando de Ajuda e resposta a ele.
  • Não se esqueça de empurrar seu código para o seu repositório git favorito 🙂

<B> Teste seu bot:

  • Para experimentar e testar seu bot localmente, a Microsoft fornece o Emulador BotFramework
  • Depois de instalar a versão mais recente, você poderia inserir URL, Microsoft AppId e senha do aplicativo (você já criou isso acima)
  • Execute seu serviço e insira todas essas informações.
  • Agora digite Ajuda e clique em enviar. Você verá sua resposta bot com "Oi! esta é uma mensagem de ajuda ”:)
  • Você poderia definir um ponto de interrupção no código e tentar novamente, você deve ser capaz de ver o ponto de interrupção ser atingido.

É isso aí. Com <A> e <B>, você acabou de criar seu primeiro bot simples e depurá-lo.

Na próxima vez, em <C> e <D>, mostrarei como você pode adicionar a API Cognitiva do Azure para entender os idiomas naturais e implantar nosso bot para que ele possa ser usado no Skype, Slack, email, texto, messenger etc. .

Clique abaixo para recomendá-lo a outros leitores médios interessados em AI, chatbots e desenvolvimento.