Отправка начального пустого сообщения вызывает событие welcome
в диалоговом окне.
Чтобы заставить его делать что-то другое, вы можете установить некоторую переменную в контексте и добавить условие для этой переменной, чтобы приветствовать переход в диалоге.
Вот как я реализовал это в своем боте:
function handleHelloEvent(bot, message) {
message.type = 'welcome';
const contextDelta: any = {};
if (message.intent) {
contextDelta.initialIntent = message.intent;
}
//more fields here
watsonMiddleware.sendToWatsonAsync(bot, message, contextDelta).catch((error) => {
message.watsonError = error;
}).then(() => {
//this is the same function which handles message_received events
return handleWatsonResponse(bot, message);
});
}
function handleWatsonResponse(bot, message) {
bot.reply(message, message.watsonData.output.text.join('\n'));
}
controller.on('hello', handleHelloEvent);
controller.on('message_received', handleWatsonResponse);
hello
Событие специфично для веб-чата / боткита где угодно, вам может потребоваться обрабатывать разные события для разных платформ.
Похожеепример приветственного события обработки кода: https://github.com/watson-developer-cloud/botkit-middleware/#dynamic-workspace
(я тоже это написал, поэтому он слишком похож).
Пример диалога: ![enter image description here](https://i.stack.imgur.com/SUMB9.png)