如何在google助手的上下文未定义问题中修复参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在google助手的上下文未定义问题中修复参数相关的知识,希望对你有一定的参考价值。

我在上下文中获取参数时遇到问题。

例如,我有2个意图,如“问题意图”和“答案意图”。

在问题Intent中,我在上下文中传递了具有生命周期的参数但在Answer Intent中我得到的上下文是未定义的。

注意:它在开发版本中运行良好,一旦我部署到生产中,这个问题就出现了。

这是代码:

问题意图:

var conv = agent.conv();
conv.ask("What's your age?");

let context = {'name':'data_req','lifespan':'5','parameters':{'userid':12,'country':'IN'}}; 

agent.context.set(context);
agent.add(conv)

答案意图:

var conv = agent.conv();
let context = agent.context.get('data_req');
let userid = context.parameters['userid'];

我在上下文中获取参数是未定义的

答案

关于上下文的一些问题:

  1. 你有没有试过Google Codelabs上的动作? (level onelevel twolevel three
  2. 你在学习任何类型的教程吗?

我问,因为我很好奇为什么你将conv对象存储在它自己的变量中,我没有看到Dialogflow .intent()方法来处理你的意图。我熟悉的样本实现看起来像......

'use strict';


// Import the Dialogflow module and response creation dependencies from the
// Actions on Google client library.

const {
  dialogflow,
  Permission,
  Suggestions,
  BasicCard,
  List,
  Image
} = require('actions-on-google');


// Import the firebase-functions package for deployment.

const functions = require('firebase-functions');


// Instantiate the Dialogflow client.

const app = dialogflow({debug: true});


// Handle the Dialogflow intent named 'Default Welcome Intent'.

app.intent('Default Welcome Intent', (conv) => {
  conv.ask(`Hey, welcome to the Greeting Card Store! You can browse and buy handmade cards, available to ship anywhere in the contiguous United States. What kind of card are you looking for?`);
  conv.ask(new Suggestions('Birthday', 'Romantic'));
});


// Handle the Dialogflow intent named 'favorite color'.
// The intent collects a parameter named 'color'.

app.intent('favorite color', (conv, {color}) => {
    const luckyNumber = color.length;
    // Respond with the user's lucky number and end the conversation.
    conv.close('Your lucky number is ' + luckyNumber);
});


// Set the DialogflowApp object to handle the HTTPS POST request.

exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

以上是关于如何在google助手的上下文未定义问题中修复参数的主要内容,如果未能解决你的问题,请参考以下文章

Google Analytics(pageTracker未定义)修复

全局助手正在覆盖流星车把模板中的本地上下文

将 Rails 代码从控制器移动到助手时如何修复它?

如何修复自定义模块中的“未定义变量”

如何在 Codeigniter 中使用 JQuery 修复未定义的 url

我的腾讯手游助手软件在电脑里显示是全白色,是啥问题如何修复?