如何在Dialogflow中的对话之间保存数据? [英] How to save data between conversation in Dialogflow?

查看:81
本文介绍了如何在Dialogflow中的对话之间保存数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不明白您应该如何保存数据。
我尝试使用

I don't understand how you're supposed to save data. I tried using

let conv = agent.conv()
conv.data.data1=mydata //to save
mydata = conv.data.data1 //to load
agent.add(conv)

但它使我的应用程序崩溃。
我看到您可以将信息放入

but it crash my app. I saw that you could put info in

var token = JSON.stringify(request.body.originalDetectIntentRequest.payload.conversation.conversationToken);

但是如何在响应中将数据放入对话令牌中?

but how do you put data in conversationToken in the response?

您的方法是什么?谢谢

推荐答案

使用输出上下文保存参数

Use the output context to save parameters

{  
  "fulfillmentText":"This is a text response",
  "fulfillmentMessages":[  ],
  "source":"example.com",
  "payload":{  
    "google":{  },
    "facebook":{  },
    "slack":{  }
  },
  "outputContexts":[  
    {  
      "name":"<Context Name>",
      "lifespanCount":5,
      "parameters":{  
        "<param name>":"<param value>"
      }
    }
  ],
  "followupEventInput":{  }
}

如果您使用的是 NodeJS客户端

您可以使用以下参数保存上下文

You can save context with parameters like

let param1 = [];
let param2 = {};
let ctx = {'name': '<context name>', 'lifespan': 5, 'parameters': {'param1':param1, 'param2': param2}};
agent.setContext(ctx);

像这样获得它

let params = agent.getContext("<context name>").parameters;
let param1 = params.param1;
let param2 = params.param2; 

您可以存储数组,JSON obj,但是响应可以保存的总有效负载是有限的。在此处中查看更多详细信息。对于大数据,请使用DB。

You can store arrays, JSON obj but there is a limit to the total payload the response can save. check for more details here. For large data, use DB.

此外,如果您使用的是独立的Google行动,则只需将键值对添加到数据对象。请参见链接,在此它们存储计数

Also, if you are using standalone actions-on-google, then you can simply add key-value pair to the data object. See the link where they are storing a count

这篇关于如何在Dialogflow中的对话之间保存数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆