Améliorer les messages de bot générés par l’IA
L’étiquette IA, la citation, les boutons de commentaires et l’étiquette 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.
- Citation 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 de bot peuvent être améliorés avec l’étiquette IA, la citation, les boutons de commentaires et l’étiquette de confidentialité :
Remarque
- L’étiquette d’IA, la citation, les boutons de commentaires et l’étiquette de confidentialité sont disponibles pour les bots dans les conversations personnelles, les conversations de groupe et les canaux.
- Les étiquettes d’IA, les citations, les boutons de commentaires et l’étiquette 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 sur le message de votre bot indique qu’il est généré par l’IA. Bien que les bots basés sur l’IA qui utilisent des modèles llm (Large Language Models) soient généralement fiables, l’étiquette permet d’éviter toute confusion au sujet de la source des informations.
Ajouter une étiquette IA
Si vous utilisez la bibliothèque IA Teams pour générer votre bot, l’é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
. L’extrait de code suivant montre comment activer l’étiquette IA dans un message de bot :
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. Valeur autorisée : AIGeneratedContent |
Une fois que vous avez ajouté une étiquette IA, le message de votre bot affiche une étiquette générée par l’IA en regard du nom du bot. Lorsque vous pointez sur l’étiquette IA, une clause d’exclusion de responsabilité s’affiche 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.
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
La citation de sources dans les messages de bot permet aux utilisateurs de poser des questions de suivi ou de 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. Les citations sont cruciales pour les bots utilisant des techniques telles que Retrieval-Augmented Generation (RAG).
Les citations dans les messages de votre bot peuvent inclure les éléments suivants :
- 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, l’icône, les mots clés, le résumé, le lien hypertexte, les informations de confidentialité et un bouton pour ouvrir une fenêtre modale avec du contenu supplémentaire. 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é.
- La fenêtre modale avec du contenu supplémentaire affiche une carte adaptative sans aucun élément interactif.
Remarque
- Un maximum de 20 citations sont affichées dans un message.
- Les citations avec cartes adaptatives sont disponibles en préversion publique pour les développeurs.
- 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 ou dans la fenêtre modale de la citation accessible à partir de la fenêtre contextuelle.
Ajouter des citations
Si vous utilisez la bibliothèque IA Teams pour générer votre bot, des citations sont automatiquement ajoutées à un message de bot alimenté par l’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
text: "{\"type\":\"AdaptiveCard\",\"$schema\":\"http://adaptivecards.io/schemas/adaptive-card.json\",\"version\":\"1.6\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"Adaptive Card text\"}]}", // Appears as a stringified Adaptive Card
keywords: ["keyword 1", "keyword 2", "keyword 3"], // Appears in the citation pop-up window
encodingFormat: "application/vnd.microsoft.card.adaptive",
image: {
"@type": "ImageObject",
name: "Microsoft Word"
},
},
},
],
},
],
})
Propriété | Type | Requis | Description |
---|---|---|---|
citation |
Objet | ✔️ | Détails de la citation. |
citation.@type |
String | ✔️ | Objet de la citation. Valeur autorisée : Claim |
citation.position |
Entier | ✔️ | Affiche le numéro de citation. |
citation.appearance |
Objet | ✔️ | Informations sur l’apparence de la citation. |
citation.appearance.@type |
String | ✔️ | Objet de l’apparence de la citation. Valeur autorisée : DigitalDocument |
citation.appearance.name |
String | ✔️ | Titre du contenu référencé. Nombre maximal de caractères : 80 |
citation.appearance.url |
String | URL du contenu référencé. | |
citation.appearance.abstract |
String | Résumé du contenu référencé. Nombre maximal de caractères : 160 | |
citation.appearance.text |
String | Carte adaptative stringifiée avec des informations supplémentaires sur la citation. Il s’affiche dans la fenêtre modale accessible à partir de la fenêtre contextuelle. | |
citation.appearance.keywords |
Tableau | Mots clés du contenu référencé. Vous ne pouvez pas ajouter plus de trois mots clés. Chaque mot clé ne peut contenir que 28 caractères. | |
citation.appearance.encodingFormat |
String | Format d’encodage du citation.appearance.text champ.Valeur autorisée : application/vnd.microsoft.card.adaptive |
|
citation.appearance.image |
Objet | Informations sur l’icône de la citation. | |
citation.appearance.image.@type |
String | ✔️ | Objet de l’icône de citation. Doit être ImageObject . |
citation.appearance.image.name |
String | ✔️ | Nom de l’icône prédéfinie. Il affiche l’icône de citation dans les détails de la référence de citation. Valeurs autorisées : Microsoft Word , Microsoft Excel , Microsoft PowerPoint , Microsoft OneNote , Microsoft Visio Microsoft SharePoint , Microsoft Loop Source Code Sketch Adobe Illustrator Adobe InDesign Image Adobe Flash GIF Video Adobe Photoshop Microsoft Whiteboard , , Sound , ZIP , , Text PDF |
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 20 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 suivre l’engagement des utilisateurs, identifier les erreurs et obtenir des insights sur les performances des bots. Ces insights permettent des améliorations ciblées des fonctionnalités de conversation du 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.
Lorsque l’utilisateur sélectionne un bouton de commentaires, un formulaire de commentaires s’affiche en fonction de la sélection de l’utilisateur. Vous pouvez utiliser le formulaire de commentaires par défaut ou le personnaliser en fonction des besoins de votre application.
Remarque
Les formulaires de commentaires personnalisables sont disponibles dans la préversion publique pour les développeurs.
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 sélectionne.
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 SAY
commandes du bot ont feedbackLoopEnabled
dans l’objet channelData
automatiquement défini sur true
.
Pour activer les boutons de commentaires dans un bot créé à l’aide du Kit de développement logiciel (SDK) Bot Framework, définissez un feedbackLoop
objet sous l’objet channelData
de votre message de bot.
await context.sendActivity({
type: ActivityTypes.Message,
text: `Hey! I'm a friendly AI bot!`,
channelData: {
feedbackLoop: { // Enable feedback buttons
type: "custom"
},
});
Propriété | Type | Requis | Description |
---|---|---|---|
feedbackLoop |
Objet | ✔️ | Active les boutons de commentaires dans le message du bot. |
feedbackLoop.type |
String | ✔️ | Définit le type de formulaire de commentaires qui s’affiche lorsqu’un utilisateur sélectionne les boutons de commentaires. Valeurs autorisées : custom , default |
Si vous définissez feedbackLoop.type
default
sur , le formulaire de commentaires par défaut s’affiche lorsqu’un utilisateur sélectionne les boutons de commentaires. Si vous souhaitez afficher un formulaire de commentaires personnalisé, définissez sur feedbackLoop.type
custom
. La demande d’appel suivante est envoyée au bot pour récupérer un formulaire personnalisé à afficher à l’utilisateur :
{
"type": "invoke",
"name": "message/fetchTask",
"value": {
"actionName": "feedback",
"actionValue": {
"reaction": "like" // like or dislike
}
}
}
Vous devez répondre à cet appel d’appel avec une boîte de dialogue (appelée modules de tâche dans TeamsJS v1.x), de la même façon que vous répondriez à un task/fetch
appel. Pour plus d’informations sur l’appel de dialogues dans les bots, consultez Utiliser des dialogues avec des bots.
Gérer les commentaires
Le bot reçoit les entrées utilisateur du formulaire de commentaires par le biais d’un flux d’appel de bot. Pour les bots créés à l’aide de la bibliothèque IA Teams, la demande d’appel de bot est gérée automatiquement. Pour gérer les commentaires, utilisez la app.feedbackLoop
méthode pour inscrire un gestionnaire de boucles de commentaires à appeler lorsque l’utilisateur fournit des commentaires.
app.feedbackLoop(async (_context: TurnContext, _state: TurnState, feedbackLoopData: 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 200
status 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 200
status :
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 };
};
Stockez les commentaires en enregistrant les ID de message et le contenu des messages que votre bot envoie et reçoit. Lorsque votre bot reçoit une demande d’appel avec des commentaires, faites correspondre l’ID du message avec les commentaires correspondants.
Remarque
Teams ne stocke ni ne traite les commentaires. Il 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 être accessibles uniquement à certaines personnes au sein du organization. Ajoutez 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 de celui-ci.
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, l’étiquette de confidentialité peut être ajoutée 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 | ✔️ | Active l’étiquette de confidentialité dans le message du bot. |
citation.usageInfo.@id |
String | ✔️ | 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 | ✔️ | Spécifie le titre de l’étiquette de confidentialité. |
usageInfo.description |
String | Spécifie le message de fenêtre contextuelle qui s’affiche lorsqu’un utilisateur pointe sur l’étiquette de confidentialité. |
Une fois que vous avez ajouté l’étiquette de confidentialité, votre message de bot affiche une icône de bouclier. Les utilisateurs peuvent pointer sur l’icône pour afficher une clause d’exclusion de responsabilité concernant 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 permet de contrôler la façon dont l’étiquette IA, la PredictedSayCommand
citation, le bouton de commentaires et l’étiquette 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 PredictedSayCommand
PredictedSayCommand.
Exemples de code
Exemple de nom | Description | Node.js | .NET |
---|---|---|---|
Bot de conversation Teams | Cet exemple d’application affiche l’étiquette IA, la citation, les boutons de commentaires et l’étiquette de confidentialité dans les messages. | View | N/A |
Azure OpenAI sur vos données | Ce bot conversationnel utilise la bibliothèque IA Teams et contient l’étiquette IA, les boutons de commentaires, l’étiquette de confidentialité et la citation dans ses messages générés. | N/A | View |