javascript - 无法在 Dialogflow 中存储下一轮对话的变量列表
问题描述
我真的很希望能够存储一个数组,其中包含在对话期间获得的字符串变量,以便在下一轮对话中检索,以便能够比较旧数组和新数组。即使我专门将数组的所有项添加到新数组中,它也会在下一轮对话中被清除。
谢谢。
这是我目前的功能:
function game(agent, parameters) {
var suitcase = agent.parameters.objecten;
var oldsuitcase = agent.parameters.oldsuitcase;
if (suitcase.length > 1) {
if (suitcase.splice(-1,1) != oldsuitcase) {
agent.add('Helaas, je hebt niet de juiste objecten genoemd. Ik heb gewonnen! Volgende keer beter.');
return;
}
}
var items = [ "paspoort", "visum", "bankpas", "creditcard", "geld", "adressenlijst", "rijbewijs", "toiletspullen", "zonnebrandcrème", "shampo", "douchegel", "tandenstokers", "badlaken", "washandje", "handdoek", "deodorant", "maandverband", "nagelschaar", "tandenborstel", "tandpasta", "zakdoeken", "paracetamol", "medicijnen", "neusdruppels", "pleisters", "klamboe", "slippers", "broek", "rok", "jurk", "blouse", "shirt", "sokken", "onderbroek", "badpak", "zwembroek", "schoenen", "sandalen", "waterschoenen", "pet", "hoed", "zonnebril", "pyjama", "bril", "lenzenvloeistof", "horloge", "portemonnee", "brillenkoker", "tas", "sleutels", "boek", "tijdschrift", "spel", "pen", "zaklamp", "speelgoed", "zakmes", "schrijfpapier", "telefoon", "telefoonlader", "tablet", "camera", "reiswekker", "selfiestick", "reisgids", "chocola", "muggenlamp", "gitaar" ];
var newitem = agent.parameters.objecten[0];
while (suitcase.includes(newitem)) {
newitem = items[Math.floor(Math.random()*items.length)];
}
for (var i = 0; i < suitcase.length; i++) {
oldsuitcase.push(suitcase[i]);
}
suitcase.push(newitem);
oldsuitcase.push(newitem);
agent.add(oldsuitcase);
agent.add('Ik ga op vakantie en ik neem mee:' + suitcase);
}
解决方案
在以下问题中查看我的答案。
你可以像这样存储它
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;
使用 lifespan 值以使其在会话中保持有效。
推荐阅读
- asterisk - 星号,键在后台命令上不起作用,就在后台之后
- html - 只有在 ipad 上的 safari 上刷新时才会显示背景图像
- lua - lua lgi 订阅 DBus 信号
- yii - 漂亮的 url 没有在 Yii2 中重定向
- java - java.lang.ClassNotFoundException,命令行制作问题和 bash 脚本
- python - 性能监控工具 vs 进程状态 (ps) 命令
- python - 查找列表中的所有键簇
- java - 如何使用 ffmpeg 在 java 程序中获取视频的持续时间?
- database - 在 Oracle 数据库中创建一种新类型的对象
- javascript - qTip2 - 在更改工具提示的内容后调用函数