当前位置: 首页 > 知识库问答 >
问题:

是否可能基于另一个意图的响应(来自webhook)来触发一个意图?

越俊驰
2023-03-14

我有一个名为“intent.address”的意图,动作名为“address_action”,训练短语为“My Address”。当这个意图被触发时,我的webhook会给出一个回应:“好吧!你的地址是user_address”。

Used app.ask() here

我想要的是,当这个响应来自webhook时,另一个名为“intent.conversation”的意图(事件名“actions_intent_confirment”)(这里也是webhook已启用的)会被触发,它将请求用户确认是否继续?例如:

Alright your address is USER_ADDRESS

然后下一个

Do you want ask address/directions again? 

共有1个答案

濮阳国兴
2023-03-14

意图并不反映你的webhook说了什么,它反映的是用户说了什么。意图是用户想要做的--他们想要的。

所以不,你不能就这样触发另一个意图。不过,有几种方法可以满足你的要求。

在Google v1 node.js库中使用确认帮助器

如果您真的想要使用确认帮助器,您需要发回JSON,因为node.jsV1库不支持直接发送这个帮助器。您的响应需要类似于:

{
  "data": {
    "google": {
      "expectUserResponse": true,
      "systemIntent": {
        "intent": "actions.intent.CONFIRMATION",
        "data": {
          "@type": "type.googleapis.com/google.actions.v2.ConfirmationValueSpec",
          "dialogSpec": {
            "requestConfirmationText": "Please confirm your order."
          }
        }
      }
    }
  }
}

如果您还没有在响应中使用JSON,那么您可能不想走这条路。

在Google v2 node.js库中使用confironment helper和action-on-Google v2 node.js库

如果您已经切换到该库的v2,那么您可以发送一个带有如下内容的确认

app.intent('ask_for_confirmation_detail', (conv) => {
  conv.ask("Here is some information.");
  conv.ask(new Confirmation('Can you confirm?'));
});

或者您可以使用Dialogflow方式来完成此操作

在这个场景中,您根本不使用确认帮助器,因为它非常混乱。

相反,你将你的问题作为回答的一部分,并添加两个后续意图--一个是处理如果他们说“是”该怎么办,另一个是如果他们说“不”。

 类似资料:
  • 日安所有, 我遇到的情况是,我正在为Dialogflow中的航班预建代理建立快递服务。下面是应用程序中的示例交互。 我想要一个从伦敦到纽约的往返航班-DialogFlow/Implementation后端接收用户的票证类型[return],到[New York]和从[London]实体。 所以我的问题是,既然我已经捕获了出发的数据,并且我不能期望用户也使用与日期相关的短语,那么我如何使返回意图与出

  • 问题内容: 我知道如何更新自己的程序,也知道如何使用预定义的Uri打开程序(例如,用于短信或电子邮件) 我需要知道如何创建一个意图来打开MyTracks或其他我不知道他们在听什么意图的应用程序。 我是从DDMS获得此信息的,但是我并没有成功将其转换为可以使用的Intent。这是从手动打开MyTracks时获取的。 谢谢你的帮助 问题答案: 首先,Android中的“应用程序”概念是一个扩展的概念。

  • 问题内容: 我对android非常陌生,我正在尝试将用户输入的数据(他们的名字)发送到另一个活动。过去,我可以使用Intent在活动之间发送单行代码,但是我无法解决如何向两个不同的TextView发送两个不同的字符串。 这是到目前为止我的MainActivity代码: 我第二项活动MainGame的代码: 当我运行它时,我得到了两个TextView中都为“ name2”添加的内容。我需要做些什么来

  • 我刚刚从反应类过来,开始思考钩子和功能组件。我有一段加载地图脚本的代码 我需要从下面的函数中设置状态或更新状态,但它不是保持状态的主函数 下面的主要功能是加载中的映射脚本。 如何使用这种方式更新状态,即从另一个函数更新状态

  • 我实际上有两种类型的数据: 我想用Hamcrest在我的身体响应中测试我的放心请求后,b(元素接收)是否包含来自a的一个或多个元素(

  • 我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?