Freigeben über


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.

Die folgenden Screenshots zeigen, wie Botnachrichten mit KI-Bezeichnung, Zitat, Feedbackschaltflächen und Vertraulichkeitsbezeichnung verbessert werden können:

Vorher

Screenshot: Botnachricht ohne KI-Bezeichnung, Zitat, Feedbackschaltflächen und Vertraulichkeitsbezeichnung

Nachher

Screenshot: Botnachricht mit KI-Bezeichnung, Zitat, Feedbackschaltflächen und Vertraulichkeitsbezeichnung im Teams-Desktopclient

Hinweis

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.

Screenshot: KI-Bezeichnung in einer Botnachricht

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

Screenshot: KI-gestützte Botantwort mit Zitaten

Modales Fenster

Screenshot: Modales Fensterfenster aus einem Zitat in einer KI-gestützten Botnachricht

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, SketchSource Code, Adobe Illustrator, ZIPSoundTextVideoAdobe PhotoshopAdobe InDesignAdobe FlashImageGIFPDF

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.

Screenshot: Feedbackschaltflächen in einem Bot

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.

Screenshot: Standardfeedbackformular in einem Bot

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 truefestgelegt.

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 defaultfestlegenfeedbackLoop.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.typecustom. 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 200zurü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.

Screenshot einer KI-gestützten Bot-Vertraulichkeitsbezeichnung.

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 PredictedSayCommandvon :

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

Weitere Informationen zu PredictedSayCommandfinden 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

Siehe auch