我已经提示了一个SMS机器人,用户可以在其中做出多种选择。我正在寻找ChoicePrompt的模式,该模式允许我执行以下操作:
我想避免为每个答案层创建带有切换案例的新提示,因为这种模式需要在很多地方实现...
示例:
机器人:用户,您该如何放松?
用户:锻炼
机器人:锻炼,很酷。还有什么?
用户:看书
机器人:好的,您已经完成了所有工作,因此我们可以继续前进!
答案 0 :(得分:1)
至少在v4中,botframework没有我可以看到的ListPrompt。但是,他们确实有可用于此目的的建议措施!!! Botbuilder-Samples存储库具有一个“建议的操作”示例,该示例显示了三种颜色的列表:
async onTurn(turnContext) {
// See https://aka.ms/about-bot-activity-message to learn more about the message and other activity types.
if (turnContext.activity.type === ActivityTypes.Message) {
const text = turnContext.activity.text;
// Create an array with the valid color options.
const validColors = ['Red', 'Blue', 'Yellow'];
// If the `text` is in the Array, a valid color was selected and send agreement.
if (validColors.includes(text)) {
await turnContext.sendActivity(`I agree, ${ text } is the best color.`);
} else {
await turnContext.sendActivity('Please select a color.');
}
// After the bot has responded send the suggested actions.
await this.sendSuggestedActions(turnContext);
} else if (turnContext.activity.type === ActivityTypes.ConversationUpdate) {
await this.sendWelcomeMessage(turnContext);
} else {
await turnContext.sendActivity(`[${ turnContext.activity.type } event detected.]`);
}
}
一个选项是以编程方式创建数组(在上面的示例中,它是“ const validColors”),如果答复在颜色列表中,请重新创建数组,但是要使用选定的选项。