如何在Dialogflow中的对话之间保存数据?

时间:2018-07-25 14:29:28

标签: firebase dialogflow

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

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

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

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

但是如何将数据放入响应中的sessionToken中?

您的方法是什么?谢谢

2 个答案:

答案 0 :(得分:8)

使用输出上下文保存参数

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

如果您使用的是NodeJS client

您可以使用类似参数的上下文来保存

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

并得到它

Index.html

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

此外,如果您使用的是独立的Google行动,则只需将键值对添加到数据对象即可。看到link他们存储计数的地方

答案 1 :(得分:0)

此外,如果您想根据需要标记这些参数并使用广告位填充,则会在实现期间自动生成您的输出上下文。您可以通过以下基本示例查看此内容:https://github.com/dialogflow/fulfillment-slot-filling-nodejs