Я использую https://github.com/dialogflow/dialogflow-fulfillment-nodejs, чтобы создать веб-крюк для диалогового процесса.
В настоящее время у меня есть намерение иметь 1 обязательный параметр с приглашением (поэтому агент задаст конкретный вопрос для этого параметра) и разрешить вызов webhook для этого намерения.
В webhook я проверяю параметр, если этот параметр действителен (вызов внешнего API или что-то еще), тогда я вызову setFollowupEvent
, чтобы перейти к другому намерению. Но если параметр недействителен, я вызову setFollowupEvent
, чтобы вернуться к этому намерению, поэтому пользователь должен будет ввести его снова. Но я хочу дать пользователю причину, по которой этот параметр недействителен.
код примерно такой
function registerUserStartHandler(agent) {
let payload = request.body.originalDetectIntentRequest.payload;
let senderDetail = getSenderDetail(payload);
return isUserRegistered(senderDetail.senderId, senderDetail.platformType).then((res) => {
if (res) {
agent.add('User already registered, enter another user');
//register_user_ask_user is this same intent (so I just returned to current intent if failed)
agent.setFollowupEvent('register_user_ask_user');
} else {
agent.setFollowupEvent('register_user_ask_other_info');
}
return Promise.resolve();
})
}
Но в настоящее время диалоговый поток вернет пользователю сообщение с подсказкой, которое я определил для этого обязательного параметра, а не сообщение о причине.
Как заменить это приглашение на мое сообщение от webhook?