Verbessern von KI-generierten Botnachrichten
KI-Bezeichnungen, Zitate, Feedbackschaltflächen und Vertraulichkeitsbezeichnungen in den Nachrichten Ihres Bots verbessern die Benutzerbindung und fördern Transparenz und Vertrauen.
- Mithilfe der KI-Bezeichnung können Benutzer erkennen, dass die Nachricht mithilfe von KI generiert wurde.
- Zitate ermöglichen Es Benutzern, durch In-Text-Zitate und Verweise auf die Quelle der Botnachricht zu verweisen.
- Mithilfe von Feedbackschaltflächen können Benutzer positives oder negatives Feedback zu den Botnachrichten geben.
- Vertraulichkeitsbezeichnung ermöglicht Es Benutzern, die Vertraulichkeit der Botnachricht zu verstehen.
Die folgenden Screenshots zeigen, wie Botnachrichten mit KI-Bezeichnung, Zitat, Feedbackschaltflächen und Vertraulichkeitsbezeichnung verbessert werden können:
Hinweis
- KI-Bezeichnungen, Zitate, Feedbackschaltflächen und Vertraulichkeitsbezeichnungen sind für Bots in persönlichen Chats, Gruppenchats und Kanälen verfügbar.
- KI-Bezeichnungen, Zitate, Feedbackschaltflächen und Vertraulichkeitsbezeichnungen sind in Den Umgebungen Government Community Cloud (GCC), GCC High und Department of Defense (DOD) verfügbar.
KI-Bezeichnung
Eine KI-Bezeichnung in Ihrer Botnachricht gibt an, dass sie von KI generiert wird. Ki-gestützte Bots, die große Sprachmodelle (Large Language Models, LLMs) verwenden, sind zwar allgemein zuverlässig, die Bezeichnung trägt jedoch dazu bei, Verwirrung über die Quelle der Informationen zu vermeiden.
Ki-Bezeichnung hinzufügen
Wenn Sie die Teams KI-Bibliothek zum Erstellen Ihres Bots verwenden, wird die KI-Bezeichnung automatisch für alle KI-gestützten Botnachrichten im ai
Modul innerhalb der PredictedSayCommand
Aktion aktiviert. Weitere Informationen finden Sie unter AIEntity-Schnittstelle.
Wenn Sie Microsoft Bot Framework SDK verwenden, um Ihren Bot zu erstellen, fügen Sie additionalType
unter das entities
Array des message
Entitätsobjekts ein. Der folgende Codeausschnitt zeigt, wie die KI-Bezeichnung in einer Botnachricht aktiviert wird:
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
}
]
});
Eigenschaft | Typ | Erforderlich | Beschreibung |
---|---|---|---|
additionalType |
Array | Ja | Aktiviert die KI-Bezeichnung in der Botnachricht. Zulässiger Wert: AIGeneratedContent |
Nachdem Sie eine KI-Bezeichnung hinzugefügt haben, zeigt die Meldung Ihres Bots neben dem Namen des Bots eine VON KI generierte Bezeichnung an. Wenn Sie mit dem Mauszeiger auf die KI-Bezeichnung zeigen, wird ein Haftungsausschluss mit dem Hinweis angezeigt, dass KI-generierte Inhalte möglicherweise falsch sind. Die KI-Bezeichnung und der Haftungsausschluss können nicht für KI-gestützte Bots angepasst werden.
Fehlerbehandlung
Fehlercode | Beschreibung |
---|---|
400 | Mehrere Stammnachrichtenentitäten, die unter dem entities Array gefunden werden. |
400 | Fehler beim Analysieren der Nachrichtenentität aus einem entities Array. |
Zitate
Das Zitieren von Quellen in Botnachrichten hilft Benutzern, Folgefragen zu stellen oder unabhängige Recherchen durchzuführen. Zitieren Sie Datenquellen wie Dateien, Nachrichten, E-Mails und Arbeitselemente, um wertvolle Erkenntnisse zu liefern. Zitate sind für Bots, die Techniken wie Retrieval-Augmented Generation (RAG) verwenden, von entscheidender Bedeutung.
Zitate in den Nachrichten Ihres Bots können Folgendes enthalten:
- In-Text-Zitate bezeichnen die Zitatnummern, die der Botnachricht im [#]-Format hinzugefügt wurden, die jeweils einem Verweis entsprechen. Ein Zitat kann an einer beliebigen Stelle innerhalb des Texts eingefügt werden.
- Zu den Details der Zitatreferenz gehören Titel, Symbol, Schlüsselwörter, Abstract, Hyperlink, Vertraulichkeitsinformationen und eine Schaltfläche zum Öffnen eines modales Fensters mit zusätzlichem Inhalt. Verweise werden als Popupfenster für jedes In-Text-Zitat angezeigt.
- Vertraulichkeitsbezeichnungen für Zitate geben die Vertraulichkeit des Zitatinhalts an, auf den verwiesen wird, und werden nicht automatisch hinzugefügt. Informationen zum Hinzufügen von Vertraulichkeitsbezeichnungen für Zitate finden Sie unter Hinzufügen von Vertraulichkeitsbezeichnungen.
- Ein modales Fenster mit zusätzlichem Inhalt rendert eine adaptive Karte ohne interaktive Elemente.
Hinweis
- In einer Nachricht werden maximal 20 Zitate angezeigt.
- Zitate mit adaptiven Karten sind in der öffentlichen Entwicklervorschau verfügbar.
- Adaptive Karten werden nicht im Popupfenster für Zitate gerendert. Adaptive Karten können jedoch in der Nachricht des Bots oder im modalem Fenster des Zitats gerendert werden, auf das über das Popupfenster zugegriffen werden kann.
Zitate hinzufügen
Wenn Sie die Teams KI-Bibliothek zum Erstellen Ihres Bots verwenden, werden Zitate automatisch durch PredictedSayCommand
Aktion zu einer KI-gestützten Botnachricht hinzugefügt. Sie können die PredictedSayCommand
Aktion auch ändern, um Ihrer Botnachricht Zitate hinzuzufügen. Weitere Informationen finden Sie unter ClientCitation-Schnittstelle.
Wenn Sie das Bot Framework SDK zum Erstellen Ihres Bots verwenden, fügen Sie unter das entities
Array eincitation
. Es folgt ein Beispielcodeausschnitt:
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"
},
},
},
],
},
],
})
Eigenschaft | Typ | Erforderlich | Beschreibung |
---|---|---|---|
citation |
Object | ✔️ | Details des Zitats. |
citation.@type |
Zeichenfolge | ✔️ | Objekt des Zitats. Zulässiger Wert: Claim |
citation.position |
Ganze Zahl | ✔️ | Zeigt die Zitatnummer an. |
citation.appearance |
Objekt | ✔️ | Informationen über das Aussehen des Zitats. |
citation.appearance.@type |
Zeichenfolge | ✔️ | Objekt der Zitatdarstellung. Zulässiger Wert: DigitalDocument |
citation.appearance.name |
Zeichenfolge | ✔️ | Titel des Inhalts, auf den verwiesen wird. Maximale Anzahl von Zeichen: 80 |
citation.appearance.url |
Zeichenfolge | URL des Inhalts, auf den verwiesen wird. | |
citation.appearance.abstract |
Zeichenfolge | Eine Zusammenfassung des Inhalts, auf den verwiesen wird. Maximale Anzahl von Zeichen: 160 | |
citation.appearance.text |
Zeichenfolge | Eine zeichenfolgenfähige adaptive Karte mit zusätzlichen Informationen zum Zitat. Es wird innerhalb des modale Fensters gerendert, auf das über das Popupfenster zugegriffen werden kann. | |
citation.appearance.keywords |
Array | Schlüsselwörter aus dem Inhalt, auf den verwiesen wird. Sie können nicht mehr als drei Schlüsselwörter hinzufügen. Jede Schlüsselwort (keyword) darf nur 28 Zeichen enthalten. | |
citation.appearance.encodingFormat |
Zeichenfolge | Das Codierungsformat des citation.appearance.text Felds.Zulässiger Wert: application/vnd.microsoft.card.adaptive |
|
citation.appearance.image |
Objekt | Informationen zum Zitatsymbol. | |
citation.appearance.image.@type |
Zeichenfolge | ✔️ | Das Objekt des Zitatsymbols. Muss ImageObject sein. |
citation.appearance.image.name |
Zeichenfolge | ✔️ | Der Name des vordefinierten Symbols. Es rendert das Zitatsymbol in den Details des Zitatverweises. Zulässige Werte: Microsoft Word , Microsoft Excel , Microsoft PowerPoint , Microsoft OneNote , Microsoft SharePoint , Microsoft Visio , Microsoft Loop , Microsoft Whiteboard , Sketch Source Code , Adobe Illustrator , ZIP Sound Text Video Adobe Photoshop Adobe InDesign Adobe Flash Image GIF PDF |
Nachdem Sie Zitate aktiviert haben, enthält die Botnachricht In-Text-Zitate und Verweise. Die In-Text-Zitate zeigen die Verweisdetails an, wenn Benutzer mit dem Mauszeiger auf das Zitat zeigen.
Fehlerbehandlung
Fehlercode | Beschreibung |
---|---|
400 | Mehrere Stammnachrichtenentitäten, die unter dem entities Array gefunden werden. |
400 | Fehler beim Analysieren der Nachrichtenentität aus einem entities Array. |
400 | Botnachricht mit mehr als 20 Zitaten. |
400 | Das appearance Objekt ist leer. |
400 | Fehler beim Analysieren der Zitatentität mit der ID: X. |
Feedbackschaltflächen
Feedbackschaltflächen in Botnachrichten sind wichtig, um die Benutzerbindung nachzuverfolgen, Fehler zu identifizieren und Einblicke in die Leistung des Bots zu erhalten. Diese Erkenntnisse ermöglichen gezielte Verbesserungen der Konversationsfunktionen des Bots. Aktivieren Sie Feedbackschaltflächen, damit Benutzer Nachrichten mit "Gefällt mir" mögen oder nicht mögen und detailliertes Feedback geben können.
Wenn der Benutzer eine Feedbackschaltfläche auswählt, wird basierend auf der Auswahl des Benutzers ein Feedbackformular angezeigt. Sie können entweder das Standardfeedbackformular verwenden oder es an die Anforderungen Ihrer App anpassen.
Hinweis
Anpassbare Feedbackformulare sind in der öffentlichen Entwicklervorschau verfügbar.
Feedbackschaltflächen befinden sich in der Fußzeile der Botnachricht und enthalten eine 👍 (Daumen nach oben) und eine 👎 Schaltfläche (Daumen nach unten), die der Benutzer auswählt.
Schaltflächen zum Hinzufügen von Feedback
Für einen Bot, der mithilfe der Ki-Bibliothek von Teams erstellt wurde, aktiviert Teams Feedbackschaltflächen für alle Botnachrichten, wenn enable_feedback_loop
im ai
Modul auf true
festgelegt ist.
export const app = new Application<ApplicationTurnState>({
ai: {
planner: planner,
enable_feedback_loop: true
},
Weitere Informationen finden Sie unter der Const-App-Variable.
Nachdem Sie Feedbackschaltflächen aktiviert haben, werden feedbackLoopEnabled
alle SAY
Befehle des Bots im channelData
-Objekt automatisch auf true
festgelegt.
Um Feedbackschaltflächen in einem Bot zu aktivieren, der mit dem Bot Framework SDK erstellt wurde, definieren Sie ein feedbackLoop
Objekt unter dem channelData
Objekt Ihrer Botnachricht.
await context.sendActivity({
type: ActivityTypes.Message,
text: `Hey! I'm a friendly AI bot!`,
channelData: {
feedbackLoop: { // Enable feedback buttons
type: "custom"
},
});
Eigenschaft | Typ | Erforderlich | Beschreibung |
---|---|---|---|
feedbackLoop |
Object | ✔️ | Aktiviert Feedbackschaltflächen in der Nachricht des Bots. |
feedbackLoop.type |
Zeichenfolge | ✔️ | Definiert den Typ des Feedbackformulars, das angezeigt wird, wenn ein Benutzer die Feedbackschaltflächen auswählt. Zulässige Werte: custom , default |
Wenn Sie auf default
festlegenfeedbackLoop.type
, wird das Standardfeedbackformular angezeigt, wenn ein Benutzer die Feedbackschaltflächen auswählt. Wenn Sie ein benutzerdefiniertes Feedbackformular anzeigen möchten, legen Sie auf fest feedbackLoop.type
custom
. Die folgende Aufrufanforderung wird an den Bot gesendet, um ein benutzerdefiniertes Formular abzurufen, das dem Benutzer angezeigt wird:
{
"type": "invoke",
"name": "message/fetchTask",
"value": {
"actionName": "feedback",
"actionValue": {
"reaction": "like" // like or dislike
}
}
}
Sie müssen auf diesen Aufruf mit einem Dialog (in TeamsJS v1.x als Aufgabenmodule bezeichnet) reagieren, genauso wie Sie auf einen task/fetch
Aufruf reagieren würden. Weitere Informationen zum Aufrufen von Dialogen in Bots finden Sie unter Verwenden von Dialogen mit Bots.
Verarbeiten von Feedback
Der Bot empfängt Benutzereingaben aus dem Feedbackformular über einen Botaufrufflow. Für Bots, die mit der Teams KI-Bibliothek erstellt wurden, wird die Botaufrufanforderung automatisch verarbeitet. Um Feedback zu verarbeiten, verwenden Sie die app.feedbackLoop
-Methode, um einen Feedbackschleifenhandler zu registrieren, der aufgerufen wird, wenn der Benutzer Feedback gibt.
app.feedbackLoop(async (_context: TurnContext, _state: TurnState, feedbackLoopData: FeedbackLoopData) => {
// custom logic here...
});
Weitere Informationen finden Sie unter asynchrone Rückruffunktion.
Für einen Bot, der mit dem Bot Framework SDK erstellt wurde, benötigen Sie einen onInvokeActivity
Handler, um das Feedback zu verarbeiten. Stellen Sie sicher, dass Sie einen status Code 200
mit einem leeren JSON-Objekt als Antwort zurückgeben.
Der folgende Codeausschnitt zeigt, wie Sie feedback verarbeiten, das in einem Botaufruf empfangen wurde, und eine Antwort mit dem status Code 200
zurückgeben:
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 };
};
Speichern Sie das Feedback, indem Sie Nachrichten-IDs und Inhalte von Nachrichten speichern, die Ihr Bot sendet und empfängt. Wenn Ihr Bot eine Aufrufanforderung mit Feedback erhält, stimmen Sie die Nachrichten-ID mit dem entsprechenden Feedback ab.
Hinweis
Teams speichert oder verarbeitet kein Feedback. Es stellt keine API oder einen Speichermechanismus bereit.
Wenn ein Benutzer Ihren Bot deinstalliert und weiterhin Zugriff auf den Botchat hat, entfernt Teams die Feedbackschaltflächen aus den Botnachrichten, um zu verhindern, dass der Benutzer Feedback an den Bot senden kann.
Fehlerbehandlung
Fehlercode | Beschreibung |
---|---|
400 |
message/submitAction Die Aufrufantwort ist nicht leer. |
Vertraulichkeitsbezeichnung
Botantworten können vertrauliche Informationen enthalten oder nur für bestimmte Personen innerhalb des organization zugänglich sein. Fügen Sie eine Vertraulichkeitsbezeichnung hinzu, um Benutzern zu helfen, die Vertraulichkeit einer Nachricht zu identifizieren, sodass sie bei der Freigabe vorsichtshalber vorgehen können.
Hinweis
Fügen Sie den Nachrichten Ihres Bots nur dann eine Vertraulichkeitsbezeichnung hinzu, wenn diese vertrauliche Informationen enthalten.
Vertraulichkeitsbezeichnung hinzufügen
Für Bots, die mit der Teams KI-Bibliothek erstellt wurden, kann die Vertraulichkeitsbezeichnung durch PredictedSayCommand
Aktion hinzugefügt werden. Weitere Informationen finden Sie unter SensitivityUsageInfo-Schnittstelle.
Für Bots, die mit dem Bot Framework SDK erstellt wurden, fügen Sie Ihrer Botnachricht eine Vertraulichkeitsbezeichnung hinzu, indem Sie die Nachricht so ändern, dass sie in das entities
-Objekt aufgenommen wirdusageInfo
.
Der folgende Codeausschnitt zeigt, wie Sie Sowohl Botnachrichten als auch Zitatverweis Vertraulichkeitsbezeichnungen hinzufügen:
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",
},
},
],
});
Eigenschaft | Typ | Erforderlich | Beschreibung |
---|---|---|---|
usageInfo.@type |
Zeichenfolge | ✔️ | Aktiviert die Vertraulichkeitsbezeichnung in der Botnachricht. |
citation.usageInfo.@id |
Zeichenfolge | ✔️ | Aktiviert die Vertraulichkeitsbezeichnung im Zitatverweis. Dies ist beim Hinzufügen einer Vertraulichkeitsbezeichnung zum Zitatverweis erforderlich. |
usageInfo.name |
Zeichenfolge | ✔️ | Gibt den Titel der Vertraulichkeitsbezeichnung an. |
usageInfo.description |
Zeichenfolge | Gibt die Popupfenstermeldung an, die angezeigt wird, wenn ein Benutzer auf die Vertraulichkeitsbezeichnung zeigt. |
Nachdem Sie die Vertraulichkeitsbezeichnung hinzugefügt haben, wird in der Bot-Nachricht ein Schildsymbol angezeigt. Benutzer können mit dem Mauszeiger auf das Symbol zeigen, um einen Haftungsausschluss zur Vertraulichkeit der Nachricht anzuzeigen.
Fehlerbehandlung
Fehlercode | Beschreibung |
---|---|
400 | Mehrere Stammnachrichtenentitäten, die unter dem entities Array gefunden werden. |
400 | Fehler beim Analysieren der Nachrichtenentität aus einem entities Array. |
400 | Der Wert der Zitatebene usageInfo.@id stimmt nicht mit der Nachrichtenebene usageInfo.@id in mindestens einer instance überein. |
400 | Es gibt mehrere Eigenschaften auf Zitatebene usageInfo mit demselben @id , aber ihre name Eigenschaften und description unterscheiden sich. |
Modifizieren PredictedSayCommand
Für einen Bot, der mithilfe der Teams KI-Bibliothek erstellt wurde, bietet die PredictedSayCommand
Kontrolle darüber, wie KI-Bezeichnungen, Zitate, Feedbackschaltflächen und Vertraulichkeitsbezeichnungen zur Aktivität des Bots hinzugefügt werden. Es folgt der Codeausschnitt zum Ändern PredictedSayCommand
von :
app.ai.action<PredictedSayCommand>(AI.SayCommandActionName, async (context, state, data, action) => {
// custom logic here...
await context.sendActivity(data.content);
return "";
});
Weitere Informationen zu PredictedSayCommand
finden Sie unter PredictedSayCommand-Schnittstelle.
Codebeispiele
Beispielname | Beschreibung | Node.js | .NET |
---|---|---|---|
Teams-Unterhaltungsbot | Diese Beispiel-App zeigt die KI-Bezeichnung, das Zitat, die Feedbackschaltflächen und die Vertraulichkeitsbezeichnung in Nachrichten an. | View | – |
Azure OpenAI für Ihre Daten | Dieser Konversationsbot verwendet die KI-Bibliothek von Teams und enthält die KI-Bezeichnung, Feedbackschaltflächen, Vertraulichkeitsbezeichnung und Zitate in den generierten Nachrichten. | – | Anzeigen |