Partager via


Messages de bot avec du contenu généré par l’IA

Les étiquettes d’IA, les citations, les boutons de commentaires et les étiquettes de confidentialité dans les messages de votre bot améliorent l’engagement des utilisateurs et favorisent la transparence et la confiance.

  • L’étiquette IA permet aux utilisateurs d’identifier que le message a été généré à l’aide de l’IA.
  • Citations permet aux utilisateurs de faire référence à la source du message du bot par le biais de citations et de références dans le texte.
  • Les boutons de commentaires permettent aux utilisateurs de fournir des commentaires positifs ou négatifs aux messages du bot.
  • L’étiquette de confidentialité permet aux utilisateurs de comprendre la confidentialité du message du bot.

Les captures d’écran suivantes montrent comment les messages des bots peuvent être améliorés avec des étiquettes IA, des citations, des boutons de commentaires et des étiquettes de confidentialité :

Remarque

  • Les étiquettes d’IA, les citations, les boutons de commentaires et les étiquettes de confidentialité sont disponibles dans la préversion publique pour les développeurs pour les conversations individuelles et de groupe, mais ne sont pas prises en charge dans les canaux.
  • Les étiquettes d’IA, les citations, les boutons de commentaires et les étiquettes de confidentialité sont disponibles uniquement dans les clients web et de bureau Teams.
  • Les étiquettes d’IA, les citations, les boutons de commentaires et les étiquettes de confidentialité sont disponibles dans les environnements Cloud de la communauté du secteur public (GCC), GCC High et department of Defense (DOD).

Étiquette IA

Une étiquette IA ajoutée à votre message de bot spécifie que le message est généré par l’IA. Les bots IA utilisent des modèles LLM (Large Language Models) qui sont généralement fiables, mais l’ajout d’une étiquette IA évite toute confusion quant à la source des informations.

Capture d’écran montrant une étiquette IA dans un message de bot.

Ajouter une étiquette IA

Pour un bot créé à l’aide de la bibliothèque IA Teams, une étiquette IA est automatiquement activée pour tous les messages de bot basés sur l’IA dans le ai module au sein de l’action PredictedSayCommand . Pour plus d’informations, consultez Interface AIEntity.

Si vous utilisez Microsoft Bot Framework SDK pour générer votre bot, incluez additionalType sous le entities tableau de l’objet d’entitémessage. Voici un exemple d’extrait de code :

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey! I'm a friendly AI bot. This message is generated by AI.`,
  entities: [
    {
     type: "https://schema.org/Message",
     "@type": "Message",
     "@context": "https://schema.org",
     additionalType: ["AIGeneratedContent"], // Enables AI label
    }
  ]
});
Propriété Type Requis Description
additionalType Tableau Oui Active l’étiquette IA dans le message du bot. La seule valeur autorisée est AIGeneratedContent.

Après l’ajout d’une étiquette IA, le message de votre bot affiche une étiquette générée par l’IA en regard du nom du bot avec une clause d’exclusion de non-responsabilité indiquant que le contenu généré par l’IA peut être incorrect. L’étiquette IA et la clause d’exclusion de responsabilité ne peuvent pas être personnalisées pour les bots basés sur l’IA.

Remarque

L’étiquette générée par l’IA est disponible uniquement lorsque vous envoyez un nouveau message à l’aide de SendActivity. Si vous mettez à jour un message à l’aide UpdateActivityde , l’étiquette Modifié est ajoutée.

Gestion des erreurs

Code d'erreur Description
400 Plusieurs entités de message racine trouvées sous le entities tableau
400 Erreur lors de l’analyse de l’entité de message à partir du entities tableau

Citations

Il est important de citer les sources du message du bot pour aider les utilisateurs à poser des questions de suivi ou à mener des recherches indépendantes. Citez des sources de données, telles que des fichiers, des messages, des e-mails et des éléments de travail, pour fournir des informations précieuses aux utilisateurs. Les citations sont importantes pour les bots utilisant des techniques telles que la récupération augmentée de génération (RAG).

Capture d’écran montrant une réponse de bot IA avec citation en texte.

Les citations à votre message de bot incluent des citations dans le texte, des détails sur la référence de citation et des étiquettes de confidentialité pour le contenu référencé.

  • Les citations dans le texte indiquent les numéros de citation ajoutés au message du bot au format [#], chacun correspondant à une référence. Une citation peut être insérée n’importe où dans le texte.
  • Les détails de la référence de citation incluent le titre, les mots clés, un résumé, un lien hypertexte et des informations de confidentialité. Les références apparaissent sous forme de fenêtres contextuelles pour chaque citation en texte.
  • Les étiquettes de confidentialité aux citations indiquent la confidentialité du contenu de citation référencé et ne sont pas ajoutées automatiquement. Pour ajouter des étiquettes de confidentialité pour les citations, consultez Ajouter une étiquette de confidentialité.

Remarque

  • Un maximum de 10 citations sont affichées dans un message.
  • Les cartes adaptatives ne sont pas affichées dans la fenêtre contextuelle de citation. Toutefois, les cartes adaptatives peuvent être affichées dans le message du bot.

Ajouter des citations

Pour les bots créés à l’aide de la bibliothèque IA Teams, les citations sont automatiquement ajoutées à un message de bot IA par PredictedSayCommand action. Vous pouvez également modifier l’action PredictedSayCommand pour ajouter des citations à votre message de bot. Pour plus d’informations, consultez Interface ClientCitation.

Si vous utilisez le Kit de développement logiciel (SDK) Bot Framework pour générer votre bot, incluez citation sous le entities tableau . Voici un exemple d’extrait de code :

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey I'm a friendly AI bot. This message is generated through AI [1]`, // cite with [1],
  entities: [
  {
    type: "https://schema.org/Message",
    "@type": "Message",
    "@context": "https://schema.org",
    citation: [
    {
      "@type": "Claim",
      position: 1, // Required. Must match the [1] in the text above
      appearance: {
        "@type": "DigitalDocument",
        name: "AI bot", // Title
        url: "https://example.com/claim-1", // Hyperlink on the title
        abstract: "Excerpt description", // Appears in the citation pop-up window
        keywords: ["keyword 1", "keyword 2", "keyword 3"], // Appears in the citation pop-up window
        },
      },
    ],
  },
],
})
Propriété Type Requis Description
citation Objet Oui Détails de la citation.
citation.@type String Oui Objet de la citation. La seule valeur autorisée est Claim.
citation.position Entier Oui Affiche le numéro de citation. Les valeurs sont limitées à moins de huit.
citation.appearance Objet Oui Informations sur l’apparence de la citation.
citation.appearance.@type String Oui Objet de l’apparence de la citation. La seule valeur autorisée est DigitalDocument.
citation.appearance.name String Oui Titre du contenu référencé.
citation.appearance.url String Non URL du contenu référencé.
citation.appearance.abstract String Non Extrait du contenu référencé et est limité à moins de 1 000 caractères.
citation.appearance.keywords Tableau Non Mots clés du contenu référencé. Vous ne pouvez pas ajouter plus de trois mots clés.

Une fois que vous avez activé les citations, le message du bot inclut des citations et des références dans le texte. Les citations dans le texte affichent les détails de référence lorsque les utilisateurs pointent sur la citation.

Gestion des erreurs

Code d'erreur Description
400 Plusieurs entités de message racine trouvées sous le entities tableau
400 Erreur lors de l’analyse de l’entité de message à partir du entities tableau
400 Message de bot avec plus de 10 citations
400 L’objet appearance est vide
400 Erreur lors de l’analyse de l’entité de citation avec l’ID : X

Boutons de commentaires

Les boutons de commentaires dans les messages de bot sont essentiels pour mesurer l’engagement des utilisateurs, identifier les erreurs et obtenir des insights sur les performances de votre bot. Ces insights peuvent mener à des améliorations ciblées et efficaces des fonctionnalités conversationnelles de votre bot. Activez les boutons de commentaires pour permettre aux utilisateurs d’aimer ou de ne pas aimer les messages et de fournir des commentaires détaillés.

Capture d’écran montrant les boutons de commentaires dans un bot.

Lorsque l’utilisateur sélectionne un bouton de commentaires, un formulaire de commentaires correspondant s’affiche en fonction de la sélection de l’utilisateur.

Capture d’écran montrant le formulaire de commentaires dans un bot.

Les boutons de commentaires se trouvent au pied de page du message du bot et incluent un 👍 bouton (pouce vers le haut) et un 👎 bouton (pouce vers le bas) que l’utilisateur peut choisir. Vous pouvez recueillir des commentaires sur les réponses des bots à partir de conversations en tête-à-tête et de groupe.

Ajouter des boutons de commentaires

Pour un bot créé à l’aide de la bibliothèque d’IA Teams, Teams active les boutons de commentaires pour tous les messages du bot quand enable_feedback_loop est défini sur true dans le ai module.

export const app = new Application<ApplicationTurnState>({
    ai: {
        planner: planner,
        enable_feedback_loop: true
    },

Pour plus d’informations, consultez la variable d’application const.

Une fois que vous avez activé les boutons de commentaires, toutes les commandes SAY du bot sont feedbackLoopEnabled automatiquement définies sur true dans l’objet channelData .

Pour activer les boutons de commentaires dans un bot créé à l’aide du Kit de développement logiciel (SDK) Bot Framework, ajoutez un channelData objet dans votre message de bot et définissez la valeur de feedbackLoopEnabledtruesur .

await context.sendActivity({
  type: ActivityTypes.Message,
  text: `Hey! I'm a friendly AI bot!`,
  channelData: {
    feedbackLoopEnabled: true // Enable feedback buttons
  },
});
Propriété Type Requis Description
feedbackLoopEnabled Boolean Oui Active les boutons de commentaires dans le message du bot

Gérer les commentaires

Le bot reçoit l’entrée de l’utilisateur, reçue dans le formulaire de commentaires, par le biais d’un flux d’appel de bot.

Pour un bot créé à l’aide de la bibliothèque IA Teams, l’appel de bot reçu est géré automatiquement. Pour gérer les commentaires, utilisez la app.feedbackLoop méthode pour inscrire un gestionnaire de boucles de commentaires appelé lorsque l’utilisateur fournit des commentaires.

app.feedbackLoop(async (context, state, feedbackLoopData) => {
  // custom logic here...
});

Pour plus d’informations, consultez la fonction de rappel asynchrone.

Pour un bot créé à l’aide du Kit de développement logiciel (SDK) Bot Framework, vous devez disposer d’un onInvokeActivity gestionnaire pour traiter les commentaires. Veillez à renvoyer un code status 200 avec un objet JSON vide en tant que réponse.

L’extrait de code suivant montre comment gérer les commentaires reçus dans un appel de bot et retourner une réponse avec le code status 200 :

public async onInvokeActivity(context: TurnContext): Promise<InvokeResponse> {
    try {
      switch (context.activity.name) {
        case "message/submitAction":
           console.log('Your feedback is ' + JSON.stringify(context.activity.value))
           // Your feedback is {"actionName":"feedback","actionValue":{"reaction":"like","feedback":"{\"feedbackText\":\"This is my feedback.\"}"}}
           return CreateInvokeResponse(200, {});
        default:
          return {
            status: 200,
            body: `Unknown invoke activity handled as default- ${context.activity.name}`,
          };
      }
    } catch (err) {
      console.log(`Error in onInvokeActivity: ${err}`);
      return {
        status: 500,
        body: `Invoke activity received- ${context.activity.name}`,
      };
    }
  }

 export const CreateInvokeResponse = (
  status: number,
  body?: unknown
 ): InvokeResponse => {
    return { status, body };
 };

Il est important de stocker les commentaires une fois que vous les avez reçus. Par conséquent, veillez à stocker les ID de message et le contenu des messages que votre bot envoie et reçoit. Lorsque votre bot reçoit un appel contenant des commentaires, faites correspondre l’ID du message du bot avec les commentaires correspondants.

Remarque

Teams ne stocke ni ne traite les commentaires, ni ne fournit pas d’API ou de mécanisme de stockage.

Si un utilisateur désinstalle votre bot et a toujours accès à la conversation du bot, Teams supprime les boutons de commentaires des messages du bot pour empêcher l’utilisateur de fournir des commentaires au bot.

Gestion des erreurs

Code d'erreur Description
400 message/submitAction invoke response n’est pas vide.

Étiquette de confidentialité

Les réponses du bot peuvent contenir des informations confidentielles ou accessibles uniquement à certaines personnes au sein du organization. Vous devez ajouter une étiquette de confidentialité pour aider les utilisateurs à identifier la confidentialité d’un message, ce qui leur permet de faire preuve de prudence lors du partage du message.

Capture d’écran montrant une étiquette de confidentialité du bot IA.

Remarque

Ajoutez une étiquette de confidentialité aux messages de votre bot uniquement lorsqu’ils contiennent des informations sensibles.

Ajouter une étiquette de confidentialité

Pour les bots créés à l’aide de la bibliothèque IA Teams, les étiquettes de confidentialité peuvent être ajoutées par PredictedSayCommand action. Pour plus d’informations, consultez Interface SensitivityUsageInfo.

Pour les bots créés à l’aide du Kit de développement logiciel (SDK) Bot Framework, ajoutez une étiquette de confidentialité à votre message de bot en modifiant le message à inclure usageInfo dans l’objet entities .

L’extrait de code suivant montre comment ajouter des étiquettes de confidentialité aux messages de bot et aux références de citation :

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",
      },
    },
  ],
});
Propriété Type Requis Description
usageInfo.@type String Oui Active l’étiquette de confidentialité dans le message du bot.
citation.usageInfo.@id String Oui Active l’étiquette de confidentialité dans la référence de citation. Elle est requise lors de l’ajout d’une étiquette de confidentialité à la référence de citation.
usageInfo.name String Oui Spécifie le titre de l’étiquette de confidentialité.
usageInfo.description String Non Spécifie le message de fenêtre contextuelle qui s’affiche lorsqu’un utilisateur pointe sur l’étiquette de confidentialité.

Une fois l’étiquette de confidentialité ajoutée, votre message de bot contient une icône de bouclier. Les utilisateurs peuvent pointer sur l’icône pour rechercher une clause d’exclusion de responsabilité sur la sensibilité du message.

Gestion des erreurs

Code d'erreur Description
400 Plusieurs entités de message racine trouvées sous le entities tableau
400 Erreur lors de l’analyse de l’entité de message à partir du entities tableau
400 La valeur du niveau usageInfo.@id de citation ne correspond pas au niveau usageInfo.@id du message dans au moins un instance
400 Il existe plusieurs propriétés au niveau usageInfo de la citation avec le même @id, mais leurs name propriétés et description sont différentes.

Modifier PredictedSayCommand

Pour un bot créé à l’aide de la bibliothèque IA Teams, le fournit un contrôle sur la PredictedSayCommand façon dont l’étiquette IA, les citations, les boutons de commentaires et les étiquettes de confidentialité sont ajoutés à l’activité du bot. Voici l’extrait de code à modifier PredictedSayCommand:

app.ai.action<PredictedSayCommand>(AI.SayCommandActionName, async (context, state, data, action) => {
  // custom logic here...
  await context.sendActivity(data.content);
  return "";
});

Pour plus d’informations sur , consultez l’interface PredictedSayCommandPredictedSayCommand.

Exemple de code

Exemple de nom Description Node.js C#
Bot de conversation Teams Cet exemple d’application affiche l’étiquette IA, les citations, les boutons de commentaires et les étiquettes de confidentialité dans les messages. View
TeamsAzureOpenAI Ce bot conversationnel utilise la bibliothèque IA Teams et contient l’étiquette IA, les boutons de commentaires, l’étiquette de confidentialité et les citations dans ses messages générés. View

Voir aussi