Del via


Brug af variabler til at transportere indhold på tværs af emner

Variabler gemmer dine kunders svar på spørgsmål fra din copilot. Du kan f.eks. gemme en kundes navn i en variabel, der kaldes UserName. Copiloten kan derefter henvende sig til kunden ved hjælp af navnet, efterhånden som samtalen fortsætter.

En variabels værdi kan som standard kun bruges i det emne hvor variablen bliver oprettet. Det er dog muligt at genbruge den samme værdi på tværs af emner. I et "Velkomst"-emne beder botten eksempelvis om kundens navn og mail. I aftalebooking-emnet skal copiloten huske, hvad kunden har angivet, og ikke spørge igen.

En måde at genbruge en variabel på er at overføre variablen mellem emner. Den anden måde er at gøre variablen global i omfang, og det er, hvad denne artikel omhandler. Globale variabler kaldes det, fordi de er tilgængelige i alle emner på tværs af hele copiloten.

Copilotvariablen anvendes i en enkelt brugersession. Du angiver, hvilke variable der skal behandles som copilotvariabler for at kunne skelne mellem dem fra variable på emneniveau.

Oprette en global variabel

Du kan oprette en global variabel ved at ændre omfanget af ethvert emne.

  1. Opret en variabel eller brug ruden Variabler til at åbne en eksisterende variabel.

  2. Vælg Global (ethvert emne kan få adgang) i ruden Egenskaber for variabel.

    Variabelnavnet tildeles en præfiksstreng, Global., for at adskille det fra variable på emneniveau. Variablen UserName vises som Global.UserName.

    Skærmbillede, der viser ruden med Egenskaber for variabel med indstillingen Global fremhævet.

  3. Gem emnet.

    Navnet på en global variabel skal være entydigt på tværs af alle emner. Hvis der er tale om en konflikt, skal du omdøbe variablen, før du gemmer emnet.

Bruge globale variabler

Når du sammensætter en copilotmeddelelse i en meddelelsesnode eller en spørgsmålsnode, skal du vælge ikonet {x} til at vise de variabler, der er tilgængelige i emnet. Globale variabler vises under fanen Brugerdefineret sammen med alle emnevariabler. Variabler sorteres i alfabetisk rækkefølge.

Skærmbillede, der viser valg af en global variabel.

Søg efter alle emner ved hjælp af en global variabel

Når du har oprettet en global variabel, kan du se, hvor den først gange er defineret, og hvilke andre emner der bruger den. Dette kan være nyttigt, hvis du arbejder på en nyt copilot, eller hvis du har flere variable og komplekse emneforgreninger.

  1. Vælg en global variabel i oprettelseslærredet, eller åbn ruden Variabler, og vælg en global variabel.

  2. I ruden Egenskaber for variabel i sektionen Reference skal du vælge et af de emner, hvor variablen bruges, for at gå direkte til det pågældende emne og den pågældende node.

    Skærmbillede, der viser listen over de emner, der bruges af en variabel, i ruden Egenskaber for variabel.

Globale variablers livscyklus

Værdien for en global variabel vil som standard vare ved, indtil sessionen slutter. Noden Ryd variable værdier nulstiller værdierne for globale variabler og bruges i systemet Nulstil samtalens systememne. Denne emne kan udløses enten ved omdirigering, eller når brugeren skriver en udløsersætning, f.eks. "Start forfra". I det tilfælde nulstilles alle globale variabler.

Angiv en global variabels værdi fra eksterne kilder

Hvis du vil sikre dig, at copiloten starter en samtale med en vis kontekst, kan du initialisere en global variabel med en ekstern kilde. Lad os sige, at webstedet kræver, at brugerne logger på. Da din copilot allerede kender en brugers navn, kan den angive kundernes navne, inden de begynder at skrive deres første spørgsmål.

  1. Vælg en global variabel.

  2. Vælg Eksterne kilder kan angive værdier i ruden Egenskaber for variabel.

Angive globale variabler i en integreret copilot

Hvis du indlejrer din copilot på en simpel webside, kan du føje variabler og deres definitioner til copilotens URL-adresse. Eller hvis du vil have lidt mere kontrol, kan du bruge en <script>-kodeblok til at kalde og bruge variabler via programmering.

Variabelnavnet i forespørgselsstrengen for URL-adressen skal matche navnet for den globale variabel uden præfikset Global.. F.eks. vil en global variabel Global.UserName referere til som UserName i forespørgslen.

I de eksempler, der beskrives her, oprettes der en simpel erklæring for variablerne. I et produktionsscenario kan du som forespørgselsparameter eller variabeldefinition overføre en anden variabel, der allerede har gemt brugerens navn (hvis du f.eks. har et brugernavn i et logonscript).

Tilføj variablerne og deres definitioner til copilotens URL-adresse som forespørgselsstrengparametre i formatet botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Eksempel:

Parameternavnet skelner mellem store og små bogstaver. username=Renata vil også virke i dette eksempel.

Tilføj globale variabler til et brugerdefineret lærred

Du kan også tilføje variablen til et brugerdefineret lærred.

  1. I sektionen <script> på siden, hvor du har din copilot, skal du definere variablerne på følgende måde og erstatte variableName1 med variabelnavnet uden Global.-præfikset og variableDefinition1 med definitionen. Adskil flere variabler med kommaer (,).

       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. I sektionen <script> skal du kalde store, når du integrerer din copilot, som i følgende eksempel, hvor store kaldes lige over der, hvor styleOptions blev kaldt (du skal erstatte BOT_ID med copilotens id):

    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));