Я использую диалоги 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"
}
}
}
Вопрос: как я могу поддерживать выбор пользователем одного из параметров Enum, а также свободный ввод текста, чтобы я мог запустить другой диалог или запустить Luis API для этого ввода. Например, пользователь наберет «Я хочу поговорить с оператором» вместо ответа на Enum в моем диалоговом окне JSON FormFlow? Спасибо
Опубликованный мной дубликат должен ответить на ваш вопрос
Возможный дубликат Вызов LUIS из FormFlow в C#