Bot Framewok Composer - "Заменить это диалоговое окно" вызывает ошибку 400
Я создаю своего первого чат-бота с помощью Bot Framework Composer, и мне не удается создать очень простой сценарий.
Я глубоко просмотрел документацию по Bot Framework Composer, но не нашел ничего полезного.
Детский сценарий, которого я хочу достичь:
- Бот спрашивает / подсказывает 'Says something plz'
- Пользователь отвечает / вводит строку, например, anAnswer
- Боты говорят:"Вы сказали" ответ ", это правильно?"
- Типы пользователей "да" или "нет"
- если пользователь ввел "да": конец диалога
- если пользователь ввел "нет": повторите этот диалог
Проблемы, с которыми я сталкиваюсь:
1. "Повторить этот диалог" работает не так, как я ожидал.
Эмулятор мне постоянно говорит:"Обнаружен рекурсивный цикл, AdaptiveDialog не может повториться дважды за один ход"
Я попытался включить "Разрешить цикл" на "Истина", но, похоже, получился бесконечный цикл (хотя я не знаю, как это проверить...)
См. Параметры "Повторить диалог" здесь
Надо ли что-то добавить в "Параметры" действия "Повторить диалог"? Например, где цикл должен начинаться? Если да, то как это сделать?
2. Как использовать "Заменить этот диалог" уже использованным сценарием?
Поскольку мне не удалось выполнить действие "Повторить диалог", я попытался разрезать весь диалог пополам, разделив его на два диалога. У каждого диалога одна цель:
- первый сценарий - запрос информации у пользователя
- второй сценарий - запрос подтверждения у пользователя
См. Диалоговое окно "Запросить информацию" здесь
См. Диалоговое окно "Подтверждение" здесь
Первоначальной целью было "перенаправить" пользователя к диалоговому окну "Запросить информацию", когда он хотел отредактировать то, что напечатал ранее.
Но здесь это приводит к ошибке: POST400directline/conversations/<conversationId>/activities
Здесь снова есть несколько возможных "опций" для действия "Заменить диалог", но я не нашел ничего в документации по этому поводу.
Большое спасибо за помощь новичку, я с радостью попробую решения, которые вы мне предложите, и оставлю свой отзыв.
Хорошего дня,
PS: Вы знаете хороший учебник по Bot Framework Composer (кроме Microsoft?)
0 ответов
Перед использованием действия Повторить диалог необходимо очистить переменную, в которой хранится ответ пользователя. Причина зацикливания заключается в том, что у бота уже есть ответ в памяти, поэтому он больше не запрашивает пользователя.
используйте действие "Установить свойство" и установите для переменной значение null перед повторением диалога