在 javascript 中为对话流设置上下文的正确方法
Correct way to set context in javascript for dialogflow
我一直在努力在 javascript 中为 dialogflow webhook 设置输出上下文,尽管我尝试了很多示例,但我发现无论我尝试什么,我都会在 DialogFlow 中得到一个 "Failed to parse" .这是最新的尝试:
const app = dialogflow({debug: true});
...
app.intent('YesNo', (conv) => {
if (numberOfRounds < 5){
conv.ask("Ny fråga?");
++numberOfRounds;
conv.setContext({
"name": 'yesnoexpected',
"lifespan": 1,
"parameters":{"param": "param value"}
});
} else {
我确定该错误与上下文对象有关,因为如果我将其删除,则不会出现解析错误,尽管功能当然不是预期的那样。但是错误在哪里呢?
您正在使用 JSON 表示法设置上下文,但这不受 google 库上的操作支持。如果你想在 webhook 中设置上下文,你应该使用 Javascript 对象来完成它,像这样:
conv.contexts.set("ContextName", 5, {contextString: "Value", contextNumber: 1});
然后您可以像这样从之前设置的上下文中获取参数:
const context = conv.contexts.get("ContextName");
const parameter = context.parameters.contextString;
我一直在努力在 javascript 中为 dialogflow webhook 设置输出上下文,尽管我尝试了很多示例,但我发现无论我尝试什么,我都会在 DialogFlow 中得到一个 "Failed to parse" .这是最新的尝试:
const app = dialogflow({debug: true});
...
app.intent('YesNo', (conv) => {
if (numberOfRounds < 5){
conv.ask("Ny fråga?");
++numberOfRounds;
conv.setContext({
"name": 'yesnoexpected',
"lifespan": 1,
"parameters":{"param": "param value"}
});
} else {
我确定该错误与上下文对象有关,因为如果我将其删除,则不会出现解析错误,尽管功能当然不是预期的那样。但是错误在哪里呢?
您正在使用 JSON 表示法设置上下文,但这不受 google 库上的操作支持。如果你想在 webhook 中设置上下文,你应该使用 Javascript 对象来完成它,像这样:
conv.contexts.set("ContextName", 5, {contextString: "Value", contextNumber: 1});
然后您可以像这样从之前设置的上下文中获取参数:
const context = conv.contexts.get("ContextName");
const parameter = context.parameters.contextString;