Альтернатива методу триггерного действия - PullRequest
0 голосов
/ 20 июня 2019

В платформе бота v3 прерывания LUIS обрабатывались с использованием метода триггерного действия. Какую альтернативу использовать в фреймворке ботов v4 node.js?

1 Ответ

0 голосов
/ 21 июня 2019

Пожалуйста, посмотрите на образец 13.core-bot от Botbuilder-Samples GitHub repo .

По сути, у вас есть диалог «Отмена», который прослушивает прерывания. Затем вы расширяете другие диалоги из диалога «Отмена». Это позволяет извлекать пользовательские операторы, помеченные как прерывания (например, help), и выполнять любую связанную логику. В этом случае await innerDc.context.sendActivity('[ This is where to send sample help to the user... ]'); отправляется как ответ help.

CancelAndHelpDialog:

class CancelAndHelpDialog extends ComponentDialog {
    async onBeginDialog(innerDc, options) {
        const result = await this.interrupt(innerDc);
        if(result) {
            return result;
        }
        return await super.onBeginDialog(innerDc, options);
    }
    async onContinueDialog(innerDc) {
        const result = await this.interrupt(innerDc);
        if(result) {
            return result;
        }
        return await super.onContinueDialog(innerDc);
    }
    async interrupt(innerDc) {
        const text = innerDc.context.activity.text.toLowerCase();
        switch(text) {
            case 'help':
            case '?':
                await innerDc.context.sendActivity('[ This is where to send sample help to the user... ]');
                return {
                    status: DialogTurnStatus.waiting
                };
            case 'cancel':
            case 'quit':
                await innerDc.context.sendActivity('Cancelling');
                return await innerDc.cancelAllDialogs();
        }
    }
}

BookingDialog, расширяющий CancelAndHelpDialog:

const { CancelAndHelpDialog } = require('./cancelAndHelpDialog');

class BookingDialog extends CancelAndHelpDialog {
  constructor(id) {
    super(id || 'bookingDialog');

    [...]
  }

  [...]
}

Надежда на помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...