Боты и пакеты SDK

Вы можете создать бота, работающего в Microsoft Teams, с помощью одного из следующих инструментов или возможностей:

Боты с Microsoft Bot Framework

Ваш бот Teams состоит из следующих элементов:

  • Размещенная вами общедоступная веб-служба.
  • Регистрация Bot Framework для вашей веб-службы
  • Пакет вашего приложения Teams, который подключает клиент Teams к вашей веб-службе.

Совет

Используйте портал разработчика для регистрации веб-службы в Bot Framework и указания конфигурации приложения. Подробнее в разделе Управление приложениями с помощью портала разработчиков для Teams.

Bot Frameworkэто многофункциональный пакет SDK, используемый для создания ботов с использованием C#, Java, Python и JavaScript. Если у вас уже есть бот на базе Bot Framework, вы можете легко изменить его для работы в Teams. Используйте C# или Node.js, чтобы воспользоваться преимуществами наших пакетов SDK. Эти пакеты расширяют базовые классы и методы пакета SDK Bot Builder:

  • Используйте специализированные типы карта, такие как карта соединителя для Группы Microsoft 365.
  • Настройка данных каналов Teams для действий.
  • Обработка запросов на расширение для работы с сообщениями.

Вы можете разрабатывать приложения Teams с помощью любой технологии веб-программирования и напрямую вызывать API-интерфейсы REST Bot Framework. Во всех случаях необходимо выполнять обработку маркеров.

Боты с Power Virtual Agents

Power Virtual Agents — это служба чат-ботов, созданная на платформе Microsoft Power и Bot Framework. В процессе разработки Power Virtual Agent используется управляемый графический интерфейс без кода, который позволяет членам вашей команды легко создавать интеллектуальный виртуальный агент и управлять им. После создания чат-бота на портале Power Virtual Agents portal вы можете легко интегрировать его с Teams.. Подробнее о начале работы в разделе Документация по Power Virtual Agents..

Примечание.

Не следует использовать Microsoft Power Platform для создания приложений, которые будут опубликованы в Microsoft Teams Store. Приложения Microsoft Power Platform можно публиковать только в магазине приложений организации.

Боты с веб-перехватчиками и соединитетелями

Веб-перехватчики и соединители подключают бот к веб-службам. Используя веб-перехватчики и соединители, вы можете создать бот для базового взаимодействия, например для создания рабочего процесса или других простых команд. Они доступны только в команде, в которой вы их создаете, и предназначены для простых процессов, относящихся к рабочему процессу вашей компании. Подробнее в статьеЧто такое веб-перехватчики и соединители..

Преимущества ботов

Боты в Microsoft Teams могут быть частью личной беседы, группового чата или канала в команде. Каждая область предлагает уникальные возможности и задачи для вашего чат-бота

В канале В групповом чате В индивидуальном чате
Огромный охват Меньше участников Традиционный способ
Краткие индивидуальные взаимодействия @mention к боту Боты для вопросов и ответов
@mention к боту Похожий на канал Боты, которые рассказывают анекдоты и делают заметки

В канале

Каналы содержат потоковые беседы между несколькими людьми даже до 2000. Это потенциально дает вашему боту огромный охват, но отдельные взаимодействия должны быть краткими. Традиционные многоэтапные взаимодействия не работают. Вместо этого необходимо использовать интерактивные карточки или диалоги (называемые модулями задач в TeamsJS версии 1.x) или переместить беседу в беседу "один к одному" для сбора большого количества сведений. Ваш бот имеет доступ только к сообщениям, где это @mentioned. Вы можете получить дополнительные сообщения из беседы с помощью Microsoft Graph и разрешений на уровне организации.

Боты лучше работают в канале в следующих случаях:

  • Уведомления, где вы предоставляете пользователям интерактивную карту для получения дополнительной информации.
  • Сценарии обратной связи, такие как опросы и исследования.
  • Взаимодействия, решения которых можно получить в одном цикле из запроса и ответа, и результаты которых будут полезны для нескольких участников беседы.
  • Социальные или забавные боты, где вы получаете классное изображение кота, случайным образом выбираете победителя и так далее.

В групповом чате

Групповые чаты — это не потоковые беседы между тремя или более пользователями. Как правило, у них меньше участников, чем у канала, и они более временные. Как и в случае с каналом, бот имеет доступ только к сообщениям, где он находится @mentioned непосредственно.

Во всех случаях, когда боты лучше работают в канале, они также лучше работают в групповом чате.

В индивидуальном чате

Индивидуальный чат — это традиционный способ общения бота с пользователем. Вот несколько примеров диалоговых ботов для индивидуальной беседы:

  • Боты для вопросов и ответов
  • боты, инициирующие рабочие процессы в других системах.
  • боты, которые говорят шутки.
  • боты, которые принимают заметки. Прежде чем создавать чат-боты "один к одному", подумайте, является ли интерфейс на основе беседы лучшим способом представить свои функции.

Недостатки ботов

Подробный диалог между вашим ботом и пользователем — это медленный и сложный способ выполнения задачи. Бот, который поддерживает чрезмерные команды, особенно широкий спектр команд, не является успешным и не просматривается пользователями положительно.

Общение в чате с несколькими подходами

Для активного диалога разработчику требуется поддерживать состояние. Чтобы выйти из этого состояния, пользователь должен либо истекать время ожидания, либо нажать кнопку Отмена. К тому же процесс утомительный. Рассмотрим следующий сценарий разговора:

ПОЛЬЗОВАТЕЛЬ: назначь встречу с Меган.

БОТ: Я нашел 200 результатов, включая имя и фамилию.

ПОЛЬЗОВАТЕЛЬ: назначь встречу с Меган Боуэн.

БОТ: хорошо, в какое время вы хотели бы встретиться с Меган Боуэн?

ПОЛЬЗОВАТЕЛЬ: 13:00.

БОТ: в какой день?

Поддержка слишком большого количества команд

Поскольку в текущем меню бота есть только шесть видимых команд, вряд ли что-то еще будет использоваться с какой-либо частотой. Боты, которые углубляются в конкретную область, а не пытаются стать общим помощником, работают намного лучше.

Поддержание широкой базы знаний

Один из недостатков ботов заключается в том, что трудно поддерживать большой база знаний получения с неотделимыми ответами. Боты лучше всего подходят для коротких и быстрых взаимодействий, а не для просеивания длинных списков в поисках ответа.

Ограничения и известные проблемы

Если вам не удается создать бота на портале разработчика, убедитесь в следующем:

  • Регистрация приложений включена для пользователей. Если регистрация приложения отключена в масштабах всей организации, пользователи (кроме пользователей с доступом Microsoft Entra администратора) не могут регистрировать новые приложения. Чтобы разрешить пользователям регистрировать приложения, администраторы должны переключить параметр Пользователи могут регистрировать приложения в положение Да в Центре администрирования Microsoft Entra.

  • Предоставьте определенным пользователям разрешения на регистрацию новых приложений:

Фрагменты кода

В следующем коде приведен пример действий бота для команды канала область:


protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    var mention = new Mention
    {
        Mentioned = turnContext.Activity.From,
        // EncodeName: Converts the name to a valid XML name.
        Text = $"<at>{XmlConvert.EncodeName(turnContext.Activity.From.Name)}</at>",
    };
    
    // MessageFactory.Text(): Specifies the type of text data in a message attachment.
    var replyActivity = MessageFactory.Text($"Hello {mention.Text}.");
    replyActivity.Entities = new List<Entity> { mention };

    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(replyActivity, cancellationToken);
}

В следующем коде показан пример активности бота для индивидуального чата:


// Handle message activity
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    // Remove recipient mention text from Text property.
    // Use with caution because this function is altering the text on the Activity.
    turnContext.Activity.RemoveRecipientMention();
    var text = turnContext.Activity.Text.Trim().ToLower();

    // Sends a message activity to the sender of the incoming activity.
    await turnContext.SendActivityAsync(MessageFactory.Text($"Your message is {text}."), cancellationToken);
}

Пример кода

Название примера Описание .NETCore Node.js Python Манифест
Бот для беседы в Teams В этом примере приложения показано, как использовать различные события бесед бота, доступные в bot framework версии 4. Просмотр Просмотр Просмотр Просмотр
Образцы бота Набор примеров платформы ботов версии 4 Просмотр Просмотр Просмотр

Следующий этап

Дополнительные ресурсы