Невозможно выйти из бота, используя luis для выхода - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть бот, созданный в framework v4 с использованием c#. Я использую LUIS, чтобы выйти из бота. Когда в моем боте будет пользовательский тип выхода, бот начнет весь разговор с самого начала. Но в моем случае все стеки, представленные выше бота, не заканчиваются, так как метод CancelAllDialogsAsyn c (true, null, null, cancellationToken) недоступен в методе onturnasyn c, где я включил функцию выхода, используя LUIS .Here код для функции выхода с LUIS. Можно ли написать метод cancelalldialogasyn c вместе с функцией выхода.

public override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
    var activity = turnContext.Activity;
    // var activity = turnContext.Activity;
    var recognizerResult = await _botServices.Dispatch.RecognizeAsync(turnContext, cancellationToken);
    // Top intent tell us which cognitive service to use.
    var topIntent = recognizerResult.GetTopScoringIntent();
    var attachments = new List<Attachment>();
    var reply = MessageFactory.Attachment(attachments);
    reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;
    // First, we use the dispatch model to determine which cognitive service (LUIS or QnA) to use.
    if (string.IsNullOrWhiteSpace(activity.Text) && activity.Value != null)
    {
        activity.Text = JsonConvert.SerializeObject(activity.Value);
    }
    if (turnContext.Activity.Text == "Yes")
    {
        await turnContext.SendActivityAsync($"Good bye. I will be here if you need me. ", cancellationToken: cancellationToken);
        await turnContext.SendActivityAsync($"Say Hi to wake me up.", cancellationToken: cancellationToken);
    }
    else if (topIntent.intent == "OrderStatusintent")
    {
        reply.Attachments.Add(Cards.GetHeroCard6().ToAttachment());
        await turnContext.SendActivityAsync(reply, cancellationToken);
    }
    else if (topIntent.intent == "Exitintent")
    {
        await turnContext.SendActivityAsync($"Good bye. Say Hi if you need more help.", cancellationToken: cancellationToken);
    }
}
...