Каркас бота PromptOptions & Choices Ограничение на 20 символов - PullRequest
0 голосов
/ 19 сентября 2019

Я заметил странное 20 символов ограничение в значениях Choice (строка) при работе с ботом с использованием Microsoft Bot framework .Я впервые заметил это в своем собственном боте, который я разрабатываю, но затем я смог подтвердить проблему с примером, доступным по адресу https://github.com/Microsoft/BotBuilder-Samples ( 06. Использование карт )

Внешний вид PromptOptionsкак это ->

var options = new PromptOptions()
{
  Prompt = MessageFactory.Text("What card would you like to see? You can click or type the card name"),
  RetryPrompt = MessageFactory.Text("That was not a valid choice, please select a card or number from 1 to 9."),
  Choices = GetChoices(),
};

и метод GetChoises похож на ->

private IList<Choice> GetChoices()
{
    var cardOptions = new List<Choice>()
    {
        new Choice() { Value = "Adaptive Card", Synonyms = new List<string>() { "adaptive" } },
        new Choice() { Value = "Animation Card", Synonyms = new List<string>() { "animation" } },
        new Choice() { Value = "Audio Card", Synonyms = new List<string>() { "audio" } },
        new Choice() { Value = "Hero Card", Synonyms = new List<string>() { "hero" } },
        new Choice() { Value = "Receipt Card", Synonyms = new List<string>() { "receipt" } },
        new Choice() { Value = "Signin Card", Synonyms = new List<string>() { "signin" } },
        new Choice() { Value = "Thumbnail Card", Synonyms = new List<string>() { "thumbnail", "thumb" } },
        new Choice() { Value = "Video Card", Synonyms = new List<string>() { "video" } },
        new Choice() { Value = "All cards", Synonyms = new List<string>() { "all" } },
    };

    return cardOptions;
}

Когда приведенный выше код используется как есть, он дает хорошие параметры подсказки (в эмуляторе бота)

enter image description here

Однако, когда я делаю значение выбора строку длиннее 20 символов, это то, что происходит

Анимационная карта -> Очень длинная Анимационная карта

private IList<Choice> GetChoices()
{
    var cardOptions = new List<Choice>()
    {
        new Choice() { Value = "Adaptive Card", Synonyms = new List<string>() { "adaptive" } },
        new Choice() { Value = "Very long Animation Card", Synonyms = new List<string>() { "animation" } },
        new Choice() { Value = "Audio Card", Synonyms = new List<string>() { "audio" } },
        new Choice() { Value = "Hero Card", Synonyms = new List<string>() { "hero" } },
        new Choice() { Value = "Receipt Card", Synonyms = new List<string>() { "receipt" } },
        new Choice() { Value = "Signin Card", Synonyms = new List<string>() { "signin" } },
        new Choice() { Value = "Thumbnail Card", Synonyms = new List<string>() { "thumbnail", "thumb" } },
        new Choice() { Value = "Video Card", Synonyms = new List<string>() { "video" } },
        new Choice() { Value = "All cards", Synonyms = new List<string>() { "all" } },
    };

    return cardOptions;
}

enter image description here

Я нашел то же самоепроблема обсуждалась в https://github.com/MicrosoftDocs/bot-docs/issues/1141, но я не знаю, какие изменения были сделаны для решения проблемы

...