Глобальное состояние UserProfile для нескольких диалогов - PullRequest
1 голос
/ 05 апреля 2020

Я создаю бот C#, используя Microsoft Bot SDK. У меня есть главный диалог, который переходит к последовательным диалогам на протяжении всего разговора и сохраняет сущности Луиса в профиль пользователя. В конце, когда я возвращаюсь в главное диалоговое окно, мне нужно распечатать все объекты, которые есть в профиле пользователя.

Main Dialog -> 
Dialog 1 (Save entity to User Profile) -> 
Dialog 2 (Save entity to user Profile) -> , ... , -> 
Main Dialog (Print User Profile Entities)

Итак, мой профиль пользователя выглядит так:

public class UserProfile
{
    public string [] Entity1 { get; set; }
    public string [] Entity2 { get; set; }
}

И мой текущий метод обновления значений в профиле пользователя выглядит следующим образом:

private async Task<DialogTurnResult> GetEntity1Async(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    var luisResult = await _luisRecognizer.RecognizeAsync<Luis.ConversationBot (stepContext.Context, cancellationToken);
    var userInfo = userProfile(){
        Entity1 = luisResult.Entities.Entity1,
    };

    await stepContext.Context.SendActivityAsync(MessageFactory.Text($"You wrote {userInfo.Entity1}."), cancellationToken);

    return await stepContext.BeginDialogAsync(nameof(Dialog2));
}

Я изо всех сил пытаюсь создать «глобальный» профиль пользователя, чтобы в нем можно было создавать объекты в диалоговых окнах. , Я предполагаю, что печать сущностей в основном методе в конце будет такой же, как я делаю это выше?

Любая помощь, высоко ценимая, новая для фреймворка ботов и C#.

...