Улучшение сообщений бота, созданных ИИ

Важно!

  • Библиотека ИИ Teams теперь переименована в Пакет SDK для Teams.
  • Библиотека ИИ Teams версии 1 устарела. Мы рекомендуем обновить агенты, чтобы использовать обновленный пакет SDK для Teams.

Пакет SDK для Teams теперь доступен для JavaScript и C#, поддерживает Python в предварительной версии для разработчиков. Он предоставляет упрощенный пакет SDK, поддержку протокола контекста модели (MCP), обмен данными между агентами (A2A) и упрощенные средства, позволяющие разработчикам создавать интеллектуальные агенты для Teams.

Метка ИИ, ссылка, кнопки обратной связи и метка конфиденциальности в сообщениях бота повышают вовлеченность пользователей и повышают прозрачность и доверие.

  • Метка ИИ позволяет пользователям идентифицировать, что сообщение было создано с помощью ИИ.
  • Ссылка позволяет пользователям ссылаться на источник сообщения бота с помощью текстовых ссылок и ссылок.
  • Кнопки обратной связи позволяют пользователям предоставлять положительные или отрицательные отзывы для сообщений бота.
  • Метка конфиденциальности позволяет пользователям понять конфиденциальность сообщения бота.

На следующих снимках экрана показано, как сообщения бота можно улучшить с помощью метки ИИ, ссылки, кнопки обратной связи и метки конфиденциальности.

Примечание.

Метка ИИ

Метка ИИ в сообщении бота указывает, что она создана СИ. Хотя боты на основе ИИ, использующие большие языковые модели (LLM), как правило, надежны, метка помогает предотвратить путаницу в источнике информации.

Добавление метки ИИ

Чтобы создать бота с помощью пакета SDK Для Teams, используйте метод, который помечает addAiGenerated() сообщение как созданное СИ. В следующем фрагменте кода показано, как включить метку ИИ в сообщении бота:

app.message(/label/i, async ({ send }) => {
  await send(new MessageActivity("Hi, this message is generated by AI").addAiGenerated());
});

После добавления метки ИИ в сообщении бота рядом с именем бота отображается метка, созданная ИИ . При наведении указателя мыши на метку ИИ появляется заявление об отказе от ответственности, указывающее, что созданное ИИ содержимое может быть неправильным. Метку ИИ и заявление об отказе от ответственности нельзя настроить для ботов на основе ИИ.

Обработка ошибок

Код ошибки Описание
400 Несколько сущностей корневого сообщения, найденных в массиве entities .
400 Ошибка при синтаксическом анализе сущности сообщения из entities массива.

Цитаты

Цитирование источников в сообщениях бота помогает пользователям задавать дополнительные вопросы или проводить независимые исследования. Цитировать источники данных, такие как файлы, сообщения, сообщения электронной почты и рабочие элементы, чтобы получить ценные аналитические сведения. Ссылки имеют решающее значение для ботов, использующих такие методы, как создание Retrieval-Augmented (RAG).

Цитаты

Снимок экрана: ответ бота на основе ИИ со цитатами в классическом клиенте Teams.

Модальное окно

Снимок экрана: всплывающее окно модального окна из ссылки в сообщении бота на основе ИИ в классическом клиенте Teams.

Ссылки в сообщениях бота могут включать следующие:

  • Текстовые ссылки обозначают номера ссылок, добавленные в сообщение бота в формате [#], каждый из которых соответствует ссылке. Ссылку можно вставить в любом месте текста.
  • Сведения о ссылке на ссылку включают заголовок, значок, ключевые слова, абстракт, гиперссылку, сведения о конфиденциальности и кнопку для открытия модального окна с дополнительным содержимым. Ссылки отображаются в виде всплывающих окон для каждой текстовой ссылки.
  • Метки конфиденциальности для ссылок указывают на конфиденциальность ссылочного содержимого и не добавляются автоматически. Сведения о добавлении меток конфиденциальности для ссылок см. в статье Добавление метки конфиденциальности.
  • Модальное окно с дополнительным содержимым отображает адаптивную карточку без интерактивных элементов.

Примечание.

  • В сообщении отображается не более 20 ссылок.
  • Ссылки с адаптивными карточками доступны в общедоступной предварительной версии для разработчиков.
  • Адаптивные карточки не отображаются во всплывающем окне ссылки. Тем не менее адаптивные карточки можно отобразить в сообщении бота или в модальном окне ссылки, доступном во всплывающем окне.

Добавление ссылок

Если вы используете пакет SDK Для Teams для создания бота, используйте для addCitation() включения текстовых ссылок и метаданных ссылок в сообщение. Ниже приведен пример фрагмента кода:

app.message(/citation/i, async ({ send }) => {
  const card = new AdaptiveCard(new TextBlock("Adaptive Card text"))
    .withOptions({ version: "1.6" });
  const appearance: CitationAppearance = {
    name: "AI messages bot",
    url: "https://example.com/claim-1",
    abstract: "Excerpt description",
    text: JSON.stringify(card),
    keywords: ["keyword 1", "keyword 2", "keyword 3"],
    icon: "Microsoft Word",
  };
  await send(
    new MessageActivity("Hey I'm a friendly AI bot. This message is generated through AI [1]")
      .addCitation(1, appearance)
  );
});
Свойство Тип Обязательный Описание
citation Object ✔️ Сведения о ссылке.
citation.@type String ✔️ Объект ссылки.
Допустимое значение: Claim
citation.position Integer ✔️ Отображает номер ссылки. Это значение должно быть уникальным для каждой ссылки.
citation.appearance Объект ✔️ Сведения о внешнем виде ссылки.
citation.appearance.@type String ✔️ Объект внешнего вида ссылки.
Допустимое значение: DigitalDocument
citation.appearance.name String ✔️ Заголовок содержимого, на который ссылается ссылка. Максимальное число символов: 80
citation.appearance.url String URL-адрес содержимого, на который ссылается ссылка.
citation.appearance.abstract String Абстракция содержимого, на который ссылается ссылка. Максимальное число символов: 160
citation.appearance.text String Строка адаптивная карточка с дополнительными сведениями о ссылке. Он отображается в модальном окне, доступном из всплывающего окна.
citation.appearance.keywords Array Ключевые слова из указанного содержимого. Нельзя добавить более трех ключевых слов. Каждая ключевое слово может содержать только 28 символов.
citation.appearance.encodingFormat String Формат citation.appearance.text кодирования поля.
Допустимое значение: application/vnd.microsoft.card.adaptive
citation.appearance.image Объект Сведения о значке ссылки.
citation.appearance.image.@type String ✔️ Объект значка ссылки. Должно быть задано значение ImageObject.
citation.appearance.image.name String ✔️ Имя предопределенного значка. Он отображает значок ссылки в сведениях о ссылке.
Допустимые значения: Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft OneNote, Microsoft SharePoint, Microsoft Visio, Microsoft Loop, Microsoft Whiteboard, Source Code, Adobe IllustratorSketch, , Adobe InDesignAdobe Photoshop, , Adobe Flash, Image, , GIFVideo, , Sound, , ZIPTextPDF

После включения ссылок сообщение бота содержит текстовые ссылки и ссылки. Текстовые ссылки отображают сведения о ссылке при наведении указателя мыши на ссылку.

Обработка ошибок

Код ошибки Описание
400 Несколько сущностей корневого сообщения, найденных в массиве entities .
400 Ошибка при синтаксическом анализе сущности сообщения из entities массива.
400 Сообщение бота с более чем 20 цитатами.
400 Объект appearance пуст.
400 Ошибка при синтаксическом анализе сущности ссылки с идентификатором: X.

Кнопки обратной связи

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

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

Кнопки обратной связи находятся в нижнем колонтитуле сообщения бота и включают кнопку 👍 (большие пальцы вверх) и кнопку 👎 (вниз), которую выбирает пользователь.

Добавить кнопки обратной связи

Чтобы включить кнопки обратной связи в боте, созданном с помощью пакета SDK для Teams, используйте addFeedback() метод в действии сообщения.

app.message(/feedback/i, async ({ send }) => { 

  await send(new MessageActivity("This is an example of a feedback button - this helps to provide feedback for a message").addFeedback()); 

}); 
Свойство Тип Обязательный Описание
feedbackLoop Object ✔️ Включает кнопки обратной связи в сообщении бота.
feedbackLoop.type String ✔️ Определяет тип формы обратной связи, которая появляется, когда пользователь нажимает кнопки обратной связи.
Допустимые значения: custom, default

Если задано значение feedbackLoop.typedefault, форма обратной связи по умолчанию отображается, когда пользователь нажимает кнопки обратной связи. Если вы хотите отобразить настраиваемую форму обратной связи, задайте для значение feedbackLoop.typecustom. Следующий запрос на вызов отправляется боту для получения пользовательской формы, отображаемой для пользователя:

{
    "type": "invoke",
    "name": "message/fetchTask",
    "value": {
        "actionName": "feedback",
        "actionValue": {
            "reaction": "like" // like or dislike
        }
    }
}

Вы должны отвечать на этот вызов с помощью диалогового окна (называемого модулями задач в TeamsJS версии 1.x) так же, как и на task/fetch вызов. Дополнительные сведения о вызове диалогов в ботах см. в разделе Использование диалогов с ботами.

Обработка отзывов

Бот получает от пользователя входные данные из формы обратной связи через поток вызова бота. Для ботов, созданных с помощью пакета SDK для Teams, запрос на вызов бота обрабатывается автоматически. Обработка отзывов пользователей message.submit.feedback с помощью события.

app.on("message.submit.feedback", async (context) => { 
  // custom logic here... 
}); 

Примечание.

Teams не хранит и не обрабатывает отзывы. Он не предоставляет API или механизм хранения.

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

Обработка ошибок

Код ошибки Описание
400 message.submit.feedback event app.message(/label/i, async ({ send }) => { response't empty.

Метка конфиденциальности

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

Примечание.

Добавьте метку конфиденциальности в сообщения бота, только если они содержат конфиденциальную информацию.

Добавление метки конфиденциальности

Для ботов, созданных с помощью пакета SDK Для Teams, добавьте метку конфиденциальности в сообщение бота, изменив сообщение для включения usageInfo в entities объект .

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

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey, I'm a friendly AI bot. This message is generated through AI [1]`,
  entities: [
    {
      type: "https://schema.org/Message",
      "@type": "Message",
      "@context": "https://schema.org",
      usageInfo: {
        "@type": "CreativeWork",
        name: "Sensitivity title",
        description: "Sensitivity description",
      },
    },
  ],
});
Свойство Тип Обязательный Описание
usageInfo.@type String ✔️ Включает метку конфиденциальности в сообщении бота.
citation.usageInfo.@id String ✔️ Включает метку конфиденциальности в ссылке. Это необходимо при добавлении метки конфиденциальности в ссылку на ссылку.
usageInfo.name String ✔️ Указывает заголовок метки конфиденциальности.
usageInfo.description String Указывает сообщение всплывающего окна, которое появляется при наведении указателя мыши на метку конфиденциальности.

После добавления метки конфиденциальности в сообщении бота отображается значок щита. Пользователи могут навести указатель мыши на значок, чтобы увидеть заявление об отказе от ответственности о конфиденциальности сообщения.

Обработка ошибок

Код ошибки Описание
400 Несколько сущностей корневого сообщения, найденных в массиве entities .
400 Ошибка при синтаксическом анализе сущности сообщения из entities массива.
400 Значение уровня usageInfo.@id цитирования не соответствует уровню usageInfo.@id сообщения по крайней мере в одном экземпляре.
400 Существует несколько свойств уровня usageInfo ссылки с одинаковыми @idсвойствами , но их name свойства и description отличаются.

Пример кода

Название примера Описание Node.js .NET Python
Бот для беседы в Teams Этот пример приложения отображает метку ИИ, ссылку, кнопки обратной связи и метку конфиденциальности в сообщениях. Просмотр Просмотр Просмотр

См. также