首页 > 解决方案 > 在 JSON 枚举 FormFlow 对话框中键入另一个答案

问题描述

我正在使用 JSON FormFlow 对话框。

public async Task StartAsync(IDialogContext context)
        {
            context.Wait(MessageReceivedAsync);
        }

public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
        {
            var activity = await argument;
            if (activity.Type == ActivityTypes.Message)
            {
                context.Call(FormDialog.FromForm(() => BuildJsonForm(), FormOptions.PromptInStart), DialogCompleted);
            }
        }
public static IForm<JObject> BuildJsonForm()
    {


        using (var stream = File.OpenRead("my.json"))
        {
            var schema = JObject.Parse(new StreamReader(stream).ReadToEnd());
            return new FormBuilderJson(schema)
                .AddRemainingFields()
                .Build();
        }
    }

my.json我有枚举:

"properties": {
"EnumExample": {
  "Prompt": { "Patterns": [ "To what language translate {||}" ] },

  "Describe": { "Image": "" },
  "type": [
    "string",
    "null"
  ],
  "enum": [
    "en",
    "fr",
    "ru",
    "de",
    "es"
  ],
  "Values": {
    "en": {
      "Describe": "English"
    },
    "fr": {
      "Describe": "French"
    },
    "ru": {
      "Describe": "Russian"
    },
    "de": {
      "Describe": "German"
    },
    "es": {
      "Describe": "Spanish"
    }
  }
}

问题:我如何支持用户选择枚举选项之一以及自由文本输入,以便我可以运行另一个对话框或在该输入上运行 Luis API。例如,用户将在我的 JSON FormFlow 对话框中键入“我想与操作员交谈”而不是回答 Enum?谢谢

标签: botframework

解决方案


推荐阅读