【发布时间】:2020-11-09 16:42:02
【问题描述】:
我在 Dialogflow 中使用开放式响应,即应用提出问题,用户输入响应,然后系统提出另一个问题。
考虑场景,用户输入:启动器很棒。没有这样的训练短语来匹配这个响应,所以它进入了默认的回退意图。我在 webhook 中处理这个请求,所以我需要这个用户的响应,以便它可以存储到数据库中。
我怎样才能得到这个回复?
更新: 使用 queryResult.queryText 后,我收到此错误: 错误:未设置响应。这是否在未作为对意图处理程序的承诺返回的异步调用中使用?在 DialogflowConversation.response (/srv/node_modules/actions-on-google/dist/service/actionssdk/conversation/conversation.js:237:19) 在 DialogflowConversation.serialize (/srv/node_modules/actions-on-google/dist/ service/dialogflow/conv.js:160:129)在功能。 (/srv/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:173:28) 在 Generator.next () 完成时 (/srv/node_modules/actions-on-google/dist/service/ dialogflow/dialogflow.js:19:58) at process._tickDomainCallback (internal/process/next_tick.js:229:7)
默认后备意图的代码是这样的:
app.intent('Default Fallback Intent', (conv) => {
senddata[check_fallback] = queryResult.queryText;
conv.add(queryResult.queryText); //just for confirmation
conv.ask(qstion[2]);
});
更新 2:
代码流程:如果用户使用任何开放式响应进行响应,它将转到默认后备意图。代码如下:
//这是用户输入开放式响应的代码
app.intent('Answer3', (conv) => {
const logout = conv.parameters.logout_survey;
const help = conv.parameters.help_survey;
if(help === 'can you help me' || help === 'help' || help === 'help me'){
checkhelp_logout = "help";
flag_log_help = 4;
conv.ask('Would you like some help?');
}
else if(logout === 'logout'){
checkhelp_logout = "logout";
flag_log_help = 4;
conv.ask('Did you say logout?');
}
});
//这是处理开放式响应的代码
app.intent('Default Fallback Intent', (conv) => {
senddata[2] = conv.body.originalDetectInetntRequest.payload.queryResult.queryText;
//The following code is just for confirmation that what user enters the same response is stored
conv.add(conv.body.originalDetectInetntRequest.payload.queryResult.queryText;)
conv.ask(qstion[3]);
});
以下是错误:
错误:未设置响应。这是否在未作为对意图处理程序的承诺返回的异步调用中使用?在 DialogflowConversation.response (/srv/node_modules/actions-on-google/dist/service/actionssdk/conversation/conversation.js:237:19) 在 DialogflowConversation.serialize (/srv/node_modules/actions-on-google/dist/ service/dialogflow/conv.js:160:129)在功能。 (/srv/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:173:28) 在 Generator.next () 完成时 (/srv/node_modules/actions-on-google/dist/service/ dialogflow/dialogflow.js:19:58) at process._tickDomainCallback (internal/process/next_tick.js:229:7)
【问题讨论】:
-
欢迎来到 StackOverflow!如果您在问题中包含您尝试使用的代码、您遇到的任何错误以及任何其他可能有助于我们帮助您的信息,这将对我们有很大帮助。您提供的信息越多越好。见How do I ask a good question?
标签: node.js dialogflow-es actions-on-google