Variablen themenübergreifend wiederverwenden

Wichtig

Power Virtual Agents-Fähigkeiten und -Funktionen sind jetzt Teil von Microsoft Copilot Studio nach erheblichen Investitionen in generative KI und verbesserte Integrationen in Microsoft Copilot.

Einige Artikel und Screenshots beziehen sich möglicherweise auf Power Virtual Agents während wir Dokumentation und Schulungsinhalte aktualisieren.

Variablen speichern die Antworten Ihrer Kunden auf Fragen Ihres Copiloten. Sie können beispielsweise den Namen eines Kunden in einer Variablen namens UserName speichern. Der Copilot kann den Kunden dann im weiteren Verlauf der Konversation mit seinem Namen ansprechen.

Standardmäßig kann der Wert einer Variablen nur in dem Thema verwendet werden, in dem die Variable erstellt wurde. Es ist jedoch möglich, denselben Wert themenübergreifend wiederzuverwenden. In einem „Willkommen“-Thema fragt der Bot beispielsweise nach dem Namen und der E-Mail-Adresse des Kunden. Im Thema „Terminbuchung“ soll sich der Copilot die Eingaben des Kunden merken und nicht noch einmal nachfragen.

Eine Möglichkeit der Wiederverwendung einer Variablen besteht darin, die Variable zwischen Themen zu übergeben. Die andere Möglichkeit besteht darin, den Bereich der Variablen als global festzulegen, und darum geht es in diesem Artikel. Globale Variablen werden so genannt, weil sie in allen Themen des gesamten Copiloten verfügbar sind.

Copilot-Variablen gelten während einer Einzelbenutzersitzung. Sie geben an, welche Variablen als Copilot-Variablen behandelt werden sollen, um sie von Variablen auf Themenebene zu unterscheiden.

Erstellen einer globalen Variablen

Sie erstellen eine globale Variable, indem Sie den Bereich jeder Themenvariablen ändern.

  1. Erstellen Sie eine Variable, oder verwenden Sie den Bereich Variablen, um eine vorhandene Variable zu öffnen.

  2. Wählen Sie im Bereich Variableneigenschaften die Option Global (jedes Thema kann zugreifen) aus.

    Der Variablenname erhält das Präfix Global., um es von den Variablen auf Themenebene zu unterscheiden. Zum Beispiel wird die Variable UserName jetzt als Global.UserName angezeigt.

    Screenshot des Fensters Eigenschaften der Variablen, wobei die Einstellung Global hervorgehoben ist.

  3. Speichern Sie das Thema.

    Der Name einer globalen Variablen muss über alle Themen hinweg eindeutig sein. Wenn ein Konflikt vorliegt, müssen Sie die Variable umbenennen, bevor Sie Ihr Thema speichern.

Verwenden von globalen Variablen

Wenn Sie eine Copilot-Nachricht in einem Nachrichten- oder Frageknoten verfassen, wählen Sie das {x}-Symbol aus, um sich die dem Thema zur Verfügung stehenden Variablen anzeigen zu lassen. Globale Variablen werden auf der Registerkarte Benutzerdefiniert neben den Themenvariablen angezeigt. Variablen werden in alphabetischer Reihenfolge aufgeführt.

Screenshot mit der Auswahl einer globalen Variablen.

Finden aller Themen mit einer globalen Variablen

Sie können ermitteln, wo eine globale Variable definiert wurde und von welchen anderen Themen sie verwendet wird. Dies kann nützlich sein, wenn Sie an einem neuen Copiloten arbeiten oder mehrere Variablen und komplexe Themenverzweigungen haben.

  1. Wählen Sie im Erstellungsbereich eine globale Variable aus, oder öffnen Sie den Bereich Variablen, und wählen Sie eine globale Variable aus.

  2. Wählen Sie im Bereich Variableneigenschaften im Abschnitt Referenz eines der Themen aus, in denen die Variable verwendet wird, um direkt zu diesem Thema und Knoten zu gelangen.

    Screenshot mit der Liste der Themen, die von einer Variable im Bereich Variableneigenschaften verwendet werden.

Lebenszyklus globaler Variablen

Standardmäßig bleibt der Wert einer globalen Variablen bestehen, bis die Sitzung endet. Der Knoten Variablenwerte löschen setzt die Werte globaler Variablen zurück und wird im Systemthema „Unterhaltung zurücksetzen“ verwendet. Dieses Thema kann entweder durch Weiterleitung ausgelöst werden oder wenn der Benutzer einen Triggerausdruck wie „Neu starten“ eingibt. In diesem Fall werden alle globalen Variablen zurückgesetzt.

Festlegen eines Wertes einer globalen Variablen aus externen Quellen

Wenn Sie sicherstellen möchten, dass der Copilot eine Unterhaltung mit etwas Kontext beginnt, können Sie eine globale Variable mithilfe einer externen Quelle initialisieren. Angenommen, auf Ihrer Website müssen sich die Benutzer anmelden. Da Ihr Copilot den Namen eines Benutzers bereits kennt, kann er Kunden mit Namen begrüßen, bevor diese ihre erste Frage eingeben.

  1. Wählen Sie eine globale Variable aus.

  2. Wählen Sie im Bereich Variableneigenschaften die Option Externe Quellen können Werte festlegen aus.

Globale Variablen in einem eingebetteten Copiloten festlegen

Wenn Sie Ihren Copiloten in eine einfache Webseite einbetten, können Sie Variablen und ihre Definitionen an die URL des Copiloten anhängen. Oder, wenn Sie etwas mehr Kontrolle wünschen, können Sie einen <script>-Codeblock zum programmatischen Aufrufen und Verwenden von Variablen verwenden.

Der Variablenname in der Abfragezeichenfolge der URL muss mit dem Namen der globalen Variablen übereinstimmen, ohne das Global.-Präfix. Eine globale Variable Global.UserName würde in der Abfrage beispielsweise als UserName bezeichnet.

Die nachfolgenden Beispiele enthalten eine einfache Deklaration für die Variablen. In einem Produktionsszenario könnten Sie als Abfrageparameter oder Variablendefinition eine andere Variable als Abfrageparameter oder Variablendefinition eine andere Variable übergeben, die bereits den Namen des Benutzers gespeichert hat (z.B. wenn Sie den Benutzernamen aus einem Anmeldeskript haben).

Hängen Sie die Variablen und ihre Definitionen an die URL des Copiloten als Parameter für Abfragezeichenfolgen im Format botURL?variableName1=variableDefinition1&variableName2=variableDefinition2 an.

Zum Beispiel:

Beim Parameternamen wird die Groß-/Kleinschreibung nicht berücksichtigt. username=Renata funktioniert auch in diesem Beispiel.

Einem benutzerdefiniertem Canvas globale Variablen hinzufügen

Sie können die Variable auch einem benutzerdefinierten Canvas hinzufügen.

  1. Im <script>-Abschnitt auf der Seite, auf der Sie Ihren Copiloten haben, definieren Sie die Variablen wie folgt und ersetzen variableName1 für den Variablennamen ohne Global.-Präfix und variableDefinition1 für die Definition. Trennen Sie mehrere Variablen durch Kommas (,).

       const store = WebChat.createStore({}, ({ dispatch }) => next => action => {
         if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
           dispatch({
              type: "WEB_CHAT/SEND_EVENT",
              payload: {
                name: "pvaSetContext",
                value: {
                   "variableName1": "variableDefinition1",
                   "variableName2": "variableDefinition2"
                }
              },
            });
          }
            return next(action);
        });
    
  2. Rufen Sie in Ihrem <script>-Abschnitt store auf, wenn Sie Ihren Copiloten einbetten. Siehe folgendes Beispiel, wo store genau oberhalb aufgerufen wird, wo styleOptions aufgerufen wird (Sie müssen die BOT_ID mit der ID Ihres Copiloten ersetzen):

    const BOT_ID = "12345-5678";
    const theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
    
    fetch(theURL)
        .then(response => response.json())
        .then(conversationInfo => {
            window.WebChat.renderWebChat(
                {
                    directLine: window.WebChat.createDirectLine({
                        token: conversationInfo.token,
                    }),
                    store,
                    styleOptions
                },
                document.getElementById('webchat')
            );
        })
        .catch(err => console.error("An error occurred: " + err));