Sdílet prostřednictvím


Opětovné použití proměnných napříč tématy

Důležité

Schopnosti a funkce Power Virtual Agents jsou nyní součástí Microsoft Copilot Studio po významných investicích do generativní umělé inteligence a vylepšených integracích napříč Microsoft Copilot.

Některé články a snímky obrazovky mohou odkazovat na Power Virtual Agents, zatímco aktualizujeme dokumentaci a obsah školení.

Proměnné ukládají odpovědi vašich zákazníků do otázek vašeho kopilota. Můžete například uložit jméno zákazníka do proměnné s názvem UserName. Kopilot pak může oslovit zákazníka jménem, zatímco konverzace pokračuje.

Ve výchozím nastavení lze hodnotu proměnné použít pouze v tématu, kde je tato proměnná vytvořena. Je však možné znovu použít stejnou hodnotu napříč tématy. Například v tématu „Vítejte“ se robot zeptá na jméno a e-mailovou adresu zákazníka. V tématu rezervace schůzky chcete, aby si kopilot pamatoval, co zákazník zadal, a neptal se znovu.

Jedním ze způsobů, jak znovu použít proměnnou, je předat ji mezi tématy. Dalším způsobem je proměnnou nastavit jako globální v daném rozsahu, a právě tímto se zabývá tento článek. Globální proměnné se tak nazývají, protože jsou dostupné ve všech tématech v rámci celého kopilota.

Proměnné kopilota se použijí během jedné uživatelské relace. Určíte, které proměnné by se měly považovat za proměnné kopilota, abyste je odlišili od proměnných na úrovni tématu.

Vytvoření globální proměnné

Globální proměnnou vytvoříte změnou rozsahu proměnné tématu.

  1. Vytvořte proměnnou nebo v podokně Proměnné otevřete existující proměnnou.

  2. V podokně Vlastnosti proměnné vyberte Globální (kterékoli téma má přístup).

    Název proměnné dostane předponu Global., abyste ji odlišili od proměnných na úrovni tématu. Například proměnná UserName se nyní zobrazuje jako Global.UserName.

    Screenshot znázorňující podokno Vlastnosti proměnné se zvýrazněným nastavením Globální.

  3. Uložte téma.

    Název globální proměnné musí být jedinečný ve všech tématech. V případě konfliktu budete muset před uložením tématu proměnnou přejmenovat.

Použití globálních proměnných

Když v uzlu Zpráva nebo Otázka vytváříte zprávu kopilota, vyberte ikonu {x} pro zobrazení proměnných, které jsou k dispozici pro dané téma. Globální proměnné se zobrazí na kartě Vlastní vedle všech proměnných tématu. Proměnné jsou uvedeny v abecedním pořadí.

Screenshot zobrazující výběr globální proměnné.

Vyhledání všech témat pomocí globální proměnné

Můžete zjistit, kde je definována globální proměnná a jaká další témata ji používají. To může být užitečné, pokud pracujete na novém kopilotu nebo pokud máte více proměnných a komplexní větvení tématu.

  1. V plátně pro vytváření obsahu vyberte globální proměnnou nebo otevřete podokno Proměnné a vyberte globální proměnnou.

  2. V podokně Vlastnosti proměnné v části Reference vyberte libovolné z témat, kde se proměnná používá, abyste se dostali přímo k tomuto tématu a uzlu.

    Snímek obrazovky zobrazující seznam témat používaných proměnnou v podokně vlastností proměnné.

Životní cyklus globálních proměnných

Ve výchozím nastavení hodnota globální proměnné přetrvává, dokud relace neskončí. Uzel Vymazat hodnoty proměnných resetuje hodnoty globálních proměnných a použije se v systémovém tématu Resetování konverzace. Toto téma lze aktivovat buď přesměrováním, nebo když uživatel zadá spouštěcí frázi, například „Začít znovu“. V takovém případě jsou všechny globální proměnné resetovány.

Nastavení hodnoty globální proměnné z externích zdrojů

Pokud se chcete ujistit, že kopilot zahájí konverzaci s určitým kontextem, můžete inicializovat globální proměnnou s externím zdrojem. Řekněme, že váš web vyžaduje přihlášení uživatelů. Protože váš kopilot již zná jméno uživatele, může zákazníky pozdravit jménem, než začnou psát svou první otázku.

  1. Vyberte globální proměnnou.

  2. V podokně Vlastnosti proměnné vyberte možnost Externí zdroje mohou nastavovat hodnoty.

Nastavení globálních proměnných ve vestavěném kopilotu

Pokud vkládáte svého kopilota na jednoduchou webovou stránku, můžete k URL kopilota připojit proměnné a jejich definice. Nebo, pokud chcete trochu více kontroly, můžete použít blok kódu <script> k volání a používání proměnných programově.

Název proměnné v řetězci dotazu adresy URL musí odpovídat názvu globální proměnné bez předpony Global.. Například globální proměnná Global.UserName bude v dotazu označována jako UserName.

Následující příklady nabízejí jednoduchou deklaraci proměnných. V produkčním scénáři můžete jako parametr dotazu nebo definici proměnné předat jinou proměnnou, která již má uložené jméno uživatele (například pokud máte uživatelské jméno z přihlašovacího skriptu).

Připojte proměnné a jejich definice k adrese URL kopilota jako parametry řetězce dotazu ve formátu botURL?variableName1=variableDefinition1&variableName2=variableDefinition2.

Příklad:

V názvu parametru nezáleží na velikosti písmen. To znamená username=Renata bude také fungovat v tomto příkladu.

Přidání globálních proměnných do vlastního plátna

Proměnnou můžete přidat také do vlastního plátna.

  1. V části <script> na stránce, kde máte svého kopilota, definujte proměnné následovně, nahraďte variableName1 za název proměnné bez předpony Global. a variableDefinition1 za definici. Více proměnných oddělujte čárkami (,).

       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. V rámci části <script> zavolejte store, když vložíte kopilota, jako v následujícím příkladu, kde store je voláno hned nad tím, kde je voláno styleOptions (budete muset nahradit BOT_ID vaším 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));