Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actions on google 我能';不要触发我对谷歌助手的第二个动作_Actions On Google - Fatal编程技术网

Actions on google 我能';不要触发我对谷歌助手的第二个动作

Actions on google 我能';不要触发我对谷歌助手的第二个动作,actions-on-google,Actions On Google,我一直在玩弄actions sdk,它似乎很有效,但只是为了我的主要目的。我添加了第二个意图,但它从未触发 以下是我的action.json: { "actions": [ { "description": "Default Welcome Intent", "name": "MAIN", "fulfillment": { "conversationName": "conversation_1" }, "in

我一直在玩弄actions sdk,它似乎很有效,但只是为了我的主要目的。我添加了第二个意图,但它从未触发

以下是我的action.json:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "conversation_1"
      },
      "intent": {
        "name": "actions.intent.MAIN"
      }
    },
    {
      "name": "add",
      "intent": {
        "name": "myintent.ADD",
        "parameters": [
          {
            "name": "somenumber",
            "type": "SchemaOrg_Number"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "add $SchemaOrg_Number:somenumber",
            "add"
          ]
        }
      },
      "fulfillment": {
        "conversationName": "add"
      }
    }
  ],
  "conversations": {
    "conversation_1": {
      "name": "conversation_1",
      "url": "https://myaddress/sayNumber",
      "fulfillmentApiVersion": 2
    },
    "add": {
      "name": "add",
      "url": "https://myaddress/sayNumber",
      "fulfillmentApiVersion": 2
    }
  }
}
这是我的index.js:

'use strict';

process.env.DEBUG = 'actions-on-google:*';

const ActionsSdkApp = require('actions-on-google').ActionsSdkApp;
const functions = require('firebase-functions');

const NO_INPUTS = [
  'I didn\'t hear that.',
  'If you\'re still there, say that again.',
  'We can stop here. See you soon.'
];

exports.sayNumber = functions.https.onRequest((request, response) => {
  const app = new ActionsSdkApp({request, response});

  function mainIntent (app) {
    console.log('mainIntent');
    let inputPrompt = app.buildInputPrompt(true, '<speak>Hi! <break time="1"/> ' +
      'I can read out an ordinal like ' +
      '<say-as interpret-as="ordinal">123</say-as>. Say a number.</speak>', NO_INPUTS);
    app.ask(inputPrompt);
  }
 function addIntent (app) {
    console.log('addIntent');
    let inputPrompt = app.buildInputPrompt(true, '<speak>Hi! <break time="1"/> ' +
      'I can add.</speak>', NO_INPUTS);
    app.ask(inputPrompt);
  }
  function rawInput (app) {
    console.log('rawInput');
    if (app.getRawInput() === 'bye') {
      app.tell('Goodbye!');
    } else {
      let inputPrompt = app.buildInputPrompt(true, '<speak>You said, <say-as interpret-as="ordinal">' +
        app.getRawInput() + '</say-as>'+app.getIntent()+'</speak>', NO_INPUTS);
      app.ask(inputPrompt);
    }
  }

  let actionMap = new Map();
  actionMap.set(app.StandardIntents.MAIN, mainIntent);
  actionMap.set(app.StandardIntents.TEXT, rawInput);
  actionMap.set("myintent.ADD", addIntent);

  app.handleRequest(actionMap);
});
“严格使用”;
process.env.DEBUG='谷歌上的操作:';
const ActionsSdkApp=require('actions-on-google')。ActionsSdkApp;
const functions=require('firebase-functions');
常数无输入=[
“我没听见。”,
“如果你还在,就再说一遍。”,
“我们可以到此为止。再见。”
];
exports.sayNumber=functions.https.onRequest((请求,响应)=>{
const-app=new-ActionsSdkApp({request,response});
功能mainIntent(应用程序){
console.log('maintent');
让inputPrompt=app.buildInputPrompt(true,'Hi!'+
“我能读出像这样的序数”+
“123.说一个数字。”,没有输入);
应用程序询问(输入提示);
}
功能补充(应用程序){
console.log('addIntent');
让inputPrompt=app.buildInputPrompt(true,'Hi!'+
“我可以添加。”,没有输入);
应用程序询问(输入提示);
}
函数输入(应用程序){
console.log('rawInput');
如果(app.getRawInput()=='bye'){
app.tell(‘再见’);
}否则{
让inputPrompt=app.buildInputPrompt(对,'你说,'+
app.getRawInput()+“”+app.getIntent()+“”,无输入);
应用程序询问(输入提示);
}
}
让actionMap=newmap();
actionMap.set(app.StandardIntents.MAIN,mainIntent);
actionMap.set(app.StandardIntents.TEXT,rawInput);
actionMap.set(“myintent.ADD”,addIntent);
应用程序HandlerRequest(行动地图);
});

我可以说
与我的动作名称交谈
,然后我在那之后所说的一切都会作为原始输入处理,即使我使用
添加
关键字。我做错了什么

没错。
actions.json
包仅定义用户如何使用您的操作,您被传递了文本(或选项)意图,您需要自己处理自然语言处理。其他意图可用于,但不用于解析响应

这与其他一些语音代理处理语言解析的方式不同。如果您已经有了自己的NLP,那么Actions SDK主要是为您设计的


如果您不这样做,您最好使用Dialogflow或匡威.AI。

非常感谢您提供的信息。我现在正在研究Dialogflow,因为它似乎更适合我想做的事情。