У меня есть простой бот для ответа на вопросы, основанный на шаблоне V4, у меня есть приглашение, запрашивающее пароль, если пароль неверный, он повторяет запрос, снова спрашивая.
Работает нормально, пока я не добавлю вводчтобы дать пользователю некоторую обратную связь во время ожидания, в этом случае retryPrompt больше не показывает текст (но он все еще работает, если вы введете правильный пароль, он будет работать как положено)
В этот моментЯ не уверен, что делаю что-то не так или просто нажал на ошибку.
Я пытался создать подсказку различными способами и создать операцию ввода текста в диалоге, но мне не повезло.
Подсказка аутентификации внутри диалогового окна:
var promptOptions = new PromptOptions
{
RetryPrompt = MessageFactory.Text("Incorrect password. Please try again."),
Prompt = MessageFactory.Text("Please, enter the password")
};
return await stepContext.PromptAsync("LoginPrompt", promptOptions, cancellationToken);
Код действия при наборе:
public override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken)
{
var activity = turnContext.Activity;
Activity isTypingActivity = activity.CreateReply();
isTypingActivity.Type = ActivityTypes.Typing;
await turnContext.SendActivityAsync(isTypingActivity);
await base.OnTurnAsync(turnContext, cancellationToken);
// Save any state changes that might have occured during the turn.
await _conversationState.SaveChangesAsync(turnContext, false, cancellationToken);
await _userState.SaveChangesAsync(turnContext, false, cancellationToken);
}
Ожидаемый результат:
Bot-> Пожалуйста, введитепароль
Пользователь-> Неверный пароль
Б-> Неверный пароль.Пожалуйста, попробуйте еще раз.
U-> CorrectPassword
B-> Welcome
Фактический результат:
B-> Пожалуйста, введите пароль
U-> WrongPassword
U->RandomPassword
U-> ¿Вы сломаны?
U-> CorrectPassword
B-> Welcome
Я получу ожидаемый результат, если удаляю код активности набора текста, так что это выглядит такКод предотвращает отправку или показ RetryPrompt.Но я понятия не имею, что происходит.