Criação de Bots com o Microsoft Bot Framework
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.
- Visual Studio 2015 Update 1 — Pode ser o community. Clique aqui para fazer o download
- Faça o download do template do Bot Application. Clique aqui para fazer o download
- Salve o zip em %USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#
- 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:
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.
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.