Actions on google 我能';不要触发我对谷歌助手的第二个动作
我一直在玩弄actions sdk,它似乎很有效,但只是为了我的主要目的。我添加了第二个意图,但它从未触发 以下是我的action.json: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": [
{
"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,因为它似乎更适合我想做的事情。