Как я могу вызвать диалог в Watson Conversation? - PullRequest
0 голосов
/ 23 октября 2018

Мне нужно вызвать определенный диалог в разговоре ibm-watson, но без просьбы пользователя напечатать что-нибудь (например, намерение).Мне нужно использовать Botkit, чтобы начать конкретный диалог.Это возможно?Я ищу всю возможную документацию и ссылки в Google, но не успешно: /

1 Ответ

0 голосов
/ 23 октября 2018

Отправка начального пустого сообщения вызывает событие 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

...