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 copilot 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:
- Ämnen kan bara användas i de ämnen där de skapas. 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 andrepilot. 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 String-värde "apples"
för resulterar det i ett fel.
När du testar en andrepilot kan en variabel visas tillfälligt som den okända typen. En variabel av typen okänd har ännu inte tilldelats ett värde.
Variabelordningen fastställs uppifrån och ned på designytan. Noder överst på redigeringsarbetsytan betraktas före noder 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 betraktas 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å utlösarenoder och gå till stegnoder .
Nodnamn kan vara upp till 500 tecken långa.
Välj en entitet att använda
Frågenoder skapas med flervalsalternativ 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 copilot 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 copilot.
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. Dit kan dock finnas situationer där du vill ställa in 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
När du ställer in en strängtypsvariabel och stöter på ett matchningsfel mellan Ange variabel och Till-värde visas ett felmeddelande och knappen Åtgärda typmatchningsfel . Välj knappen om du vill Copilot Studio att en formel Power Fx automatiskt ska generera 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 begrepp. 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. Copilot-fö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.För att tillåta alla copilots från miljön att komma åt hemligheten, skapa en tagg
AllowedEnvironments
på hemligheten och lägg till tillåtna miljö-ID:n separerade med kommatecken.Om du endast vill tillåta vissa copilots från miljön att använda Key Vault skapar du en tagg
AllowedCopilots
och sätter copilot-identifieraren i formatet{envId}/{schemaName}
. För flera värden, separera värdena med kommatecken.
Om det maximala antalet tecken har nåtts men du ändå behöver lägga till fler copilots lägger du till en till tagg med ett beskrivande men unikt namn (till exempel: AllowedCopilots2
).
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 copilot kan du exponera värdet av denna hemlighet för alla användare som kan redigera copilot i miljön eftersom sådana användare kan redigera copilot för att returnera värdet i SendMessage
-noden.
Systemvariabler
Varje copilot levereras med inbyggda systemvariabler som ger ytterligare information om en konversation.
Obs
Mer information om röstaktiverade copilot-variabler 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 copilot inom kanalen. I telefonkanalssammanhang är värdet för variabeln det telefonnummer som copilot 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 copilot |
Bot.Id |
string | ID för copilot |
Bot.Name |
string | Namnet på din copilot |
Bot.SchemaName |
string | Schemanamnet för copilot |
Bot.TenantId |
string | Klient-ID för copilot |
ClientPluginActions |
val | Samling dynamiska plugin-åtgärder för klientprogram som ska övervägas för generativa åtgärder |
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. Den här variabeln stöds endast om utlösaren är det |
Error.Message |
string | Felmeddelandet för det aktuella felet. Den här variabeln stöds endast om utlösaren är det |
FallbackCount |
Nummer | Den här variabeln räknar antalet gånger då en ämne inte kunde matchas mot användarindata. Den här variabeln stöds endast om utlösaren är det |
InactivityTimer.Continue |
boolean | Boolesk flagga som representerar om timern behöver fortsätta. Den här variabeln stöds endast om utlösaren är det |
InactivityTimer.Count |
Nummer | Antal gånger som OnInactivity-timern har utlösts på grund av inaktivitet hos användaren efter konfigurerad tid. Den här variabeln stöds endast om utlösaren är det |
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. Den här variabeln stöds endast om utlösaren är det |
Recognizer.IntentOptions |
val | Representerar avsiktsalternativen när identifieringsobjektet returnerar tvetydiga resultat. Den här variabeln stöds endast om utlösaren är det |
Recognizer.SelectedIntent |
val | Representerar den avsikt som har valts från identifieringsobjektet. Den här variabeln stöds endast om utlösaren är det |
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 fastställa varför flera ämnen matchade. Den här variabeln stöds endast om utlösaren är det |
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. Den här variabeln stöds endast om utlösaren är det |
Variabler för integrerad autentisering (standard)
Följande variabler är tillgängliga när du har konfigurerat din copilot 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 copilots.
Mer information finns i Autentiseringsvariabler.
Name | Type | Definition |
---|---|---|
User.DisplayName |
string | Visningsnamnet för användaren som för närvarande talar med copilot. |
User.Email |
string | E-postadressen för användaren som för närvarande talar med copilot. |
User.FirstName |
string | Förnamnet för användaren som för närvarande talar med copilot. |
User.Id |
string | Unikt ID för användaren som för närvarande talar med copilot. |
User.IsLoggedIn |
boolean | Boolesk flagga som representerar om användaren som för närvarande talar med copilot autentiseras eller inte. |
User.LastName |
string | Efternamnet för användaren som för närvarande talar med copilot. |
User.PrincipalName |
string | Användarens huvudnamn för användaren som för närvarande talar med copilot. |
Variabler för manuell autentisering med Generic OAuth 2
Följande variabler är tillgängliga när du har konfigurerat din copilot att använda tjänsteleverantören Generic OAuth 2.
Name | Type | Definition |
---|---|---|
User.AccessToken |
string | Åtkomsttoken för användaren som autentiserar med copilot. |
User.DisplayName |
string | Visningsnamnet för användaren som för närvarande talar med copilot. |
User.Id |
string | Unikt ID för användaren som för närvarande talar med copilot. |
User.IsLoggedIn |
boolean | Boolesk flagga som representerar om användaren som för närvarande talar med copilot autentiseras eller inte. |
Variabler för manuell autentisering med Microsoft Entra ID
Följande variabler är tillgängliga när du har konfigurerat din copilot 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 copilot. |
User.DisplayName |
string | Visningsnamnet för användaren som för närvarande talar med copilot. |
User.Email |
string | E-postadressen för användaren som för närvarande talar med copilot. |
User.FirstName |
string | Förnamnet för användaren som för närvarande talar med copilot. |
User.Id |
string | Unikt ID för användaren som för närvarande talar med copilot. |
User.IsLoggedIn |
boolean | Boolesk flagga som representerar om användaren som för närvarande talar med copilot autentiseras eller inte. |
User.LastName |
string | Efternamnet för användaren som för närvarande talar med copilot. |
User.PrincipalName |
string | Användarens huvudnamn för användaren som för närvarande talar med copilot. |
Variabler för röstaktiverade copiloter
Följande variabler är endast tillgängliga i röstaktiverade copilots.
Obs
Mer information om röstaktiverade copilot-variabler 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 slutanvändarens 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 i en frågenod) ställer copilot frågan till användaren för att fylla i variabelns värde. Om copilot 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 copilot ä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 copilot, 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 visas i rutan Testa copilot, om detta ämne utlöses först frågar det användaren: ”Vad heter du?” Det lagrar värdet i en strängvariabel som kallas 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ålets ä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 om copilot är alltså tillgänglig i olika avsnitt, 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.