为了账号安全,请及时绑定邮箱和手机立即绑定

如何清除用户存储 (Dialogflow)

如何清除用户存储 (Dialogflow)

海绵宝宝撒 2023-11-12 22:06:43
我正在用户存储中存储一个值(在我的例子中是用户想要听到新闻的城市)。我希望用户能够改变这个城市,从而改变用户存储。我已经尝试了多种方法,但还没有成功,希望有人可以提供帮助。当用户选择更改城市时,将调用regio_kiezen意图。此意图询问您想要使用包含多个城市的名为regio 的实体来哪个城市。请参阅此意图的屏幕截图(顺便说一句:该事件是为调用此意图的另一个场景添加的):https://i.stack.imgur.com/5Q4Xi.png 我遇到的问题是它不断显示旧(第一组)城市的新闻。因此,看起来 conv.user.storage.regio 没有被更改。我不知道为什么会发生这种情况,希望有人可以提供帮助!提前致谢。
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

当在意图 2 中发生时,在意图 1 中看不到清除用户存储或更新。所做的工作是在 regio_kiezen 意图中创建一个新的用户存储变量。创建一个全局变量来存储该值。在 Regio 意图中检查该变量是否未定义,然后选择选择用户存储或创建的变量。我知道这可能不是很清楚,所以请看一下代码:


app.intent('regio_kiezen', (conv, params) => {

  console.log(`user1: ${conv.user.storage.regio}`);

  p = 0;

  r++;

  conv.user.storage.regio = '';  

  conv.user.storage.regio = params['regio'];

  test = conv.user.storage.regio;

  test2 = params['regio'];

  conv.user.storage.regio2 = test2;

  tert = conv.user.storage.regio2;

  console.log("testt: " + test + " test2: " + test2);

  console.log(`tert: ${conv.user.storage} en ${conv.user.storage.regio2} en ${tert}`);

  conv.followup('Regio');

  console.log("intent: regio kiezen intent");

  return tert;

});


app.intent('Regio', (conv) => {

  p++;

  console.log("regio intent");

  console.log(`tertt: ${conv.user.storage.regio2} en ${tert}`);

  //console.log("test: " + test + " test2: " + test2);

  console.log(`doebiedushi: ${conv.user.storage.regio}`);

  if (tert === undefined) {

    var regioo = conv.user.storage.regio;

  } else {

    var regioo = tert;

  }

  conv.ask(new Suggestions(['Regio veranderen', 'Meer nieuws']));

  return axios.get(`https:url/${regioo}`)

    .then((result) => { //rest of code

这有效并存储在会话和对话之间!


查看完整回答
反对 回复 2023-11-12
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信