Bruke variabler
Du kan lagre kundesvar i en robotsamtale i variabler for å bruke dem på nytt senere i samtalen.
Du kan også bruke variabler til å lage logiske uttrykk som dynamisk ruter kunden gjennom forskjellige diskusjonsbaner. Du kan for eksempel lagre navnet på en kunde i en variabel kalt UserName
, og roboten kan bruke kundenavnet når den henvender seg til kunden etter hvert som samtalen fortsetter.
Variabler kan også sendes til og returneres fra andre emner og Power Automate-flyter.
Forutsetning
Variabler kan eksistere på tre nivåer eller områder:
- Emnevariabler kan bare brukes i emnene de er opprettet i. Dette omfanget er standardområdet variabler du oppretter.
- Globale variabler kan brukes i alle emner. Du kan endre omfanget for et emne for å gjøre den til en global variabel.
- Systemvariabler opprettes automatisk med roboten. De gir mer kontekstavhengig informasjon om samtalen eller brukeren. De er tilgjengelige i alle emner.
Variabeltyper
En variabel er knyttet til en basistype. Typen fastsetter hvilke verdier variablene kan inneholde og operatorene du kan bruke når du konstruerer et logisk uttrykk med den.
Type | Bekrivelse |
---|---|
String | En sekvens med tegn som brukes til å representere tekst |
Boolean | En logisk verdi som bare kan være true eller false |
Nummer | Et reelt tall |
Table | En liste med verdier, men alle verdier må være av samme type |
Spill inn | En samling navneverdipar der verdier kan være av hvilken som helst type |
Date/klokkeslett | En dato, et klokkeslett, en ukedag eller en måned i forhold til et tidspunkt |
Valg | En liste over strengverdier som har tilknyttede synonymer |
Tomt | En plassholder for ingen verdi eller ukjent verdi. Hvis du vil ha mer informasjon, kan du se Tomme verdier i Power Fx |
Variabelens type angis første gang en verdi tildeles til den. Etter det blir typen for variabelen fast, og den kan ikke tildeles verdier av andre typer. En variabel der startverdien er 1
tilordnes eksempelvis typen Tall. Hvis du prøver å tilordne den til Streng-verdi i "apples"
, fører dette til en feil.
Når du tester en robot, kan en variabel vises midlertidig som typen ukjent. En ukjent variabel er ikke tilordnet en verdi ennå.
Rekkefølgen på variablene fastsettes fra topp til nederst på redigeringslerretet. Det vil si at noder øverst i redigeringslerretet vurderes før noder nederst. Når du oppretter grener med betingelsesnoder, ordnes grener fra venstre mot høyre. Det vil si at noder i grenen lengst til venstre vurderes før noder i grenen lengst til høyre.
Enheter
Power Virtual Agents bruker enheter til å identifisere en bestemt type informasjon i svarene fra en bruker. Den identifiserte informasjonen lagres i en variabel av typen som er riktig for informasjonen. Tabellen nedenfor viser variabelbasistypen som er tilknyttet forhåndsbygde enheter.
Entity | Basistype for variabel |
---|---|
Flervalgsalternativer | Valg |
Brukerens hele svar | String |
Alder | Nummer |
Boolean | Boolean |
City | String |
Color | String |
Kontinent | String |
Land eller område | String |
Dato og klokkeslett | Date/klokkeslett |
String | |
Hendelser | String |
Integer | Integer |
Språk | String |
Money | Nummer |
Nummer | Nummer |
Ordenstall | Nummer |
Organisasjonen | String |
Prosentsats | Nummer |
Personnavn | String |
Telefonnummer | String |
Interessepunkt | String |
Hastighet | Nummer |
State | String |
Gateadresse | String |
Temperatur | Nummer |
URL | String |
Tykkelse | Nummer |
Postnummer | String |
Egendefinert entitet | Valg |
Opprett en variabel
Alle noder der du blir bedt om å velge en variabel som utdata, for eksempel som en spørsmål-node, oppretter automatisk en utdatavariabel av riktig type.
Velg en enhet du vil bruke
Spørsmålsnoder opprettes med flervalgsalternativer som standard. Hvis du vil bruke en annen forhåndsbygd eller tilpasset enhet, velger du Identifiser-boksen og velger informasjonstypen som robotens skal lytte etter.
Gi nytt navn til en variabel
Variabler tildeles automatisk et navn når du oppretter dem. En god fremgangsmåte er å gi variablene meningsfylte navn for å gjøre hensikten tydelig for alle andre som må vedlikeholde roboten.
Velg variabelen for å åpne den i ruten Variabelegenskaper.
Angi et nytt navn på variabelen under Variabelnavn.
Angi en variabel
Vanligvis bruker du en spørsmål-node til å lagre brukerinndata i en variabel. Det kan imidlertid oppstå situasjoner der du vil angi verdien selv. I slike tilfeller bruker du noden Angi variabelverdi.
Velg Legg til node (+) for å legge til en node, og velg deretter Angi en variabelverdi.
Velg boksen under Angi variabel, og velg Opprett en ny variabel.
Det opprettes en ny variabel. Typen er ukjent før du tildeler en verdi til den.
For Til verdi tilordner du en verdie ved å bruke et av følgende alternativer:
- Skriv inn en litteralverdi.
- Velg en eksisterende variabel av samme type. Denne handlingen angir variabelen til samme verdi som variabelen du velger.
- Bruke en Power Fx-formel. Power Fx-formler er nyttig for mer komplekse typer der litterale verdier ikke kan brukes, for eksempel tabell- og oppføringstyper.
Bruke litteralverdier
I stedet for å velge en variabelverdi kan du angi en litteralverdi i en hvilken som helst variabel.
Noden prøver å tolke litterale verdier som en streng, et tall eller en boolsk type. 123
tolkes for eksempel som et tall. Hvis du vil at den skal tolkes som en strengverdi i stedet, kan du pakke inn verdien i doble anførselstegn, for eksempel "123"
.
For noen scenarioer, eller der du bruker mer komplekse typer, bruker du en Power Fx-formel til å angi en bestemt type.
Variabler-rute
I Variabler-ruten kan du vise alle variablene som er tilgjengelige i emnet, uavhengig av hvilke noder de er definert eller brukt i. For hver variabel kan du velge om den kan motta verdien fra andre emner, returnere verdien til andre emner eller begge deler. Du kan også velge en variabel for å redigere egenskapene i ruten Variabelegenskaper.
Hvis du vil åpne Variabler-ruten, velger du Variabler på menylinjen til emnet.
Ruten Egenskaper for variabel
I ruten Variabelegenskaper kan du gi nytt navn til en variabel, se hvor en variabel brukes, eller konvertere en variabel til en global variabel. Du kan imidlertid ikke konvertere den fra en global variabel tilbake til en emnevariabel. Du kan også velge om den kan motta verdier fra eller sende verdien til andre emner.
Hvis du vil åpne ruten Variabelegenskaper, velger du en variabel i Variabler-ruten. Du kan også åpne ruten Variabelegenskaper ved å velge en variabel i en hvilken som helst node.
Systemvariabler
Hver robot leveres med innebygde systemvariabler som gir tilleggsinformasjon om en samtale.
Ikke alle systemvariabler vises i listen. Du må få tilgang til disse skjulte systemvariablene med en Power Fx-formel.
Hvis du vil bruke systemvariabler i en Power Fx-formel, må du legge til System.
før variabelnavnet. Hvis du for eksempel vil ta med systemvariabelen User.DisplayName
i en formel, må du henvise til den som System.User.DisplayName
.
Name | Type | Skjult | Definisjon |
---|---|---|---|
Activity.Channel | valgmulighet | synlig | Kanal-ID-en for gjeldende samtale |
Activity.ChannelData | alle | skjult | Et objekt som inneholder kanalspesifikt innhold |
Activity.ChannelId | string | skjult | Kanal-ID-en for gjeldende samtale, som en streng |
Activity.From.Id | string | skjult | Kanalspesifikk unik ID for avsenderen |
Activity.From.Name | string | skjult | Kanalspesifikt, brukervennlig navn på avsenderen |
Activity.Name | string | synlig | Navnet på hendelsen |
Activity.Text | string | synlig | Den siste meldingen sendt av brukeren |
Activity.Type | valgmulighet | synlig | Type aktivitet |
Activity.TypeId | string | skjult | Type aktivitet, som en streng |
Activity.Value | alle | skjult | Verdi med åpen ende |
Bot.Name | string | synlig | Navnet på roboten |
Channel.DisplayName | string | skjult | Viser navnet på kanalen |
Conversation.Id | string | synlig | Den unike ID-en for nåværende samtalen |
LastActivity.Id | string | synlig | ID-en for den forrige sendte aktiviteten |
LastMessage.Id | string | synlig | ID-en for den forrige meldingen sendt av brukeren |
LastMessage.Text | string | synlig | Den forrige meldingen sendt av brukeren |
Recognizer.TriggerMessage.Id | string | synlig | ID-en for brukermeldingen som utløste gjeldende emne |
Recognizer.TriggerMessage.Text | string | synlig | Brukermeldingen som utløste gjeldende emne |
User.DisplayName | string | synlig | Visningsnavnet til den påloggede brukeren |
Send variabler mellom emner
Når du omdirigerer et emne til et annet, kan du sende verdiene for variablene mellom det opprinnelige emnet og målemnet. Det er spesielt nyttig å sende variabler mellom emner når et tidligere emne allerede har hentet inn informasjon som et senere emne trenger. Brukerne setter pris på at de slipper å svare på det samme spørsmålet igjen.
Motta verdier fra andre emner
Når et emne definerer en variabel (for eksempel i en spørsmålsnode), ber roboten brukeren om å fylle inn verdien for variabelen. Hvis roboten allerede har hentet verdien i et tidligere emne, er det ingen grunn til å stille spørsmålet på nytt. Du kan angi variabelen til Motta verdier fra andre emner i disse tilfellene. Når et annet emne omdirigeres til dette, kan det sende verdien for en variabel (eller en litteralverdi) til denne variabelen og hoppe over spørsmålet. Opplevelsen for sluttbrukeren som snakker med roboten, er sømløs.
I dette eksemplet skal vi bruke to emner, Hilsning og Snakk med kunde. Begge emnene ber om kundens navn. Hvis Hilsning-emnet kjører først, vil imidlertid Snakk med kunde-emnet hoppe over spørsmålet. I stedet bruker den verdien til variabelen som sendes fra Hilsning-emne.
Her er flyten i Snakk til kunde-emnet:
Hvis dette emnet utløses først, blir brukeren spurt om Hva jeg skal kalle deg? som vist i Test robot-ruten. Den lagrer verdien i en strengvariabel som kalles userName
. Variabelen userName
angis også slik at den får verdien fra andre emner. Emnet konkluderer med meldingen Jeg håper du får en fin dag, {userName}.
Her er flyten i Hilsning-emnet:
Hvis dette emnet utløses først, blir brukeren spurt om Hva heter du? som vist i Test robot-ruten. Den lagrer verdien i en strengvariabel som kalles UserName
. Emnet sender meldingen Hyggelig å hilse på deg, {UserName}. Deretter blir det videresendt til Snakk til kunde-emne, som sender meldingen Jeg håper du får en fin dag, {userName}. Vær imidlertid oppmerksom på at Snakk til kunde-emnet hoppet over spørsmålet om brukerens navn. I stedet bruker den verdien til variabelen UserName
som sendes fra Hilsning-emne.
Til slutt, her er den andre samtalen igjen, denne gangen fra perspektivet til Snakk til kunde-emnet:
La oss gå gjennom trinnene for å konfigurere et emne for å motta verdier fra andre emner. Vi skal bruke det gjeldende eksemplet, men de samme trinnene vil fungere når et emne må ha en verdi fra en tidligere emne.
Konfigurer målemnet
Målemnet er emnet det omdirigeres til, det som mottar verdier fra andre emner. I vårt eksempel er det Snakk til kunde.
Opprett eller gå til målemnet.
Legg til en Spørsmål-node, og skriv inn
What should I call you?
for meldingen.Velg den forhåndsbygde enheten Personnavn under Identifiser.
Velg variabelen for å åpne den i ruten Variabelegenskaper. Gi den navnet
userName
, og velg deretter Motta verdier fra andre emner.Skriv inn
I hope you're having a wonderful day,
i meldingsboksen.Velg ikonet Sett inn variabel ({x}), og velg deretter userName.
Velg mellomrommet etter variabelen og skriv inn
!
.Lagre emnet.
Sett opp kildeemnet
Kildeemnet er emne som foretar omdirigeringen, det som angir verdien som sendes til målemnet. I vårt eksempel er det Hilsning.
Gå til kildeemnet.
Legg til en omdirigeringsnode og velg målemnet.
Velg + Legg til inndata og velg variabelen fra målemnet som du vil sende en verdi til.
Velg ikonet >, og velg deretter variabelen du vil sende verdi for.
Omdirigeringsnoden skal se slik ut:
Lagre emnet.
Returner verdier til opprinnelige emner
Når et emne omdirigeres til og henter en variabel ved å stille et spørsmål eller på en annen måte, kan variabelen returneres til det opprinnelige emnet. Variabelen blir en del av det opprinnelige emnet og kan brukes som en hvilken som helst annen variabel. Informasjon roboten henter er dermed tilgjengelig på tvers av emner, slik at behovet for globale variabler reduseres.
La oss fortsette med eksemplet fra forrige del. Vi stiller et nytt spørsmål i Snakk til kunde-emne, og vi returnerer deretter svaret til Hilsning-emne.
Konfigurer kildeemnet for en returnert variabel
Når du returnerer en variabel til et emne, er klideemnet emnet det omdirigeres til, det som angir verdien som sendes tilbake til den opprinnelige emne. I dette eksemplet er det Snakk til kunde.
Gå til kildeemnet.
Legg til en Spørsmål-node, og skriv inn
What city do you live in?
for meldingen.Velg den forhåndsbygde enheten Poststed under Identifiser.
Velg variabelen for å åpne den i ruten Variabelegenskaper. Gi den navnet
userCity
, og velg deretter Returner verdier til opprinnelige emner.Lagre emnet.
Konfigurer målemnet for en returnert variabel
Når du returnerer en variabel til et emne, er målemnet emnet som omdirigerer, det som mottar verdier fra andre emner. I vårt eksempel er det Hilsning.
Gå til målemnet.
Variabelen du valgte i kildeemnet, skal vises i Omdirigering-noden som en utdatavariabel.
Lagre emnet.