Udostępnij za pośrednictwem


Praca ze zmiennymi

Zmiennych można używać do zapisywania odpowiedzi klientów i ponownego wykorzystania ich zawartości w dalszej części rozmowy.

Zmiennych można również używać do tworzenia wyrażeń logicznych, które dynamicznie przekierowują klienta do różnych ścieżek konwersacji. Można na przykład zapisać nazwę klienta w zmiennej o nazwie "customerName," a agent może zwracać się do klienta po imieniu, gdy konwersacja jest kontynuowana.

Zmienne mogą być również przekazywane do i zwracane z innych tematów i przepływów usługi Power Automate.

Tworzenie zmiennej

Każdy węzeł monitujący o wybranie zmiennej jako danych wyjściowych, taki jak węzeł Pytanie, automatycznie tworzy zmienną wyjściową odpowiedniego typu.

Zrzut ekranu węzła Pytanie z podświetloną nazwą i typem zmiennej domyślnej.

Porada

Zmień nazwy węzłów, aby ułatwić ich identyfikację. Zaznacz pole nazwy węzła, aby bezpośrednio zaktualizować nazwę lub wybierz ikonę Więcej () w węźle i w menu wybierz polecenie Zmień nazwę. Możesz także zmienić nazwy węzłów w edytorze kodu.

Nie można zmienić nazw węzłów Wyzwalacz i Przejdź do kroku.

Długość nazwy węzła nie może przekraczać 500 znaków.

Wybieranie encji do użycia

Węzły Pytanie są domyślnie tworzone z wieloma opcjami wyboru. Aby użyć innej wstępnie utworzonej lub niestandardowej encji, zaznacz pole Identyfikuj i wybierz typ informacji, których agent powinien nasłuchiwać.

Zrzut ekranu przedstawiający węzeł Pytanie z otwartym panelem

Zmienianie nazwy zmiennej

Podczas tworzenia zmienne mają automatycznie przypisywaną nazwę. Najlepszą praktyką jest nadawanie zmiennym znaczących nazw, aby ich przeznaczenie było jasne dla wszystkich innych, którzy muszą utrzymywać agent.

  1. Wybierz zmienną, by otworzyć ją w okienku właściwości zmiennych.

  2. W obszarze Nazwa zmiennej wprowadź nową nazwę zmiennej.

Ustaw zmienną

Zazwyczaj używa się węzła Pytanie, aby zapisać dane wejściowe użytkownika w zmiennej. Mogą się jednak zdarzyć sytuacje, w których będziesz chciał samodzielnie ustawić wartość zmiennej. W takim przypadku należy użyć węzła Ustaw wartość zmiennej.

  1. Wybierz Dodaj węzeł (+), aby dodać węzeł, a następnie wybierz Zarządzanie zmianami>Ustaw wartość zmiennej.

  2. Zaznacz pole w obszarze Ustaw zmienną, a następnie wybierz pozycję Utwórz nową zmienną.

    Zrzut ekranu przycisku Utwórz nową zmienną.

    Została utworzona nowa zmienna. Jej typ jest nieznany, dopóki nie zostanie przypisana do niej wartość.

    Zrzut ekranu przedstawiający węzeł Ustaw zmienna wartość z nową wartością nieznanego typu.

  3. W przypadku Do wartości przypisz wartość, korzystając z jednej z następujących opcji:

    • Wpisz wartość literału.
    • Wybierz istniejącą zmienną tego samego typu. Ta akcja ustawi Twoją zmienną na taką samą wartość jak wybrana zmienna.
    • Użyj formuły Power Fx. Formuły Power Fx są przydatne w przypadku bardziej złożonych typów, w których nie można używać wartości literałów, takich jak Tabela i Typy rekordów.

Notatka

Jeśli podczas ustawiania zmiennej typu ciąg wystąpi niezgodność między Ustaw zmienną a Wartość docelowa, zostanie wyświetlony komunikat o błędzie i przycisk Napraw niezgodność typu. Wybierz przycisk, aby Copilot Studio automatycznie wygenerować formułę Power Fx rozwiązującą niezgodność.

Używanie zmiennych w węzłach akcji

Jeśli zmienna jest używania w węźle akcji, jeśli jej typ podstawowy odpowiada typowi parametru określonego dla przepływu lub umiejętności Bot Framework, można go dodać do tego parametru. Dane wyjściowe z węzłów akcji wygenerują nowe zmienne.

Zrzut ekranu przedstawiający węzeł Akcja z parametrami wejściowymi i wyjściowymi dla akcji umiejętności.

Używanie dosłownych wartości na zmiennych wejściach

W węzłach, w których można ustawić wartość parametrów wejściowych, zawsze można wprowadzić wartość literału zamiast wybierać inną zmienną jako wartość.

Zrzut ekranu przedstawiający użycie wartości literału dla parametru wejściowego zmiennej o nazwie productName.

Węzeł próbuje zinterpretować wartości literału jako ciąg, liczbę lub wartości logiczne. Na przykład wartość 123 jest interpretowana jako liczba. Jeśli chcesz, aby wartość była w zamian interpretowana jako wartość ciągu, możesz umieścić tę wartość w podwójnych cudzysłowach, na przykład tak: "123".

W przypadku niektórych scenariuszy (na przykład scenariuszy używających typów złożonych) może być konieczne użycie formuły Power Fx do ustawienia określonego typu .

Uźywanie zmiennych środowiskowych dla wpisów tajnych Azure Key Vault

Zmienna środowiskowa może się odwoływać do klucza w magazynie Key Vault. Tajne zmienne środowiskowe są szczególnym przypadkiem zmiennych środowiskowych z unikatowymi zagadnieniami.

Aby utworzyć tajną zmienną środowiskową w portalu Power Apps, należy skonfigurować jej magazyn kluczy Key Vault.

Aby autoryzować Copilot Studio do odczytu tego Key Vault, należy wykonać następujące czynności:

  1. Przypisz rolę Key Vault Secrets User do aplikacji Microsoft Virtual Agents Service.

  2. Aby autoryzować wszystkich agentów ze środowiska w celu uzyskania dostępu do wpisu tajnego, należy utworzyć tag AllowedEnvironments we wpisie tajnym i dodać identyfikatory dozwolonych środowisk rozdzielone przecinkami.

  3. Aby autoryzować tylko określonych agentów ze środowiska do korzystania z tego Key Vault, utwórz tag AllowedAgents i umieść identyfikator agent w formacie {envId}/{schemaName}. W przypadku wielu wartości, rozdziel wartości przecinkami.

Jeśli osiągniesz maksymalną liczbę znaków, ale nadal musisz dodać więcej agentów, dodaj kolejny tag o opisowej, ale unikalnej nazwie (na przykład: AllowedAgents2).

Wartość wpisy tajnego jest buforowana w czasie wykonywania dialogu przez pięć minut. Odczyty nieudane są przechowywane w pamięci podręcznej przez 30 sekund.

Ostrzeżenie

Dodając wpis tajny w agent, możesz uwidocznić wartość tego wpisu tajnego wszystkim użytkownikom, którzy mogą edytować agent w środowisku, ponieważ tacy użytkownicy mogą edytować agent w celu zwrócenia wartości w SendMessage węźle.

Okienko Zmiennych

Panel Zmienne to miejsce, w którym można wyświetlić wszystkie zmienne dostępne dla tematu, niezależnie od węzłów, w których są zdefiniowane lub używane. Dla każdej zmiennej można wybrać, czy może otrzymywać jej wartości z innych tematów, zwracać jej wartość do innych tematów, czy mieć obie te możliwości. Zmienną, której właściwości chcesz edytować, można również wybrać w okienku Właściwości zmiennej.

Aby otworzyć okienko Zmienne, na pasku menu tematu wybierz pozycję Zmienne.

Zrzut ekranu okienka Zmienne na kanwie tworzenia Copilot Studio z wyróżnionym przyciskiem Zmienne.

Okienko Właściwości zmiennej

W okienku właściwości zmiennej można zmienić nazwę zmiennej, sprawdzić, gdzie jest używana, lub przekonwertować ją na zmienną globalną. Nie można jednak przekonwertować zmiennej globalnej z powrotem na zmienną tematyczną. Można również wybrać, czy zmienna tematu może odbierać wartości z innych tematów lub przekazywać jej wartość do innych tematów.

Aby otworzyć panel Właściwości zmiennej, wybierz żądaną zmienną w panelu Zmienne. Okienko właściwości zmiennej można również otworzyć, wybierając zmienną w dowolnym węźle.

Przekazywanie zmiennych między tematami

Przekierowując jeden temat do innego, można przekazać wartości zmiennych z tematu źródłowego do tematu docelowego, a także zwrócić wartości z tematu docelowego do tematu źródłowego. Przekazywanie zmiennych między tematami jest szczególnie przydatne, gdy we wcześniejszym temacie znajdują się już informacje, których potrzebuje późniejszy temat. Użytkownicy będą wdzięczni za to, że nie będą odpowiadać ponownie na te same pytania.

Odbieraj wartości z innych tematów

Kiedy temat definiuje zmienną (na przykład przez węzeł pytania), agent zada użytkownikowi pytanie, aby wypełnić wartość zmiennej. Jeśli wartość została już pozyskana przez agenta we wcześniejszym temacie, nie ma powodu, aby ponownie zadawać to pytanie. Dla tych przypadków można ustawić zmienną na Odbieraj wartości z innych tematów. Kiedy inne tematy przekierowują do tego tematu, może on przekazać wartość zmiennej (lub wartość literału) do tej zmiennej i pominąć pytanie. Prowadzi to do bezproblemowego doświadczenia użytkownika końcowego rozmawiającego z agentem.

W tym przykładzie używamy dwóch tematów, Greeting i rozmowy z klientem. Oba tematy zawierają pytanie o nazwę klienta. Jeśli jednak najpierw zostanie uruchomiony temat Powitanie, to pytanie zostanie pominięte w temacie Rozmowa z klientem. Zamiast tego używa wartości zmiennej przekazanej z tematu Greeting .

Oto przepływ tematu Rozmowa z klientem:

Zrzut ekranu przepływu konwersacji tematu Rozmowa z klientem.

Jak pokazano w panelu testowym, jeśli ten temat zostanie wyzwolony jako pierwszy, pyta użytkownika "Jak mam Cię nazywać?". Przechowuje wartość w zmiennej ciągowej o nazwie customerName. Zmienna customerName jest również ustawiana w taki sposób, aby jej wartość była pobierana z innych tematów. Temat kończy się komunikatem: "Mam nadzieję, że masz wspaniały dzień, customerName!".

Oto przepływ tematu Powitanie:

Zrzut ekranu przepływu konwersacji tematu Powitanie.

Jak pokazano w panelu testowym, jeśli ten temat zostanie wyzwolony jako pierwszy, pyta użytkownika "Jak mam Cię nazywać?". Przechowuje wartość w zmiennej ciągowej o nazwie customerName. W temacie jest wysyłany komunikat "Miło mi Cię poznać, customerName!" Następnie następuje przekierowanie do tematu Rozmowa z klientem , który wysyła komunikat "Mam nadzieję, że masz wspaniały dzień, customerName!". Należy jednak pamiętać, że w tematu Rozmowa z klientem pominięto ponowną prośbę o podanie nazwy użytkownika. Zamiast tego używa wartości zmiennej customerName przekazanej z tematu Greeting .

Na koniec oto ponownie druga konwersacja, tym razem z perspektywy tematu Rozmowa z klientem:

Zrzut ekranu przepływu konwersacji tematu Klient temat podczas pierwszego uruchomienia tematu powitania.

Przejdźmy teraz przez kolejne kroki, aby skonfigurować temat do odbierania wartości z innych tematów. W naszym przykładowym scenariuszu wstępnie zdefiniowany temat Powitanie jest używany jako temat źródłowy, a jako tematu docelowego nowy temat Rozmowa z klientem , ale te same kroki działają w przypadku każdego tematu, który powinien używać wartości z wcześniejszego tematu, jeśli jest to możliwe.

Konfigurowanie tematu docelowego

Temat docelowy to temat, do którego następuje przekierowanie i który będzie odbierać wartości z innych tematów. W naszym przykładzie to Rozmowa z klientem.

  1. Utwórz nowy temat i nazwij go "Rozmowa z klientem".

  2. Dodaj frazy wyzwalające, takie jak "porozmawiaj ze mną", "pogadaj ze mną", "czatuj ze mną".

  3. Dodaj węzeł Pytanie i wprowadź "Jak mam Cię nazywać?" dla wiadomości.

  4. W obszarze Zidentyfikuj wybierz wstępnie zbudowaną encję Imię i nazwisko osoby.

  5. Wybieraz nazwę zmiennej. Panel Właściwości zmiennych otworzy się.

  6. Zastąp nazwę domyślną nazwą ciągiem "customerName", a następnie wybierz pozycję Odbieraj wartości z innych tematów.

    Zrzut ekranu panelu

  7. Dodaj węzeł Komunikat.

  8. W polu wiadomości wpisz "Mam nadzieję, że masz wspaniały dzień".

  9. Wybierz ikonę Wstaw zmienną ({x}), a następnie wybierz pozycję customerName.

  10. Wybierz spację po zmiennej i wpisz "!".

  11. Zapisz temat.

Konfigurowanie tematu źródłowego

Temat źródłowy to temat wykonujący przekierowanie, który dostarcza wartość i przekazuje ją do tematu docelowego. W naszym przykładzie jest to temat Powitanie.

  1. Przejdź do tematu Powitanie i usuń węzły domyślne, z wyjątkiem węzła Wyzwalacz .

  2. Dodaj węzeł Pytanie i wprowadź "Jak mam Cię nazywać?" dla wiadomości.

  3. W obszarze Zidentyfikuj wybierz wstępnie zbudowaną encję Imię i nazwisko osoby.

  4. Zastąp nazwę domyślną nazwą "customerNameFromGreeting".

  5. Dodaj węzeł Komunikat.

  6. W polu wiadomości wpisz "Miło Cię poznać, ".

  7. Wybierz ikonę Wstaw zmienną ({x}), a następnie wybierz pozycję customerNameFromGreeting.

  8. Wybierz spację po zmiennej i wpisz "!".

  9. Dodaj węzeł Przekieruj i wybierz temat docelowy Porozmawiaj z klientem.

  10. Wybierz pozycję + Dodaj wartość wejściową, a następnie wybierz zmienną z tematu docelowego, do którego chcesz przekazać wartość.

    Zrzut ekranu przedstawiający temat Greeting ze zmienną customerName dodaną jako dane wejściowe w węźle przekierowania.

  11. Wybierz ikonę > , a następnie wybierz zmienną, której wartość chcesz przekazać, w tym przykładzie customerNameFromGreeting.

    Węzeł Przekieruj powinien teraz wyglądać następująco:

    Zrzut ekranu przedstawiający ukończony węzeł Przekieruj w temacie Powitanie.

  12. Zapisz temat.

Zwróć wartości do oryginalnych tematów

Kiedy temat jest przekierowywany i uzyskuje zmienną, zadając pytanie lub w inny sposób, zmienna może być zwrócona do oryginalnego tematu. Zmienna staje się również częścią oryginalnego tematu i może być używana jak każda inna zmienna. Informacje uzyskiwane przez agent są zatem dostępne w różnych tematach, co zmniejsza potrzebę stosowania zmiennych globalnych.

Kontynuujmy pracę z przykładem z poprzedniej sekcji. Zadajemy nowe pytanie w temacie Rozmowa z klientem , a następnie zwracamy odpowiedź w temacie Powitanie .

Konfigurowanie tematu źródłowego na potrzeby zwróconej zmiennej

Gdy zwracasz zmienną do tematu, tematem źródłowym jest temat, który udostępnia wartość do przekazania z powrotem do oryginalnego tematu. W tym przykładzie tematem źródłowym jest Rozmowa z klientem.

  1. Przejdź do tematu źródłowego.

  2. Dodaj węzeł Pytanie i wprowadź "W jakim mieście mieszkasz?" dla wiadomości.

  3. W obszarze Zidentyfikuj wybierz wstępnie zbudowaną encję Miasto.

  4. Wybierz zmienną, aby otworzyć okienko Właściwości zmiennej. Nadaj mu nazwę "customerCity", a następnie wybierz pozycję Zwróć wartości do pierwotnych tematów.

    Zrzut ekranu przedstawiający temat Rozmowa z klientem z wyróżnioną zmienną customerCity i jej właściwościami.

  5. Dodaj węzeł Komunikat.

  6. Wybierz ikonę Wstaw zmienną ({x}), a następnie wybierz pozycję customerCity.

  7. Po zmiennej w polu wiadomości wpisz " musi być piękne o tej porze roku!".

  8. Zapisz temat.

Konfigurowanie tematu docelowego na potrzeby zwróconej zmiennej

Gdy zwracasz zmienną do tematu, temat docelowy jest tematem, który otrzymuje wartości z bieżącego tematu. W naszym przykładzie wątkiem docelowym jest Powitanie.

  1. Przejdź do tematu docelowego.

  2. Zmienna wybrana w wątku źródłowym powinna pojawić się w węźle Przekierowanie jako zmienna wyjściowa.

    Zrzut ekranu przepływu konwersacji tematu Powitanie ze zwróconą zmienną w węźle Przekierowywanie.

  3. Zapisz temat.

Węzeł Analizuj wartość

Węzeł Analizuj wartość umożliwia konwersję wartości jednego typu na wartość innego typu. Podczas dodawania węzła do tematu wybierz węzeł Dodaj , następnie wskaż Zarządzanie zmienną , a następnie wybierz Analiza wartości.

Zrzut ekranu menu, w którym można dodać węzeł, wybierając pozycję Zarządzanie zmiennymi, a następnie pozycję Przeanalizuj wartość.

Kluczowe scenariusze wykorzystujące węzeł Wartość analizy skoncentrują się na konwertowaniu nieprzetworzonych zmiennych JSON lub nienapisanych (których wartość lub struktura nie są poznane do czasu uruchomienia, na przykład ChannelData) na konkretne typy.

Proces rozpoczyna się w momencie wywołania przepływu, który z kolei wywołuje interfejs API. Następnie interfejs API zwraca wynik. Zazwyczaj trzeba przeanalizować tę odpowiedź i zwrócić jedną lub więcej zmiennych pierwotnych. Przy użyciu węzła Analizuj wartości można wysłać w postaci ciągu tekstowego cały wynik interfejsu API. Na przykład:

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

Zmienna ciągów, która teraz może zostać przekonwertowana na zmienną rekordu z pełną obsługą IntelliSense w Power Fx za pomocą tego nowego węzła. Przykład użycia danych przykładowych pomoże zilustrować ten proces.

Przykład użycia węzła Analizuj wartość

  1. Dodaj węzeł Analizuj wartość i wybierz zmienną, którą chcesz przeanalizować.

    Zrzut ekranu przedstawiający wybór zmiennej do analizy.

  2. Wybierz typ danych. W tym przypadku należy wybrać pozycję „Z danych przykładowych”.

    Zrzut ekranu przedstawiający typ danych dla węzła analizy wartości.

  3. Wybierz pozycję Pobierz schemat z przykładowego kodu JSON i wprowadź żądany przykład JSON w edytorze, który zostanie otwarty.

    Zrzut ekranu przedstawiający pobieranie schematu z przykładowego kodu JSON.

  4. Na koniec określ, w której zmiennej ma zostać umieszczona przeanalizowana wartość. Zwykle należy utworzyć w tym celu nową zmienną.

    Zrzut ekranu przedstawiający zmienna docelową dla przeanalizowanej wartości.

    Należy zauważyć, że zmienna wyjściowa jest teraz poprawnego typu — Rekord.

    Zrzut ekranu przedstawiający zmienną docelową dla analizowanych danych, która ma żądany typ: Rekord.

Oprócz analizowania ciągów JSON kluczowym zastosowaniem węzła Analiza wartości jest analiza UntypedObjects podczas wykonywania. Najczęstszym przypadkiem użycia jest odebranie zdarzenia i konieczność przeanalizowania wartości zdarzenia. Możesz też przeanalizować właściwość System.Activity.ChannelData, która różni się w czasie wykonywania w zależności od kanału.

Jeśli miałbyś przeanalizować informacje ze zdarzenia pochodzącego z usługi Teams, musisz użyć dokumentacji dla deweloperów usługi Teams, aby znaleźć przykład tego, jak może wyglądać oczekiwane zdarzenie, a następnie użyć tego przykładu jako przykładowych danych, jak opisano wcześniej w tej sekcji.