【问题标题】:How can I increase the 20-minute lifespan of contexts如何增加上下文的 20 分钟寿命
【发布时间】:2020-06-04 15:50:45
【问题描述】:

正如我在 Google 文档中所读到的,“所有上下文在激活 20 分钟后都会过期”(https://cloud.google.com/dialogflow/docs/contexts-input-output)。我想知道是否有办法扩大这个限制。例如,如果我在我的上下文中存储一个 mp3 播放列表,以便我可以在当前播放的结尾播放下一个音频,如果当前 mp3 的持续时间超过 20 分钟,我会丢失上下文和下一个 mp3 的任何信息。

【问题讨论】:

    标签: dialogflow-es actions-on-google


    【解决方案1】:

    您需要设置两件事: 您自己的 webhook 服务器。 您偏好的数据库(我选择了 MongoDB)来存储由唯一聊天 ID 标识的用户数据,并且可以从您集成聊天机器人的每个平台以不同方式检索它。 例如:在 facebook 上,您可以使用与您的机器人进行对话的用户的用户 ID 作为唯一 ID,在 twilio 上您可以使用电话号码,在您自己的网络聊天 UI 上,您可以建立自己的 ID(通常是时间戳)作为您发送到 Dialogflow 的请求的参数,并将其存储在客户端浏览器的 localStorage 中。因此,下次用户在同一浏览器中与您的机器人聊天时,您可以使用此唯一 ID 获取他的数据。

    对于 facebook,您可以使用以下方法获取用户 ID: agent.originalRequest.payload.data.sender.id 对于 twilio: agent.originalRequest.payload.data.From 对于网络(这取决于您发送到 API 的变量) agent.originalRequest.payload.data.{变量}

    使用此唯一ID,您可以为每个用户创建自己的数据库注册表,获取、检索或存储数据,并使您的上下文永久保留。

    PS:让我知道如果我说清楚了,现在是凌晨 4:34 大声笑,我可以对此发表评论以消除任何疑问。 和平!

    【讨论】:

    • 不幸的是,我还没有找到任何可行的解决方案。希望有人能帮忙
    • 我找到了一种方法,但是您需要运行自己的 webhook 服务器并使用您喜欢的数据库。您可以使用每个平台附带的唯一聊天 ID 来永久存储信息。我将根据自己的答案进行更多解释。
    猜你喜欢
    • 2013-01-28
    • 2017-02-03
    • 2018-01-10
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 2021-07-03
    • 1970-01-01
    相关资源
    最近更新 更多