0

我一直在尝试使用 dialogflow CX 警告用户他们的会话即将结束。但是如果没有用户先提出请求,我无法让它响应我。

有没有什么方法可以在没有用户先提出请求的情况下做到这一点?

4

1 回答 1

1

对于您的用例,如果您已将代理集成到您的自定义应用程序中,您可以执行自己的实现来创建一个跟踪用户会话时间的计时器,并在您的自定义应用程序上显示用户会话即将结束的警告. 这种方法必须在您的自定义应用程序端完成,并且不需要使用 Dialogflow。

或者,您可以在自定义应用程序上使用跟踪用户会话时间的计时器向您的代理发送包含用户当前会话 ID 的检测意图请求以触发事件。这使您的代理可以在同一会话中向用户发送响应,而无需用户首先发送请求。

  1. 在您的流程中,选择您想要添加自定义事件的页面。然后,如果尚未添加事件处理程序,请单击“<strong>添加路由类型”按钮添加事件处理程序。 在此处输入图像描述

  2. 单击“事件处理程序”字段旁边的 + 号并选择任何事件。 在此处输入图像描述

  3. 勾选“使用自定义事件”旁边的复选框。 在此处输入图像描述

  4. 添加您要使用的自定义事件的名称。 在此处输入图像描述

这是一个使用 REST API 触发自定义事件的示例 detectIntent 请求:

检测意图 API 的示例 URL:

发布
https://dialogflow.googleapis.com/v3beta1/projects/project-id/locations/us/agents/agent-id/sessions/session-id:detectIntent

对 URL 进行以下替换:

  • project-id:您的 GCP 项目 ID
  • agent-id:您的代理 ID
  • session-id:你的会话 ID

示例 JSON 请求正文应如下所示:

{
  "queryInput": {
    "event": {
      "event": "custom-event-name" // custom event to be triggered
    },
    "languageCode": "en"
  },
  "queryParams": {
    "timeZone": "America/Los_Angeles"
  }
}

您可以参考以下内容以获取更多信息:

有关检测意图调用的更多示例,请参阅此链接

要将您的代理与您自己的应用程序集成,您可以使用 Dialogflow CX 的客户端库Rest APIRPC API

于 2020-12-07T21:20:23.110 回答