Arbeta med variabler
Du kan använda variabler för att spara kundens svar och återanvända deras innehåll senare i konversationen.
Du kan också använda variabler för att skapa logiska uttryck som dynamiskt dirigerar kunden längs olika konversationsbanor. Spara till exempel ett kundnamn i en variabel som anropas UserName
och agenten kan adressera kunden efter namn allt eftersom konversationen fortsätter.
Variabler kan också skickas till och returneras från andra avsnitt och Power Automate-flöden.
Variabler kan finnas på fyra nivåer eller omfattningar:
- Ämne variabler kan bara användas i de ämnen de skapas i. Denna omfattning är standard för variabler som du skapade.
- Globala variabler kan användas i alla ämnen. Du kan ändra omfattningen för valfri ämnesvariabel att den blir en global variabel.
- Systemvariabler skapas automatiskt med din agent. De ger mer sammanhangsbaserad information om konversationen eller användaren. De är tillgängliga i alla avsnitt.
- Miljövariabler skapas i Power Platform och är skrivskyddade i Copilot Studio. De lagrar parameternycklarna och värdena som sedan används som indata för olika andra programobjekt, inklusive Copilot Studio. Genom att separera parametrarna från de tidskrävande objekten kan du ändra värdena i samma miljö eller när du migrerar lösningar till andra miljöer. Alternativet är att lämna hårdkodade parametervärden i de komponenter som använder dem.
Variabeltyper
En variabel associeras med en bastyp. Typen avgör vilka värden som variabeln kan innehålla och de operatorer du kan använda när du skapar ett logiskt uttryck med den.
Type | Beskrivning |
---|---|
String | En sekvens med tecken som används för att representera text |
Booleskt | Ett logiskt värde som endast kan vara true eller false |
Antal | Alla reella tal |
Register | En lista med värden, men alla värden måste vara av samma typ |
Post | En samling namn/värde-par där värden kan vara av valfri typ |
Datum/tid | Datum, tid, veckodag eller månad i förhållande till en tidpunkt |
Alternativ | En lista med strängvärden med associerade synonymer |
Tom | En platshållare för ”inget värde” eller ”okänt värde”. Mer information finns i Tomma värden i Power Fx |
En variabels typ anges första gången ett värde tilldelas den. Efter detta är typen för variabeln fast och kan inte tilldelas värden av någon annan typ. En variabel med startvärdet 1
tilldelad till exempel typen Nummer. Om du försöker tilldela det till ett strängvärde för "apples"
resulterar det i ett fel.
När du testar en agent kan en variabel visas tillfälligt som typen okänd. En variabel av typen okänd har ännu inte tilldelats ett värde.
Variabelordningen fastställs uppifrån och ned på designytan. Noder högst upp på redigeringsarbetsytan beaktas före noderna längst ned.
När du skapar grenar med Villkor noder ordnas grenar från vänster till höger. Noder i grenen längst till vänster beaktas före noder i grenen längst till höger.
Entiteter
Copilot Studio använder entiteter för att identifiera en viss typ av information utifrån en användares svar. Den identifierade informationen sparas i en variabel av den typ som är lämplig för informationen. I följande tabell visas den variabelbastyp som är associerad med fördefinierade entiteter.
Enhet | Bastyp för variabel |
---|---|
Flervalsalternativ | Alternativ |
Användarens fullständiga svar | String |
Ålder | Antal |
Booleskt | Booleskt |
City | String |
Color | String |
Kontinent | String |
Land eller region | String |
Datum och tid | Datum/tid |
String | |
Event | String |
Integer | Integer |
Språk | String |
Money | Antal |
Antal | Antal |
Ordning | Antal |
Organisation | String |
Procentandel | Antal |
Personnamn | String |
Telefonnummer | String |
Orienteringspunkt | String |
Hastighet | Antal |
State | String |
Gatuadress | String |
Temperatur | Antal |
webbadress | String |
Grovlek | Antal |
Postnummer | String |
Anpassad entitet | Alternativ |
Skapa en variabel
Alla noder som uppmanar dig att välja en variabel som utdata, till exempel en nod av typen Fråga, skapar automatiskt en utdatavariabel av lämplig typ.
Tips!
Byt namn på noder så att de blir enklare att identifiera. Välj nodens namnfält om du vill uppdatera namnet direkt eller välj ikonen Mer (...) för noden och välj Byt namn på menyn. Du kan också byta namn på noder i kodredigeraren.
Det går inte att byta namn på noder av typen Utlösare och Gå till steg.
Nodnamn kan vara upp till 500 tecken långa.
Välj en entitet att använda
Frågenoder skapas med flera alternativ som standard. Om du vill använda en annan inbyggd eller anpassad entitet markerar du rutan Identifiera och väljer vilken typ av information som agenten ska lyssna efter.
Döpa om en variabel
Variabler tilldelas automatiskt ett namn när du skapar dem. Det bästa är att ge dina variabler meningsfulla namn för att göra syftet tydlig för alla andra som måste behålla din agent.
Välj variabeln för att öppna den i fönstret Variabelegenskaper.
Under Variabelnamn, ange ett nytt namn för din variabel.
Ange en variabel
Vanligtvis använder du en frågenod för att spara användarindata till en variabel. Det kan dock finnas situationer där du vill ange värdet själv. I dessa fall använder du noden Ange variabelvärde.
Välj Lägg till nod (+) om du vill lägga till en nod och välj sedan Variabelhantering>Ange ett variabelvärde.
Välj rutan under Ange variabel och välj Skapa en ny variabel.
En ny variabel har skapats. Dess typ är okänd tills du tilldelar det ett värde.
För Till-värde tilldelar du ett värde med hjälp av något av följande alternativ:
- Skriv ett literalt värde.
- Välj en befintlig variabel av samma typ. Denna åtgärd anger din variabel till samma värde som den variabel du väljer.
- Använd en Power Fx-formel. Power Fx formler är mer användbara för mer komplexa typer där literala värden inte kan användas, till exempel tabell- och posttyper.
Obs
Om du stöter på ett matchningsfel mellan Ange variabel och Till-värde när du anger en strängtypsvariabel visas ett felmeddelande och knappen Korrigera typmatchningsfel . Välj knappen om du vill att Copilot Studio automatiskt genererar en Power Fx-formel som löser matchningsfelet.
Använd literala värden
Istället för att välja ett variabelvärde kan du mata in ett literalt värde i valfri variabel.
Noden försöker tolka bokstavliga värden som sträng, tal eller boolesk. Till exempel tolkas 123
som ett tal. Om vill att det ska tolkas som ett strängvärde kan du innesluta värdet värdet i dubbla citattecken, som: "123"
.
I vissa scenarier – eller där du använder mer komplexa typer -, kan du använda en Power Fx-formel för att ange en viss typ.
Fönstret Variabler
I rutan Variabler kan du visa alla tillgängliga variabler i ämnet, oavsett vilka noder de definieras eller används i. För varje variabel kan du välja om den ska kunna ta emot värdet från andra ämnen, returnera värdet till andra ämnen eller både och. Du kan också välja en variabel för att redigera dess egenskaper i fönstret Variabelegenskaper.
Du öppnar rutan Variabler i ämnesmenyn genom att välja Variabler.
Fönstret Variabelegenskaper
I rutan variabelegenskaper kan du byta namn på en variabel, se var den används eller konvertera den till en global variabel. Du kan inte konvertera tillbaka den från en global variabel till en ämnesvariabel. Du kan också välja om den ska kunna ta emot värden från eller skicka vidare dess värde till andra ämnen.
Öppna fönstret Variabelegenskaper genom att markera en variabel i fönstret Variabler. Du kan också öppna fönstret med variabelegenskaper genom att välja en variabel i valfri nod.
Miljövariabler
Miljövariabler är ett Power Platform-koncept. Miljövariabler möjliggör det grundläggande scenariot för hantering av appens livscykel (ALM) för att flytta en applikation mellan Power Platform-miljöer. I det här scenariot förblir programmet exakt samma förutom några viktiga externa referenser som skiljer sig mellan källmiljön och målmiljön.
Använd Miljövariabler på samma sätt som variablerna Ämne, Global och System. En viktig skillnad är att du bara kan använda miljövariabler i skrivskyddat läge. Agentförfattare inte kan ändra miljövariabeln i Copilot Studio. Administratörer kan dock ändra värdet för miljövariabler i PowerApps-portalen.
Miljövariabeltyper i Copilot Studio mappning till PowerApps datatyper enligt följande:
Typ i Copilot Studio | Typ i PowerApps |
---|---|
Decimalnummer | Antal |
JSON | Identifiera typen från värdet. Om inte Json => Ospecificerad (valideringsfel) |
Text | string |
Ja/Nej | Booleskt |
Data source | string |
Hemlighet | String |
Obs
Miljövariabelfel visas i chatten Test och vid publicering. Dessa fel visas emellertid inte i listan Ämne eftersom de inte är ämnesvariabler.
Du kan inte skapa eller redigera miljövariabler i Copilot Studio. Du måste använda PowerApps-portalen för att ändra eller ange miljövariabler. Från Copilot Studio, kan du använda rutan Variabler för att visa information om en miljövariabel. Rutan Variabler har också en länk till den ursprungliga redigeringsupplevelsen.
Använd Azure Key Vault-hemligheter i miljövariabler
En miljövariabel kan referera till en säkerhetsnyckel i Key Vault. Det här är ett specialfall för miljövariabler med unika saker att tänka på.
För att skapa en hemlig miljövariabel i PowerApps-portalen måste du konfigurera dess Key Vault.
Utöver konfigurationen ovan måste du utföra följande åtgärder för att auktorisera Copilot Studio att läsa Key Vault:
Tilldela
Key Vault Secrets User
-rollen tillMicrosoft Virtual Agents Service
-programmet.Om du vill ge alla agenter från miljön åtkomst till hemligheten skapar du en tagg
AllowedEnvironments
för hemligheten och lägger till tillåtna miljö-ID:n avgränsade med kommatecken.Om du endast vill tillåta vissa agenter från miljön att använda Key Vault skapar du en tagg
AllowedAgents
och sätter agentidentifieraren i formatet{envId}/{schemaName}
. För flera värden, separera värdena med kommatecken.
Om du når det maximala antalet tecken men ändå behöver lägga till fler agenter lägger du till en annan tagg med ett beskrivande men unikt namn (till exempel: AllowedAgents2
).
Det hemliga värdet cachelagras i körtiden Dialog i fem minuter. Misslyckade läsningar cachelagras i 30 sekunder.
Varning
Genom att lägga till hemligheten i agent kan du exponera värdet av denna hemlighet för alla användare som kan redigera agenten i miljön eftersom sådana användare kan redigera agenten för att returnera värdet i SendMessage
-noden.
Systemvariabler
Varje agent levereras med inbyggda systemvariabler som ger ytterligare information om en konversation.
Obs
Mer information om röstaktiverade agentvariabler finns i Använda röstvariabler.
Alla systemvariabler visas inte i listan. Du måste komma åt de dolda systemvariablerna med en Power Fx formel.
Om du vill använda systemvariabler i en Power Fx-formel måste du lägga till System.
före variabelnamnet. Om du till exempel vill ta med systemvariabeln User.DisplayName
i en formel refererar du till den som System.User.DisplayName
.
Name | Type | Definition |
---|---|---|
Activity.Attachments |
tabell | De bifogade filer som användaren bifogar |
Activity.Channel |
val | Kanal-ID för aktuell konversation |
Activity.ChannelData |
någon | Ett objekt som innehåller kanalspecifikt innehåll |
Activity.ChannelId |
string | Kanal-ID för aktuell konversation, som en sträng |
Activity.From.Id |
string | Kanalspecifikt, unikt ID för avsändaren |
Activity.From.Name |
string | Kanalspecifikt användarnamn för avsändaren |
Activity.Name |
string | Namnet på eventet |
Activity.Recipient.Id |
string | Egenskapen Typ för den inkommande aktiviteten. |
Activity.Recipient.Name |
string | Representerar visningsnamnet för agenten inom kanalen. I telefonkanalssammanhang är värdet för variabeln det telefonnummer som agenten bifogas till. |
Activity.Text |
string | Det senaste meddelande nvändaren skickat |
Activity.Type |
val | Typ av Aktivitetstyp |
Activity.TypeId |
string | Typ av aktivitet, som en sträng |
Activity.Value |
någon | Öppet värde |
Bot.EnvironmentId |
string | Miljö-ID för agent |
Bot.Id |
string | ID på agenten |
Bot.Name |
string | Namnet på din agent |
Bot.SchemaName |
string | Schemanamnet för agenten |
Bot.TenantId |
string | Klient-ID för agenten |
ClientPluginActions |
val | Samling dynamiska plugin-åtgärder för klientprogram som ska övervägas för generativ orkestrering |
Conversation.Id |
string | Den aktuella konversationens unika ID |
Conversation.InTestMode |
boolean | Boolesk flagga som representerar om konversationen inträffar i testarbetsytan |
Conversation.LocalTimeZone |
string | Namnet på den tidszon som ska användas av användaren i databasformatet för IANA-tidszon |
Conversation.LocalTimeZoneOffset |
datetime | Tidsförskjutningen från UTC för den aktuella lokala tidszonen |
Error.Code |
string | Felkoden för det aktuella felet. Obs! Den här variabeln stöds bara om utlösaren är |
Error.Message |
string | Felmeddelandet för det aktuella felet. Obs! Den här variabeln stöds bara om utlösaren är |
FallbackCount |
Nummer | Den här variabeln räknar antalet gånger då en ämne inte kunde matchas mot användarindata. Obs! Den här variabeln stöds bara om utlösaren är |
InactivityTimer.Continue |
boolean | Boolesk flagga som representerar om timern behöver fortsätta. Obs! Den här variabeln stöds bara om utlösaren är |
InactivityTimer.Count |
Nummer | Antal gånger som OnInactivity-timern har utlösts på grund av inaktivitet hos användaren efter konfigurerad tid. Obs! Den här variabeln stöds bara om utlösaren är |
LastMessage.Id |
string | ID för det föregående meddelande användaren skickat |
LastMessage.Text |
string | Det föregående meddelande som användaren skickat |
Recognizer.ExtractedEntities |
val | Representerar de extraherade entiteterna från det utlösande meddelandet. Obs! Den här variabeln stöds bara om utlösaren är |
Recognizer.IntentOptions |
val | Representerar avsiktsalternativen när identifieringsobjektet returnerar tvetydiga resultat. Obs! Den här variabeln stöds bara om utlösaren är |
Recognizer.SelectedIntent |
val | Representerar den avsikt som har valts från identifieringsobjektet. Obs! Den här variabeln stöds bara om utlösaren är |
Recognizer.TriggeringMessage.Id |
string | ID för användarmeddelandet som utlöste aktuellt ämne |
Recognizer.TriggeringMessage.Text |
string | Användarmeddelandet som utlöste aktuellt ämne |
Recognizer.MultipleTopicsMatchedReason |
string | Används för att avgöra varför flera ämnen matchades. Obs! Den här variabeln stöds bara om utlösaren är |
User.Language |
val | Den här variabeln används för att ange användarspråket per konversation. |
SignInReason |
val | Används för att avgöra vilket inloggningsalternativ som krävs när ämnet utlöses. Obs! Den här variabeln stöds bara om utlösaren är |
Variabler för integrerad autentisering (standard)
Följande variabler är tillgängliga när du har konfigurerat din agent till att autentisera med Microsoft. Entra ID-autentisering används och bara Teams- och PowerApps-kanaler tillåts. Detta är standardvärdet för nya agenter.
Mer information finns i Autentiseringsvariabler.
Name | Type | Definition |
---|---|---|
User.DisplayName |
string | Visningsnamnet för användaren som för närvarande talar med agenten. |
User.Email |
string | E-postadressen för användaren som för närvarande talar med agenten. |
User.FirstName |
string | Det första namnet för användaren som för närvarande talar med agenten. |
User.Id |
string | Unikt ID för användaren som för närvarande talar med agenten. |
User.IsLoggedIn |
boolean | Boolesk flagga som representerar om användaren som för närvarande talar med agenten autentiseras eller inte. |
User.LastName |
string | Det sista namnet för användaren som för närvarande talar med agenten. |
User.PrincipalName |
string | Användarens huvudnamn för användaren som för närvarande talar med agenten. |
Variabler för manuell autentisering med Generic OAuth 2
Följande variabler är tillgängliga när du har konfigurerat din agent till att autentisera med tjänstleverantören Generic OAuth 2.
Name | Type | Definition |
---|---|---|
User.AccessToken |
string | Åtkomsttoken för användaren som autentiserar med agenten. |
User.DisplayName |
string | Visningsnamnet för användaren som för närvarande talar med agenten. |
User.Id |
string | Unikt ID för användaren som för närvarande talar med agenten. |
User.IsLoggedIn |
boolean | Boolesk flagga som representerar om användaren som för närvarande talar med agenten autentiseras eller inte. |
Variabler för manuell autentisering med Microsoft Entra ID
Följande variabler är tillgängliga när du har konfigurerat din agent till att autentisera med tjänstleverantören Microsoft Entra ID (tidigare Azure Active Directory).
Name | Type | Definition |
---|---|---|
User.AccessToken |
string | Åtkomsttoken för användaren som autentiserar med agenten. |
User.DisplayName |
string | Visningsnamnet för användaren som för närvarande talar med agenten. |
User.Email |
string | E-postadressen för användaren som för närvarande talar med agenten. |
User.FirstName |
string | Det första namnet för användaren som för närvarande talar med agenten. |
User.Id |
string | Unikt ID för användaren som för närvarande talar med agenten. |
User.IsLoggedIn |
boolean | Boolesk flagga som representerar om användaren som för närvarande talar med agenten autentiseras eller inte. |
User.LastName |
string | Det sista namnet för användaren som för närvarande talar med agenten. |
User.PrincipalName |
string | Användarens huvudnamn för användaren som för närvarande talar med agenten. |
Variabler för röstaktiverade agenter
Följande variabler är endast tillgängliga i röstaktiverade agenter.
Obs
Mer information om röstaktiverade agentvariabler finns i Använda röstvariabler.
Name | Type | Definition |
---|---|---|
Activity.InputDTMFKeys |
string | Det råa DTMF-nyckelvärdet som tagits emot från telefoni. |
Activity.SpeechRecognition.Confidence |
Nummer | Konfidenspoäng för ASR-hypotesens hela resultat, 0 till 1. |
Activity.SpeechRecognition.MinimallyFormattedText |
string | Lätt formaterad text av ASR-hyptesresultatet. Till exempel fem hundra dollar. Ord skrivs ut, men grundläggande versaler och skiljetecken inkluderas. |
Activity.UserInputType |
val | Indatatypen från kundens senaste indata. Värdet kan vara antingen test, tal eller DTMF. |
Conversation.OnlyAllowDTMF |
boolean | Boolesk som representerar om IVR-värdet ska anges till endast DTMF-läge vid körning. |
Conversation.SipUuiHeaderValue |
string | UUI-rubriksträngen som används för att skicka sammanhang till IVR vid samtalsstart. |
Skicka variabler mellan avsnitt
När du omdirigerar ett ämne till ett annat kan du skicka värdena för variabler mellan det ursprungliga ämnet och målämnet. Att skicka variabler mellan ämnen är särskilt användbart när ett tidigare ämne redan samlat in information som ett senare ämne behöver. Dina användare kommer att uppskatta att du inte behöver besvara samma frågor igen.
Ta emot värden från andra ämnen
När ett ämne definierar en variabel (till exempel via en frågenod) agenten ställer frågan till användaren för att fylla i variabelns värde. Om agenten redan har förvärvat värdet i ett tidigare ämne finns det ingen anledning att ställa frågan igen. I dessa fall kan du definiera variabeln som Ta emot värden från andra avsnitt. När ett annat ämne omdirigerar till det här, kan det skicka antingen värdet för en variabel (eller ett bokstavligt värde) i den här variabeln, och den hoppar över frågan helt. Upplevelsen för användaren att prata med agenten är sömlös.
I det här exemplet använder vi två avsnitt: Hälsning och Samtal med kund. I båda avsnitten uppmanas kunden att ange ett namn. Om Hälsningsämne körs först hoppar Samtal med kund-ämnet över frågan. I stället används värdet för variabeln som skickas från Hälsningsämnet.
Här är flödet av Samtal med kund-ämnet:
Som visas i rutan Testa agenten, om detta ämne utlöses först frågar det användaren: "Vad ska jag kalla dig?" Det lagrar värdet i en strängvariabel som kallas userName
. Variabeln userName
är också inställd på att hämta värdet från andra ämnen. Ämnet avslutar med meddelandet ”Jag hoppas att du har en bra dag {userName}!”
Här är flödet av Hälsningsämnet:
Som du ser i fönstret Test agent, om det här avsnittet utlöses först, frågar det användaren: "Vad heter du?" Den lagrar värdet i en strängvariabel som anropas UserName
. Ämnet skickar meddelandet ”Trevligt att träffas {UserName}!” Den omdirigerar sedan till samtalet med kund-ämnet, som skickar meddelandet: ”Jag hoppas att du får en bra dag {userName}!” Observera att ämnet Samtal med kund-ämnet hoppade över att fråga efter användarens namn igen. Istället använde den värdet av UserName
variabeln som skickas från Hälsningsämnet.
Slutligen här är det andra samtalet igen, den här gången utifrån ett Samtal med kund-ämnet:
Nu ska vi gå igenom stegen för att konfigurera en ämne som ska ta emot värden från andra avsnitt. Vi använder vårt aktuella exempel, men samma steg fungerar när som helst ämne behöver få ett värde från en tidigare ämne.
Konfigurera målämnet
Målämnet är det som ämnet omdirigeras till, det som tar emot värden från andra ämnen. I vårt exempel är det Samtal med kund.
Skapa eller gå till målämnet.
Lägg till en frågenod och ange
What should I call you?
för meddelandet.Under Identitet, välj den fördefinierade entiteten Personnamn.
Välj variabeln för att öppna rutan variabelegenskaper. Namnge den
userName
och välj sedan Ta emot värden från andra ämnen.I meddelanderutan, skriv
I hope you're having a wonderful day,
.Välj ikonen Infoga variabel ({x}) och välj sedan userName.
Markera utrymmet efter variabeln och typen
!
.Spara ämnet.
Ange källämne
Källämnet som ämnet som gör omdirigering, det som anger det värde som ska skickas till målämnet. I vårt exempel är det Hälsning.
Gå till källämnet.
Lägg till en omdirigeringsnod och välj målämne.
Välj + Lägg till indata och välj sedan variabeln från målämnet som du vill skicka ett värde till.
Markera ikonen > och välj sedan variabeln vars värde du vill skicka.
Omdirigeringsnoden bör se ut så här:
Spara ämnet.
Återställ värden till ursprungliga ämnen
När ett ämne omdirigeras till och erhåller en variabel genom att ställa en fråga eller på något annat sätt, kan variabeln returneras till det ursprungliga ämnet. Variabeln blir också en del av ursprungsversionen ämne kan användas som en annan variabel. Information som agent får är därmed tillgänglig över ämnesgränserna, vilket minskar behovet av globala variabler.
Vi fortsätter med exemplet från föregående avsnitt. Vi ställer en ny fråga Samtal med kund-ämnet och besvarar sedan svaret på Hälsningsämnet.
Ställ in källämnet för en returnerad variabel
När du returnerar en variabel till ett ämne är källämnet det ämne som omdirigeras till, det som ger det värde som ska skickas tillbaka till det ursprungliga ämnet. I detta exempel är det Samtal med kund.
Gå till källämnet.
Lägg till en frågenod och ange
What city do you live in?
för meddelandet.Under Identitet, välj den fördefinierade entiteten Ort.
Välj variabeln för att öppna rutan variabelegenskaper. Namnge den
userCity
och välj sedan Återställ värden till ursprungliga ämnen.Spara ämnet.
Ställ in målämnet för en returnerad variabel
När du returnerar en variabel till ett ämne är målämne det ämne som gör omdirigeringen, det som tar emot värden från andra ämnen. I vårt exempel är det Hälsning.
Gå till målämnet.
Variabeln du valde i källfilen ämne visas i noden Omdirigera som en utdatavariabel.
Spara ämnet.