Я использовал способ «без кода» для создания бота в Azure и подключил его к базе знаний QnA Maker.
Затем я изменил код, чтобы бот использовал AdaptiveCards вместо HeroCards для поддержки форматирования Markdown в канале MS Teams (формат, используемый QnA Maker).
Я пытаюсь добавить SubmitActions к этим адаптивным картам, когда из базы знаний поступают некоторые подсказки. Цель состоит в том, чтобы, если пользователь нажимает на данные SubmitActions, он автоматически отправляет сообщение обратно боту.
Ниже приведен код, который я реализовал:
// adaptive card creation
var plCardBis = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0));
plCardBis.Body.Add(new AdaptiveTextBlock()
{
Text = result.Answer,
Wrap = true
});
// Add all prompt
foreach (var prompt in result.Context.Prompts)
{
plCardBis.Actions.Add(new AdaptiveCards.AdaptiveSubmitAction()
{
Title = prompt.DisplayText,
Data = prompt.DisplayText
});
}
//create the the attachment
var attachmentBis = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = plCardBis
};
//add the attachment
chatActivity.Attachments.Add(attachmentBis);
return chatActivity;
Это прекрасно работает в WebChat. однако в командах, если я нажму на приглашение, он выдаст ошибку. Глядя на inte rnet, я обнаружил, что должен использовать объект для поля данных для команд вместо простой строки:
"data": {
"msteams": {
"type": "imBack",
"value": "Text to reply in chat"
},
}
Знаете ли вы, как я мог бы сделать это в C#? Как я могу обновить свой код, чтобы добавить этот объект в поле данных? Количество действий может варьироваться в зависимости от вопроса, заданного пользователем ...
Любая помощь будет принята с благодарностью