У меня есть агент диалогового потока с 3 намерениями:
- Приветствие по умолчанию
- Резервное намерение по умолчанию
- Мое намерение
У моего намерения есть веб-хук Firebase для выполнения.Когда я вступаю в разговор с моим чат-ботом, я получаю Default Welcome Intent
.Но как только я задаю вопрос, который обрабатывается My Intent
, я, кажется, застрял в My Intent
, даже если после этого я скажу что-то вроде hello
.Как выйти из своего выполнения и очистить состояние, чтобы возобновить работу стандартного отступления и приветствия по умолчанию?Многие примеры выполнения, которые я видел, обрабатывают эти другие намерения в рамках пользовательского выполнения, что кажется неправильным, когда эти значения по умолчанию уже настроены.Другой пример: я включил SmallTalk
, и после того, как я задаю вопрос, заполненный My Intent
, я спрашиваю «сколько вам лет», это намерение запускает agent.smalltalk.age против My Intent
, что на самом деле не имеет смысла.
Код выполнения:
var https = require ('https');
const functions = require('firebase-functions');
const DialogFlowApp = require('actions-on-google').DialogFlowApp;
const WELCOME_INTENT= 'Default Welcome Intent';
const FALLBACK_INTENT = 'Default Fallback Intent';
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
let action = request.body.queryResult.action;
response.setHeader('Content-Type','applicaiton/json');
const parameters = request.body.queryResult.parameters;
console.log("action: " + action)
if (action === 'input.wifi'){
getClientCount(parameters['geo-city'], response);
}
});
function getClientCount(location, CloudFnResponse) {
var chat = "sample text";
CloudFnResponse.send(buildChatResponse(chat));
return;
});
});
}
function buildChatResponse(chat) {
return JSON.stringify({"fulfillmentText": chat});
}
Резервное намерение по умолчанию:
Желаемое намерение по умолчанию:
Мое намерение:
На последнем снимке экрана, пожалуйста, не обращайте внимания на флажок «конец разговора», который я пробовал, чтобы увидеть, как это изменило поведение, когдаЯ делал снимок экрана.