在创建意图时,在“意图”选项卡中,有一个“响应”部分,您可以添加多个响应,然后会随机选择一个响应来响应用户。
在实现调用中使用内联编辑器:
agent.add("send a response back");
将命令发送回用户,但是我想知道是否可以进行设置,以便像在“意图”屏幕中一样,要从多个响应列表中选择要发送回的响应:
例如
agent.add("response1");
agent.add("response2");
agent.adD("response3");
其中之一将被随机发回。
谢谢
答案 0 :(得分:2)
尽管不同的响应被认为是VUI设计的最佳实践,但没有直接的方法可以做到这一点。
但是,解决此问题的最佳方法是将可能的答复放入一个数组中,然后随机选择其中一个。像这样:
var possibleResponse = [
'Response 1',
'Response 2',
'Response 3'
];
var pick = Math.floor( Math.random() * possibleResponse.length );
var response = possibleResponse[pick];
agent.add( response );
这也更好,因为当您将动作国际化时,只需将possibleResponse
替换为本地化的字符串即可。
实际上,这是解决该问题的一种流行方法,以multivocal库作为其解决方案的核心。您只需在配置中为“动作”,“意图”或“结果”提供可能的本地化响应,它就会为您挑选一个。由于所有响应都是模板,因此您可以添加任何其他所需参数,或在显示它们时加上条件(例如处理单数或复数值)。因此,在多声系统中,配置的这一部分将是:
Local: {
en: {
Response: {
"Intent.welcome": [
"Response 1",
"Response 2",
"Response 3"
]
}
}
}