dialogflow-cx - 使用 EventHandler 警告用户他们的会话即将结束
问题描述
我一直在尝试使用 dialogflow CX 警告用户他们的会话即将结束。但是如果没有用户先提出请求,我无法让它响应我。
有没有什么方法可以在没有用户先提出请求的情况下做到这一点?
解决方案
对于您的用例,如果您已将代理集成到您的自定义应用程序中,您可以执行自己的实现来创建一个跟踪用户会话时间的计时器,并在您的自定义应用程序上显示用户会话即将结束的警告. 这种方法必须在您的自定义应用程序端完成,并且不需要使用 Dialogflow。
或者,您可以在自定义应用程序上使用跟踪用户会话时间的计时器向您的代理发送包含用户当前会话 ID 的检测意图请求以触发事件。这使您的代理可以在同一会话中向用户发送响应,而无需用户首先发送请求。
这是一个使用 REST API 触发自定义事件的示例 detectIntent 请求:
检测意图 API 的示例 URL:
对 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 API或RPC API。
推荐阅读
- python - 如何使用 cv2.HoughLinesP() 的输出来旋转原始图像?
- ruby-on-rails - Rails - 使用下拉和多选创建具有三重连接的表单
- java - 从日期中添加和减去天数
- vba - 为什么一些 SELECT 语句打开一个 RecordSet,而另一些则返回“错误 13,类型不匹配”
- python - 如何同时发送和接收消息 python sockets
- c# - 远程服务器给 Oracle 一个无效月份错误
- php - 锚标记不是可点击的 HTML
- python - 设置 autoretry_for 时,基于芹菜类的任务不会重试
- html - 在移动设备上使图标成行显示
- aframe - 在 oculus go 或其他控制器上制作事件(悬停、单击)