我在node.js中使用Microsoft Bot Framework V4。在对话框的一个步骤中,我们需要使用ChoicePrompt对象以及TextPrompt组合按钮。如果用户单击按钮,则将触发建议的操作,并且如果用户编写纯文本,我们将使用LUIS和某些意图处理该操作。问题是两种行动都结合在一起。我曾尝试避免在使用ChoicePrompt时再次提示,但我无法管理。我也在寻找其他可以直接将按钮和文本结合在一起的提示,但是似乎没有任何提示。首先,在提示中声明要使用的对象:class ExampleDialog extends LogoutDialog { constructor(userState, logger) { super(EXAMPLE_DIALOG); this.addDialog(new TextPrompt(TEXT_PROMPT)); this.addDialog(new ChoicePrompt(CHOICE_PROMPT));其次,在步骤中,我使用之前声明的提示:async firstStep(step) { const promptOptions = { prompt: 'Text to prompt', retryPrompt: 'Retry text prompt', choices: ChoiceFactory.toChoices(['option1', 'option2', 'option3']) }; const promptAction = await step.prompt(A_PROMPT_ID, promptOptions); return promptAction;}async secondStep(step) { const thePreviousStepResult = step.result.values} 最佳答案 文本提示是您要接受任何字符串时要走的路。请记住,您可以在提示选项的prompt属性中包含任何活动,并且该活动可以包含附件,建议的操作等。您可以在source code中看到选择提示仅调用使用为其活动生成按钮。您可以做同样的事情:const promptOptions = { prompt: ChoiceFactory.forChannel(step.context, ['option1', 'option2', 'option3'], 'Text to prompt') // You can also include a retry prompt if you like, // but there's no need to include the choices property in a text prompt};const promptAction = await step.prompt(TEXT_PROMPT, promptOptions);return promptAction;关于node.js - 如何在同一步骤中组合ChoicePrompt和TextPrompt,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57288710/ 10-16 21:26