如何在对话框流程中重复bot的最后响应

问题描述 投票:0回答:2

我是dialogflow的新手。我想知道如果我告诉“重复”,对话框流可以重复机器人的最后一次响应。我有很多后续意图因此对于每个意图都不可能做出后续意图重复。

dialogflow
2个回答
3
投票

multivocal这样的库存储了最后一个响应,并提供了一个“重复”意图的处理程序,它将再次播放响应。

因此,您需要做的就是使用库并创建一个Intent,例如将“multiocal.repeat”设置为动作并启用webhook实现,它将为您处理重复:

enter image description here

如果您查看作为每个回复的一部分生成的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的主要维护者,如下面的评论所述。)


1
投票

没有开箱即用的解决方案。我们还没有实现它,但我们决定只在上下文中存储最新的输出,并在用户要求重复时将其再次发出。为此,您需要使用webhook来根据需要设置上下文。

© www.soinside.com 2019 - 2024. All rights reserved.