Criação de Bots com o Microsoft Bot Framework

NetCoders
netcoders
Published in
4 min readApr 28, 2016

Neste post irei falar sobre uma novidade revelada na Build 2016, o Microsoft Bot Framework.

O Microsoft Bot Framework foi criado para ajudar na criação de bots no qual podemos interagir com nossos usuários naturalmente no mais diversos canais como Skype, Slack e outros serviços de mensagens.

Hoje estarei demonstrando como criar nosso primeiro Bot utilizando o Microsoft Bot Framework.

Vamos aos pré-requisitos.

  1. Visual Studio 2015 Update 1 — Pode ser o community. Clique aqui para fazer o download
  2. Faça o download do template do Bot Application. Clique aqui para fazer o download
  3. Salve o zip em %USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#
  4. Abra o Visual Studio

Criando o seu Primeiro Bot Application

Com o Visual Studio 2015 aberto vamos criar nosso primeiro projeto bot framework. Com o template do Bot instalado iremos ver uma janela igual a imagem abaixo:

Bot1

Escolha o template do Bot Application, esse template provê todas as funcionalidades para que possamos criar o Bot sem precisar de muito esforço de programação.

Vamos criar um bot para atender os chamados de uma pizzaria para isso iremos usar o Bot Form Builder que irá tornar nossa vida super fácil ao criar fluxos de conversações entre um usuário e um Bot.

Porém antes de começar a criar nosso bot devemos instalar um pacote chamado Bot Builder para fazer isso vamos ao Package Manager Console e digitar o seguinte comando: Install-Package Microsoft.Bot.Builder

Com o Bot Builder adicionado em nosso projeto, podemos criar fluxo de conversações poderosas.

Utilizando o Form Builder

Primeiro vamos criar uma classe chamada PizzaOrder e nesta classe iremos criar duas enumerações chamada PizzaOptions e SizeOptions conforme código abaixo.

[code language=”csharp”]
[Serializable]
public class PizzaOrder
{
public enum PizzaOptions
{
Margherita,
Calabresa,
Frango,
Portuguesa,
Palmito
}
public enum SizeOptions
{
Brotinho,
Media,
Grande,
Familia
}

public PizzaOptions? Pizza { get; set; }
public SizeOptions? Size { get; set; }
public String Address { get; set; }
}
[/code]

A nossa classe de PizzaOrder tem 3 propriedades que são qual a pizza o usuário quer, qual o tamanho dela e para qual endereço a pizza deverá ser entregue.

Iremos usar o Bot Form Builder assim devemos alterar a classe PizzaOrder e adicionar a implementação abaixo para que nosso bot converse com nossos usuários.

[code language=”csharp”]
[Serializable]
public class PizzaOrder
{
public enum PizzaOptions
{
Margherita,
Calabresa,
Frango,
Portuguesa,
Palmito
}
public enum SizeOptions
{
Brotinho,
Media,
Grande,
Familia
}

public PizzaOptions? Pizza { get; set; }
public SizeOptions? Size { get; set; }
public String Address { get; set; }

public static IForm<PizzaOrder> BuildForm()
{
return new FormBuilder<PizzaOrder>()
.Message(“Seja bem vindo a Pizzaria do Bairro!”)
.Build();
}
}
[/code]

Nossa classe de PizzaOrder está pronta, agora devemos conectar ela ao nosso Bot.

Conectando ao Bot

Para conectar a classe PizzaOrder ao bot devemos implementar uma função que irá retornar uma interface IDialog essa interface que será responsável por gerenciar o fluxo de conversão entre nosso bot e os usuários.

Então irei abrir o arquivo MessageController.cs e adicionar o código abaixo:

[code language=”csharp”]
[BotAuthentication]
public class MessagesController : ApiController
{
internal static IDialog<PizzaOrder> MakeRootDialog()
{
return Chain.From(() => FormDialog.FromForm(PizzaOrder.BuildForm));
}

/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == “Message”)
{
return await Conversation.SendAsync(message, MakeRootDialog);
}
return HandleSystemMessage(message);
}

private Message HandleSystemMessage(Message message)
{
return null;
}
}
[/code]

Pronto nosso Bot agora está conectado a classe PizzaOrder. Note que no Post passei como parâmetro a implementação do fluxo de conversação (MakeRootDialog) entre o Bot e o usuário.

Com isso nosso Bot está pronto para uso basta testá-lo.

Testando nosso Bot

Para testar um Bot, devemos fazer download do Bot Emulator, essa ferramenta irá nos ajudar a testar nosso fluxo de conversação. Faça o download do emulador (Clique aqui para fazer o download) com ele instalado poderemos testar nosso Bot utilizando o Visual Studio.

Com o emulador instalado, basta executar nosso projeto apertando F5 e abrir o programa do emulador. Veja a imagem com o nosso Bot interagindo conforme vou escolhendo as opções.

Bot2

Podemos ver que nosso Bot está funcionando e conversando com o usuário.

Com o Microsoft Bot Framework podemos criar Bots incríveis com extrema facilidade. Isso pode ser muito útil para criar Bots inteligentes nas mais diversas áreas como Call Center, Telefonia, Atendimento e etc.

Para saber mais sobre o Microsoft Bot Framework clique aqui.

O código de criação do nosso Bot está disponível no GitHub, além de ter outras opções de conversações e transições entre os diálogos.

Não deixem de comentar!

Abs e até o próximo.

--

--