Botframework-solutions: Невозможно правильно завершить навык, когда пользователь отменяет, когда навык запускается из вспомогательного диалога в VA

Созданный на 1 июн. 2020  ·  16Комментарии  ·  Источник: microsoft/botframework-solutions

Какой проект затронут?

Виртуальный помощник

На каком это языке?

Машинопись

Что происходит?

Когда вы запускаете диалог, а затем запускаете навык из этого диалога, он не регистрируется должным образом в стеке. Когда пользователь использует прерывание «отмена», умение никогда не получает сброса окончания разговора.

Как воспроизвести эту проблему?

Создайте VA и навык. начните умение из диалогового окна «Посадка VA». Попробуйте отменить умение, используя прерывание, и проверьте, получает ли умение конец разговора

Чего вы ожидали?

Можете ли вы поделиться журналами, выводом ошибок и т. Д.?

Стек диалогов от навыка, запущенный во вспомогательном диалоге
[{id: 'MainDialog',
состояние: {параметры: {}, значения: [Объект], stepIndex: 1}},
{id: 'TextPrompt', состояние: {параметры: [Объект], состояние: {}}},
{id: 'TransferDialog2',
состояние: {диалоги: [Объект]},
версия: '-43530585'}]

диалоговый стек навыков, запущенный из основного диалога
[{id: 'MainDialog',
состояние: {параметры: {}, значения: [Объект], stepIndex: 2}},
{id: 'dlpskill', состояние: {}}]

Какие-нибудь скриншоты или дополнительный контекст?

Needs Triage Bug

Самый полезный комментарий

Все 16 Комментарий

Спасибо @ tomSauret847 за сообщение об этой проблеме! Как только у нас появятся какие-либо обновления, мы вернемся к вам 😊.

Привет, @ tomSauret847! Нам не удалось воспроизвести эту проблему.

У нас есть несколько вопросов относительно ваших шагов по воспроизведению.

  • Вы используете [email protected] ?
  • Активируете ли вы Навык, посылая высказывание во время
  • Вы обновили VA, чтобы передать намерение навыку? Если да, то какие изменения вы внесли в него?
  • Что вы имеете в виду с TransferDialog2 ? Это синоним onboardingDialog ?

Мы заметили , что есть подтверждение в interruptDialog метода MainDialog В.А., в том , что только переключается на другой навык , если текущий диалог принадлежит навыку.
В случае onboardingDialog возвращается false, следовательно, запуск образца навыка не прерывается.

Это наша среда:

Мы предприняли следующие шаги, чтобы воспроизвести проблему:

  1. Развертывание виртуального помощника и навыков
  2. Подключите виртуального помощника к навыку
  3. Запустите обоих ботов в эмуляторе ботов.
  4. Отправить высказывание Навыка во время onboardingDialog VA
  5. Навык не был инициализирован, так как onboardingDialog не был завершен

image

Спасибо!

В настоящее время у нас настроен перенос живого агента как навык, позволяющий перейти к действующему агенту, если бот не может решить проблему с клиентами (TransferDialog2). Нам нужно выполнить некоторую проверку, чтобы гарантировать, что клиент переведен в правильную очередь чата, поэтому мы встроили это в диалоговое окно, подобное диалоговому окну подключения. Я вызываю навык передачи агента с помощью следующего кода в диалоговом окне передачи.

    const identifiedSkill: IEnhancedBotFrameworkSkill | undefined = this.skillsConfig.skills.get('agenttransfer');
    if (identifiedSkill !== undefined) {
        await this.activeSkillProperty.set(sc.context, identifiedSkill);
        return sc.beginDialog('agenttransfer', skillDialogArgs);

VA запустит навык и перешлет все сообщения клиентов навыку, но если клиент вызовет прерывание «Отменить диалог», VA не отправит конец разговора навыку, чтобы мы могли очистить и завершить навык. Вы воспроизвели шаги, но не отменили навык при воспроизведении. Вот где наша проблема заключается в том, чтобы получить EOC в навыке, чтобы очистить использованные ресурсы и закрыть их.

Я использую TypeScript VA
Навыки TypeScript
Я обновил оба на основе изменений, которые были опубликованы в «следующей» ветке репо, чтобы убедиться, что они актуальны.
Навык запускается и работает правильно, он просто не получает EOC, когда клиент выбирает отмену из всех активных диалогов.

Спасибо @ tomSauret847 за всю информацию 😊.
Мы продолжим воспроизводить проблему и сообщим вам обо всех обновлениях.

@ tomSauret847 , мы хотим подтвердить , что мы правильно поняли проблему.

Основываясь на том, что вы сказали в своем последнем комментарии, мы будем работать над воссозданием следующего сценария:

  1. Создать образец виртуального помощника
  2. Создать образец навыков
  3. Измените onboardingDialog VA так, чтобы он вызывал образец навыков. Мы будем основывать наши модификации на общем фрагменте.
  4. Отправить отмену после запуска образца навыка
  5. Отмена образца навыка должна завершиться неудачей

Вот как понял, что такое ваш рабочий процесс.
image

Спасибо @VictorGrycuk. Это правильный рабочий процесс сценария, который мы реализуем. Мы можем заставить навык работать правильно во время разговора, но когда клиент отменяет, навык не сбрасывается, так как он никогда не получает End Of Conversation.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги