Dela via


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 kallad "customerName" och agenten kan tilltala kunden vid namn under samtalets gång.

Variabler kan också skickas till och returneras från andra avsnitt och Power Automate-flöden.

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.

Skärmbild av en frågenod med namnet och typen på standardvariabeln som är försent.

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.

Skärmbild på en fråga-nod med panelen Välj information att identifiera öppen.

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.

  1. Välj variabeln för att öppna den i fönstret Variabelegenskaper.

  2. 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 i en variabel. Det kan dock finnas situationer där du vill ange värdet för en variabel själv. I dessa fall använder du noden Ange variabelvärde.

  1. Välj Lägg till nod (+) om du vill lägga till en nod och välj sedan Variabelhantering>Ange ett variabelvärde.

  2. Välj rutan under Ange variabel och välj Skapa en ny variabel.

    Skärmbild på knappen Skapa en ny variabel.

    En ny variabel har skapats. Dess typ är okänd tills du tilldelar det ett värde.

    Skärmbild av noden Ange variabelvärde med en ny variabel av okänd typ.

  3. 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ända variabler i åtgärdsnoder

Om du använder en variabel i en åtgärdsnod och dess bastyp matchar en parametertyp som har angetts för ett flöde eller för en Bot Framework färdighet, kan du mata in den i den parametern. Utdata från åtgärdsnoder genererar nya variabler.

Skärmbild av en åtgärdsnod med indata- och utdataparametrar för en färdighetsåtgärd.

Använd literala värden för variabla indata

I noder där du kan ange ett värde för indataparametrar kan du alltid ange ett literalt värde i stället för att välja en annan variabel som värde.

Skärmbild med ett literalt värde för en variabel indataparameter med namnet productName.

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 (till exempel scenarier med komplexa typer) kan du behöva använda en Power Fx-formel för att ange en viss typ.

Använd Azure Key Vault-hemligheter i miljövariabler

En miljövariabel kan referera till en säkerhetsnyckel i Key Vault. Hemliga miljövariabler är ett speciellt fall av miljövariabler med unika saker att tänka på.

För att skapa en hemlig miljövariabel i Power Apps-portalen måste du konfigurera dess Key Vault.

För att auktorisera Copilot Studio för att läsa Key Vault måste du utföra följande åtgärder:

  1. Tilldela Key Vault Secrets User-rollen till Microsoft Virtual Agents Service-programmet.

  2. 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.

  3. 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.

Fönstret Variabler

I rutan Variabler kan du visa alla variabler som är tillgängliga för ett ämne, 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.

Skärmbild av rutan Variabler i redigeringsfönstret Copilot Studio där knappen Variabler är försent.

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. Det går inte att konvertera tillbaka en global variabel till en ämnesvariabel. Du kan också välja om en ämnevariabel kan ta emot värden från eller skicka dess värde till andra ämnen.

För att öppna rutan Variabelegenskaper för en variabel markerar du den önskade variabeln i Variabler. Du kan också öppna fönstret med variabelegenskaper genom att välja en variabel i valfri nod.

Skicka variabler mellan avsnitt

När du omdirigerar ett ämne till ett annat kan du skicka värdena för variabler från det ursprungliga ämnet till målämnet och även returnera värden från destinationsämnet till det ursprungliga ä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å ämnen: 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 ämnet Samtal med kund över frågan. I stället används värdet för variabeln som skickades från ämnet Hälsning.

Här är flödet av ämnet Samtal med kund:

Skärmbild av konversationsflödet Samtal med kund.

Som du ser i testpanelen, om det här avsnittet utlöses först, frågar det användaren: "Vad ska jag kalla dig?" Den lagrar värdet i en strängvariabel som kallas customerName. Variabeln customerName är också inställd för att få sitt värde från andra ämnen. Ämnet avslutas med meddelandet "Jag hoppas att du har en underbar dag customerName!"

Här är flödet av Hälsningsämnet:

Skärmbild av konversationsflödet Hälsningsämne.

Som du ser i testpanelen, 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 kallas customerName. Ämnet skickar meddelandet "Trevligt att träffas customerName!" Det omdirigerar sedan till ämnet Samtal med kund som skickar meddelandet "Jag hoppas att du har en underbar dag customerName!" Observera emellertid att ämnet Samtal med kund hoppade över att fråga efter användarens namn igen. I stället används värdet för variabeln customerName som skickades från ämnet Hälsning.

Slutligen här är det andra samtalet igen, den här gången utifrån ett ämnet Samtal med kund:

Skärmbild av samtalsflödet för Samtal med kund-ämnet när hälsningsämnet utlöses först.

Nu ska vi gå igenom stegen för att konfigurera en ämne som ska ta emot värden från andra avsnitt. Vårt exempelscenario använder det fördefinierade ämnet Hälsning som källämne och ett nytt ämne Samtal med kund som målämne, men samma steg fungerar för alla ämnen som bör använda ett värde från ett tidigare ämne när det är möjligt.

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.

  1. Skapa ett nytt ämne och kalla det för "Samtal med kund".

  2. Lägg till triggerfraser som "prata med mig", "tala med mig", "prata med mig".

  3. Lägg till en frågenod och skriv "Vad ska jag kalla dig?" för meddelandet.

  4. Under Identitet, välj den fördefinierade entiteten Personnamn.

  5. Välj namnet på variabel. Panelen för Variabelegenskaper öppnas.

  6. Ersätt standardnamnet med "customerName" och välj sedan Ta emot värden från andra ämnen.

    Skärmbild av panelen Variabel egenskaper som visar variabeln kundnamn och dess egenskaper.

  7. Lägga till en nod av typen Meddelande.

  8. I meddelanderutan skriver du "Jag hoppas att du har en underbar dag".

  9. Välj ikonen Infoga variabel ({x}) och välj sedan customerName.

  10. Markera utrymmet efter variabeln och ange "!".

  11. Spara ämnet.

Ange källämne

Källämnet är ämnet som dirigerar om, det ämne som tillhandahåller värdet och skickar det till målämnet. I vårt exempel är det Hälsning.

  1. Gå till ämnet Hälsning och ta bort standardnoderna, förutom noden Utlösaren.

  2. Lägg till en frågenod och skriv "Vad heter du?" för meddelandet.

  3. Under Identitet, välj den fördefinierade entiteten Personnamn.

  4. Ersätt standardnamnet med "customerNameFromGreeting".

  5. Lägg till en nod av typen Meddelande.

  6. I meddelanderutan anger du "Trevligt att träffas".

  7. Välj ikonen Infoga variabel ({x}) och välj sedan customerNameFromGreeting.

  8. Markera utrymmet efter variabeln och ange "!".

  9. Lägg till en nod för Omdirigera och välj målämnet Samtal med kund.

  10. Välj Lägg till indata och välj sedan variabeln från målämnet som du vill skicka ett värde till.

    Skärmbild av avsnittet Hälsning med variabeln customerName tillagd som indata i en omdirigerad nod.

  11. Välj ikonen > och välj sedan variabeln vars värde du vill skicka customerNameFromGreeting, i det här exemplet.

    Omdirigeringsnoden bör se ut så här:

    Skärmbild av den slutförda omdirigeringsnoden i ämnet Hälsning.

  12. 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 i ämnet Samtal till kund och returnerar svaret på ämnet Hälsning.

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 tillhandahåller det värde som ska vidarebefordras till det ursprungliga ämnet. I det här exemplet är källämnet Samtal med kund.

  1. Gå till källämnet.

  2. Lägg till en frågenod och skriv "I vilken stad bor du i?" för meddelandet.

  3. Under Identitet, välj den fördefinierade entiteten Ort.

  4. Välj variabeln för att öppna rutan variabelegenskaper. Ge den namnet "customerCity" och välj sedan Returnera värden till ursprungliga ämnen.

    Skärmbild av ämnet Samtal till kund med variabeln customerCity och dess egenskaper markerade.

  5. Lägg till en nod av typen Meddelande.

  6. Välj ikonen Infoga variabel ({x}) och välj sedan customerCity.

  7. Efter variabeln i meddelanderutan skriv "det måste vara vackert så här års!".

  8. Spara ämnet.

Ställ in målämnet för en returnerad variabel

När du returnerar en variabel till ett avsnitt är målämnet det ämne som tar emot värden från det aktuella avsnittet. I vårt exempel är destinationsämnet ämnet Hälsning.

  1. Gå till målämnet.

  2. Variabeln du valde i källämnet ska visas på noden Omdirigera som en utdatavariabel.

    Skärmbild av Hälsningsfrasen ämne konversationsflödet med en returnerad variabel i en omdirigerad nod.

  3. Spara ämnet.

Parsa värdenod

Med noden Parsa värde kan du konvertera ett värde av en typ till ett värde av en annan typ. När du lägger till en nod i ett ämne väljer du ikonen Lägg till noden , pekar på Variabelhantering och välj Parsa värde.

Skärmbild på menyn där du lägger till en nod, väljer Variabel hantering och sedan Parse-värde.

Huvudscenarier där noden Parsa värde används fokuserar på att konvertera råa JSON- eller variabler utan typ (vars värde eller struktur inte vet förrän runtime, till exempel ChannelData) till olika typer av variabler.

Processen startar när ett flöde anropas, vilket i sin tur anropar ett API. API returnerar ett resultat. Vanligtvis måste du parsa svaret och returnera en eller flera variabler. Med noden Parsa värde kan du skicka hela API-resultatet som en sträng. Till exempel:

{
    "Name": "Parker",
    "Position": "Product manager",
    "Company": "Contoso",
    "FormerPositions": [{
            "Position": "Customer service representative"
        }
    ]
}

Strängvariabeln som du har nu kan konverteras till en postvariabel med fullständigt stöd för intellisense i Power Fx med hjälp av den nya noden. Ett exempel med exempeldata hjälper till att illustrera den här processen.

Exempel på hur du använder noden Parsa värde

  1. Lägg till en nod för Parsa värde och markera den variabel som du vill parsa.

    Skärmbild med val av den variabel som ska parsas.

  2. Välj datatyp. Välj i så fall Från exempeldata.

    Skärmbild med val av datatyp för noden Parsa värde.

  3. Välj Hämta schema från exempel-JSON och ange det önskade JSON-exemplet i redigeraren som öppnas.

    Skärmbild som visar Hämta schema från JSON-exempel.

  4. Slutligen anger du vilken variabel som du vill placera det parsade värdet i. Vanligtvis skapar du en ny variabel för detta.

    Skärmbild som visar val av en målvariabel för ett parsat värde.

    Observera att utdatavariabeln nu är av rätt typ: Post.

    Skärmbild som visar målvariabeln för parsade data har önskad typ: Post.

Förutom att tolka JSON-strängar , är en nyckelanvändning av noden Parsa värde att parasa UntypedObjects vid körning. Det vanligaste användningsfallet är när du tar emot en händelse och du måste tolka händelsevärdet. Du kan också tolka egenskapen System.Activity.ChannelData, som varierar vid körning efter kanal.

Om du skulle parsa information från en händelse som kommer från Teams måste du använda dokumentationen för Teams-utvecklare för att hitta ett exempel på hur den förväntade händelsen kan se ut och sedan använda det här exemplet som exempeldata som det beskrivs tidigare i avsnittet.