Виртуальный помощник
Машинопись
Когда вы запускаете диалог, а затем запускаете навык из этого диалога, он не регистрируется должным образом в стеке. Когда пользователь использует прерывание «отмена», умение никогда не получает сброса окончания разговора.
Создайте VA и навык. начните умение из диалогового окна «Посадка VA». Попробуйте отменить умение, используя прерывание, и проверьте, получает ли умение конец разговора
Стек диалогов от навыка, запущенный во вспомогательном диалоге
[{id: 'MainDialog',
состояние: {параметры: {}, значения: [Объект], stepIndex: 1}},
{id: 'TextPrompt', состояние: {параметры: [Объект], состояние: {}}},
{id: 'TransferDialog2',
состояние: {диалоги: [Объект]},
версия: '-43530585'}]
диалоговый стек навыков, запущенный из основного диалога
[{id: 'MainDialog',
состояние: {параметры: {}, значения: [Объект], stepIndex: 2}},
{id: 'dlpskill', состояние: {}}]
Спасибо @ tomSauret847 за сообщение об этой проблеме! Как только у нас появятся какие-либо обновления, мы вернемся к вам 😊.
Привет, @ tomSauret847! Нам не удалось воспроизвести эту проблему.
У нас есть несколько вопросов относительно ваших шагов по воспроизведению.
TransferDialog2
? Это синоним onboardingDialog
?Мы заметили , что есть подтверждение в interruptDialog
метода MainDialog В.А., в том , что только переключается на другой навык , если текущий диалог принадлежит навыку.
В случае onboardingDialog
возвращается false, следовательно, запуск образца навыка не прерывается.
Это наша среда:
Мы предприняли следующие шаги, чтобы воспроизвести проблему:
onboardingDialog
VAonboardingDialog
не был завершенСпасибо!
В настоящее время у нас настроен перенос живого агента как навык, позволяющий перейти к действующему агенту, если бот не может решить проблему с клиентами (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 , мы хотим подтвердить , что мы правильно поняли проблему.
Основываясь на том, что вы сказали в своем последнем комментарии, мы будем работать над воссозданием следующего сценария:
onboardingDialog
VA так, чтобы он вызывал образец навыков. Мы будем основывать наши модификации на общем фрагменте.Вот как понял, что такое ваш рабочий процесс.
Спасибо @VictorGrycuk. Это правильный рабочий процесс сценария, который мы реализуем. Мы можем заставить навык работать правильно во время разговора, но когда клиент отменяет, навык не сбрасывается, так как он никогда не получает End Of Conversation.
Самый полезный комментарий