Jump to content
Master_Cyber

[Resolvido] Bot Framework com QnaMaker e FormFlow

Recommended Posts

Bom noite pessoal... Estou fazendo um bot que se comunica com o QnaMaker, e dependendo da resposta, deverá ser aberto uma conversação guiada através do FormFlow com uso  do Json.
Meu problema é exatamente neste ponto para conseguir abrir o formulário.
Estou usando a SDK V3 e o QnAMakerDialog do garypretty.
Resumidamente neste ponto devo fazer algo para iniciar o form.

public override async Task DefaultMatchHandler(IDialogContext context, string originalQueryText, QnAMakerResult result)
{
    QnaAnswer a = result.Answers.First();
    var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);
    
    if (a.Answer == "form")
    {
        // ABRIR FORM AQUI
    }
    
    await context.PostAsync(messageActivity);
    context.Wait(MessageReceived);
}

 

Já tentei várias coisas como chamar context.Forward ou context.Call, mas não da certo,  talvez eu esteja chamando de forma errada.

Sempre retorna a mensagem dizendo que existe um problema no código fonte.

Vocês podem me ajudar?

Obrigado!!

Share this post


Link to post
Share on other sites

Para quem precisar, segue solução.

 

public static bool IsForm = false;

public override async Task DefaultMatchHandler(IDialogContext context, 
string originalQueryText, QnAMakerResult result)
{
    QnaAnswer a = result.Answers.First();
    var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);

    if (a.Answer == "form")
    {
		IsForm = true;
		var form = new FormDialog<JObject>(new JObject(), JsonForm.BuildJsonForm, FormOptions.PromptInStart);
		context.Call(form, FormCallback);
    }
	else
	{
		IsForm = false;
		messageActivity.Text = $"{result.Answers.First().Answer}";
	}

    if (IsForm == false)
	{
		await context.PostAsync(messageActivity);
		context.Wait(MessageReceived);
	}
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By magrelarr
      Olá pessoal. Me chamo Lucas e tenho uma enorme vontade em aprender programação, na intenção de criar um jogo bem simples, mas com alguns detalhes. Minha ideia é um jogo sobre eleições politicas, numa terra ficticia que criei, e contaria com partidos disputando em sete regiões, números em graficos sobre os votos, eleitos e não eleitos, divisão dos poderes, formação de governo, etc. Algo programado dessa forma. Parece complexo mas seria algo básico.
      Então são duas perguntas:
      1° Por onde começar? Eu tenho muita vontade, mas conheço pouco da área. O primeiro passo que foi a história, os mapas, partidos e logos eu já criei, mas e depois?
      2° qual a melhor linguagem pra se aprender. Será um jogo de texto, sem personagens, apenas números e nomes, e realmente não faço ideia de que tipo de linguagem se usa pra jogos assim.

      Deixem dicas ou se caso se interessem pelo projeto, mantenho contato. Obrigado.
    • By ArxT
      Construa um algoritmo para analisar estoque de uma empresa. Inicialmente o programa deve solicitar do usuário a quantidade de itens diferentes em estoque. Em seguida ler, para cada item, o seu nome e a quantidade de unidades no estoque. Ao final, informar o nome do item com mais unidades armazenadas.
    • By Casemiro
      Elabore um programa no qual transfira os números digitados de uma matriz a composta por tres linhas e cinco colunas para a matriz b de 5 linhas e 3 colunas
    • By Eduardo.10
      Gostaria de ajuda para resolver uns exercícios dessa matéria obrigatória para o curso de engenharia que estou com dificuldades
       
       
      Utiliza o comando switch-case
      Quando a questão conter um programa a ser criado e resolvido com o algoritmo, a resolução deve conter as etapas para a construção da lógica:   diagrama de blocos(minimamente) e codificação em C ( que deve ser testada no compilador). Pergunta:
      1) Considere as estações do ano prevalentes para cada mês na europa:
      Janeiro (1): Inverno
      Fevereiro (2): Inverno
      Março (3): Inverno
      Abril (4): Primavera
      Maio (5): Primavera
      Junho (6): Primavera
      Julho (7): Verão
      Agosto (8): Verão
      Setembro (9): Verão
      Outubro (10): Outono
      Novembro (11): Outono
      Dezembro (12): Outono

      Escreva um programa que solicita ao usuário que forneça o número do mês de seu aniversário e imprima:

      “Você nasceu na Primavera” ou
      “Você nasceu no Verão” ou
      “Você nasceu no Outono” ou
      “Você nasceu no Inverno”

      conforme for o caso.
       
       
       
      Resolução em fluxograma e codificação em linguagem C).
      2) Escreva um programa que imprima todos os inteiros no intervalo [10, 20], em ordem crescente.
      3)  Escreva um programa que imprima todos os inteiros no intervalo [10, 20], em ordem decrescente.
      4) Fazer um programa que calcule e escreva o valor de S: S = 1/1 + 3/2 + 5/3 + 7/4+...+99/50

      5) Fazer um programa que calcule e escreva a seguinte soma: S = 21/20 + 22/19 + 23/18 +...+ 220/1. Use a função pow (não se esqueça do #include<math.h>).

      6) Fazer um programa que calcule e escreva o valor de S onde:
      S = 1/1 – 2/4 + 3/9 – 4/16 + 5/25 – 6/36 ... –10/100
       
      Se puderem me ajudar, por favor?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.