botframework - 在 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?谢谢
解决方案
推荐阅读
- visual-studio-code - 从 dev 分支到 prod 的 Cherry pick 或选择性合并
- reactjs - 带有下拉菜单的标题图标按钮
- javascript - 当从父级作为道具传递的状态被更新时,如何重新渲染 ReactJs 组件并使用 Apollo 重新获取查询?
- powershell - 从 Windows Powershell 卸载 linux
- c++ - 从文件中读取日期
- java - 问题 - ElasticSearch Baeldung 示例(Maven 依赖项)
- python - 如何在前端与 python 终端交互
- wagtail - 将 wagtail 从 2.11 升级到最新的 2.14 后的 PageChooserBlock UI 管理问题
- ansible - 按需反转库存订单
- mysql - 通过 id mysql 查找具有最新日期的行