LUIS + FormFlow

Pedro Jesus
2 min readApr 28, 2018

Olá pessoal, tudo em riba? Dando continuidade à serie sobre FormFlow, hoje irei mostrar como trabalhar com esses dois diálogos juntos! Neste artigo não farei tão mastigado, pois presumo que já tenha dado uma lida nos anteriores.

Se você não sabe o que é o Luis da um clique nesta frase

Vamos criar um projeto do tipo BotApplication e adicionar uma pasta de modelo, para guardar o nosso formulário. A figura 1 mostra o resultado.

Figura 1 - Estrutura do projeto

Lembrando que pode ser o nome que você quiser, eu particularmente gosto de manter meus códigos em pt-BR(nome de pastas, métodos, variáveis, etc)

Feito isso vamos criar a classe que fará nosso formulário, o gist 1 mostra como ficará nossa classe.

Gist 1- Modelo do formulário

Agora dentro da pasta Dialogs vamos criar um novo diálogo, que irá se comunicar com o LUIS, o gist 2 mostra o código desse diálogo.

Gist 2- LuisDialog

Se você já mexeu com o LUIS, vai reparar algumas coisas diferentes por aqui.. Logo na linha 14, a nossa classe herda de LuisDialog<Pedido>, o normal é LuisDialog<object>. Esse <Pedido>, nada mais é que o nosso modelo de formulário.

Na linha 16, temos um delegate, que ficara encarregado de chamar o nosso formulário quando solicitado. E no construtor, linha 18, a Controller nos envia esse delegate.

Dentro do método que trata a intenção Comprar, linha 23, temos uma mensagem do bot e logo em seguida a construção do nosso formulário, que é bem semelhante a criação dos nossos outros formulários. Finalmente chamamos o Context.Call<T>(); para passar o objeto formulário e para onde o bot deve ir após a finalização do diálogo do Formulário, que no caso é o método PedidoCompleto.

Dentro deste método pegaremos as respostas do usuário, dentro do parâmetro result. E com isso podemos fazer o que for necessário.

Por fim, temos que alterar nossa Controller para que ela possa chamar o nosso LuisDialog.

Reparem que na linha 35, é feita a construção do nosso diálogo, e no construtor do LuisForm eu passo o BuildForm, para ser usado.

E com isso você já estará apto a linkar o seu Luis junto com o FormFlow e tornar o seu bot ainda mais versátil. Espero que tenha sido de grande ajuda. Abraços e até a próxima.

--

--