Многооборотная функция - это функция, которую можно включить на портале qnamaker.ai, однако ваш бот по-прежнему отвечает за обработку сообщений, на которых есть карточки с прикрепленными кнопками.
- Итак включение многооборотного режима на портале позволит вашему вызову API
generateanswer
возвращать ответы с объектом "context
", включающим значения prompts
. - Шаг 2 - убедиться, что Ваш помощник имеет код для создания карт. Вы должны обрабатывать, когда вы хотите, чтобы карты были сгенерированы
Вы можете найти пример бота, реализующего многооборотные приглашения в репо botbuilder samples
, 70.qnamaker-multiturn-sample
. Фрагмент, в котором он строит карту, я опубликую ниже, но я бы посоветовал перейти непосредственно к образцу, чтобы посмотреть на логи c вокруг него, чтобы понять, когда вы действительно хотите отправить сообщение с картой. (они делают это, отправляя карты только при наличии context
и prompt
- вы можете настроить его так, как вам нужно для вашего бота).
/// <summary>
/// Get multi-turn prompts card.
/// </summary>
/// <param name="result">Result to be dispalyed as prompts.</param>
/// <returns>IMessageActivity.</returns>
private static IMessageActivity GetQnAPromptsCardWithoutNoMatch(QueryResult result)
{
if (result == null)
{
throw new ArgumentNullException(nameof(result));
}
var chatActivity = Activity.CreateMessageActivity();
chatActivity.Text = result.Answer;
var buttonList = new List<CardAction>();
// Add all prompt
foreach (var prompt in result.Context.Prompts)
{
buttonList.Add(
new CardAction()
{
Value = prompt.DisplayText,
Type = "imBack",
Title = prompt.DisplayText,
});
}
var plCard = new HeroCard()
{
Buttons = buttonList
};
// Create the attachment.
var attachment = plCard.ToAttachment();
chatActivity.Attachments.Add(attachment);
return chatActivity;
}
Я не смотрел на Виртуальный Ассистентские решения проектируются через некоторое время, но я бы сказал, проверьте, чтобы убедиться, что у них нет многоуровневого диалога QnA, чтобы убедиться, что это проблема, и если так, посмотрите на многооборотный пример qna, чтобы увидеть пример того, как вы можете редактировать ваш VA, чтобы включить обработку многооборотных запросов.