我是dialogflow的新手。我想知道如果我告诉“重复”,对话框流可以重复机器人的最后一次响应。我有很多后续意图因此对于每个意图都不可能做出后续意图重复。
像multivocal这样的库存储了最后一个响应,并提供了一个“重复”意图的处理程序,它将再次播放响应。
因此,您需要做的就是使用库并创建一个Intent,例如将“multiocal.repeat”设置为动作并启用webhook实现,它将为您处理重复:
如果您查看作为每个回复的一部分生成的JSON,您将看到它创建了一个短暂的上下文,其中包含刚刚发送的内容。 (这里只是JSON的一小部分,用于说明这一点。)
{
"name": "projects/vodo/agent/sessions/A...w/contexts/multivocal_repeat",
"lifespanCount": 1,
"parameters": {
"Ssml": "I'm sorry, I don't know about an attribute named Alpha. What would you like to do now?",
"Text": "I'm sorry, I don't know about an attribute named Alpha. What would you like to do now?"
}
}
],
"payload": {
"google": {
"richResponse": {
"items": [
{
"simpleResponse": {
"ssml": "<speak>I'm sorry, I don't know about an attribute named Alpha. What would you like to do now?</speak>",
"displayText": "I'm sorry, I don't know about an attribute named Alpha. What would you like to do now?"
}
}
]
},
(请注意,我是multiocal的主要维护者,如下面的评论所述。)
没有开箱即用的解决方案。我们还没有实现它,但我们决定只在上下文中存储最新的输出,并在用户要求重复时将其再次发出。为此,您需要使用webhook来根据需要设置上下文。