Konfigurowanie realizacji dla skryptowanych agentów AI
W kontekście agentów AI realizacja odnosi się do wykonywania zadań, które wymagają interakcji z systemami zewnętrznymi w celu pobierania, manipulowania lub przechowywania danych za pośrednictwem interfejsów API. W tym artykule opisano przykładowego agenta utworzonego na potrzeby śledzenia paczek. Możesz użyć tego szablonu agenta podczas tworzenia nowego agenta AI do interakcji cyfrowych i głosowych.
W przypadku kanałów cyfrowych realizacja musi być koordynowana za pośrednictwem przepływu połączeń używanego do wdrożenia agenta AI. Biorąc przykład agenta śledzenia paczek, którego można zaimportować z szablonu podczas tworzenia nowego agenta skryptowego, przepływ jest również dostępny do zaimportowania podczas tworzenia nowego przepływu Webex Connect. Oprócz realizacji ten przepływ połączeń kieruje również użytkownika do różnych kolejek agentów na podstawie jego ostatniej intencji.
-
Po zakończeniu konfigurowania agenta ze skryptem zidentyfikuj odpowiedzi, które wymagają spełnienia.
W przykładowym agencie fulfillment is required for 'trackPackageResponse'.
-
W tych szablonach skonfiguruj "odpowiedź wstrzymującą", która będzie wyświetlana użytkownikowi podczas realizacji.
W tym przykładzie odpowiedź wstrzymania jest skonfigurowana dla "trackPackageResponse".
-
W przepływie użyj węzła analizatora składni danych, aby przeanalizować metadane sesji agenta (zmienną wyjściową) z odpowiedzi agenta AI w celu uzyskania nazwy odpowiedzi.
Przykładowe dane wejściowe dla węzła analizatora składni danych można uzyskać, pobierając informacje o transakcjach z sesji, wybierając odpowiednią transakcję i wybierając wartość klucza "generatedDf" z pobranego pliku.
-
Jeśli chcesz wykonać routing oparty na intencji w momencie przekazania agenta, możesz uzyskać wartość poprzedniego aktywnego zamiaru w tym samym kroku.
-
Jeśli nie chcesz pobierać i analizować przykładowego pliku JSON, możesz użyć
\\$.model_state.template_key
jako nazwy odpowiedzi i \$.previous_intent_model_state.intent.namedla poprzedniej nazwy intencji
.W naszym przykładzie używamy zmiennych przepływu "responseKey" i "previousIntent" dla tych wartości.
-
Użyj węzła Oddział , aby sprawdzić, czy odpowiedź wymaga spełnienia.
-
Węzeł gałęzi kończy działanie za pośrednictwem wyniku węzła "Brak z powyższych" dla odpowiedzi, które nie wymagają spełnienia.
-
W naszym przykładzie, ponieważ istnieje potrzeba spełnienia dla 'trackPackageResponse', sprawdź wartość 'responseKey' w naszym węźle gałęzi.
-
-
W przypadku odpowiedzi, które wymagają spełnienia, użyj węzła HTTP do wykonywania zewnętrznych wywołań API.
-
Można przeanalizować użyteczne informacje z odpowiedzi węzła HTTP w tym samym węźle, importując próbkę i uzyskując zmienne wyjściowe.
-
W tym przykładzie otrzymujemy "estimatedDelivery" i "status" paczki.
-
-
Przetwórz odpowiedź na realizację przy użyciu węzła Evaluate w celu sformułowania odpowiedzi agenta.
W naszym przykładzie inicjalizujemy zmienną "fulfilmentResp" i ustawiamy jej wartość na podstawie statusu paczki i szacowanej dostawy.
-
Wyślij odpowiedź realizacji do użytkownika i dołącz ją do rozmowy.
-
Wróć do węzła odbiorczego , aby kontynuować rozmowę między użytkownikiem a agentem AI.
Intuicyjne przekazywanie agenta
W momencie przekazania agenta sprawdź, czy nie ma ostatniego aktywnego zamiaru działania przez węzeł Oddział przed węzłem zadania Kolejka.
Sprawdź wartość "previousIntent" i rozgałęzij się do różnych kolejek w zależności od wymagań. W tym przykładzie, jeśli klient poprosi o przekazanie agenta po zamiarze "śledzenia pakietu", przekieruj go do kolejki "Specjalista". Wszystkie inne wartości prowadzą do przekazania do kolejki "Czat".
W przypadku kanałów głosowych realizacja musi być zaaranżowana przez przekazanie kontroli nad rozmową z powrotem do przepływu głosu poprzez zdarzenia niestandardowe, a następnie wznowienie rozmowy agenta AI z danymi realizacji. W tym celu ponownie wykorzystywany jest przykładowy agent skryptowy do śledzenia paczek. Przepływ jest dostępny w sekcji "Importuj z szablonów" w Webex Contact Center Flow Designer. Oprócz realizacji ten przepływ kieruje również użytkownika do różnych kolejek agentów na podstawie jego ostatniej intencji.
Przewodnik krok po kroku: Realizacja
-
Dodaj typ odpowiedzi "Zdarzenie niestandardowe".
-
Znajdź klucz szablonu, do którego chcesz dodać zdarzenie niestandardowe. W takim przypadku użyj klucza szablonu "trackPackageResponse".
-
Dodaj typ odpowiedzi "zdarzenie niestandardowe" do klucza szablonu.
-
-
Skonfiguruj odpowiedź na zdarzenie niestandardowe.
-
Dodaj nazwę zdarzenia i ładunek zdarzenia:
-
Jako odpowiedź na zdarzenie niestandardowe podaj nazwę zdarzenia. W tym przypadku "TrackPack_Exit".
-
Dodaj ładunek zdarzenia, który zawiera dane, które zostaną przekazane do przepływu. Musi to być w formacie JSON. W tym przykładzie
{"PackageNumber":"${entity. PackageNum}"}
.
-
-
-
Użyj ładunku zdarzenia w przepływie.
- Dostęp do metadanych aktywności agenta wirtualnego w wersji 2:Access Virtual Agent V2 Activity Metadata:
W konfiguracji przepływu głosu dodany ładunek zdarzenia jest dostępny w ramach metadanych aktywności agenta wirtualnego w wersji 2 .
Utwórz zmienną przepływu PackageNum.
Użyj działania analizy , aby wybrać metadane aktywności agenta wirtualnego w wersji 2 jako zmienną wejściową.
Ustaw zmienną wyjściową na wartość 'PackageNum', a jej wyrażenie ścieżki na '$. PackageNum' (na podstawie struktury ładunku zdarzenia skonfigurowanego w odpowiedzi agenta).
- Użyj metadanych w aktywności HTTP :
Użyj zmiennej "PackageNum" z przetworzonych metadanych w przepływie, aby śledzić pakiet.
Zaimportuj załączony przepływ, aby znaleźć szczegóły działania HTTP .
Zdefiniuj zmienne przepływu "estimatedDelivery" i ustaw je na "$.estimated_delivery" oraz inną zmienną przepływu 'packStatus' i ustaw ją na $.status.
- Dodaj warunki na podstawie aktywności HTTP :
Dodaj nowe działanie Warunek do przepływu. To działanie służy do sprawdzania odpowiedzi działania HTTP (czy pakiet istnieje i jego status).
W tym przykładzie wyrażenie
{{ HTTPRequest_8l3.httpStatusCode == 404 }}
jest używane do sprawdzenia, czy nie znaleziono żadnego pakietu.
- Dostęp do metadanych aktywności agenta wirtualnego w wersji 2:Access Virtual Agent V2 Activity Metadata:
- Dodawanie aktywności Ustaw zmienną na podstawie warunków:
Dla stanu, dla którego pakiet nie istnieje:
- W gałęzi, w której nie znaleziono żadnego pakietu, dodaj działanie Ustaw zmienną .
- Ustaw packageResp (inną zmienną przepływu) na:
Nie znaleziono pakietu z tymi szczegółami.
Dla stanu, dla którego pakiet istnieje:
- W gałęzi, w której znaleziono pakiet (tzn. kod stanu HTTP nie jest równy 404), dodaj kolejne działanie Ustaw zmienną .
Ustaw packageResp (inną zmienną przepływu) na:
Twoja paczka została odebrana. Zostanie on dostarczony przez {{estimatedDelivery}}.
Dodaj jeszcze dwie operacje Ustaw zmienne, aby skonfigurować nazwę zdarzenia i dane zdarzenia. Te dane zostaną przekazane do działania agenta wirtualnego w wersji 2.
Tworzenie zmiennych przepływu event_name i event_data.
Ustaw event_name na TrackPack_Entry, a event_data na {'packageResp': '{{packageResp}}' | json}.
-
Wróć do aktywności agenta wirtualnego w wersji 2:Loop back to the Virtual Agent V2 activity:
- Skonfiguruj aktywność agenta wirtualnego w wersji 2:Configure the Virtual Agent V2 activity:
Połącz ostateczną aktywność Ustaw zmienną z aktywnością Agent wirtualny w wersji 2.
Ustaw nazwę zdarzenia na {{event_name}}.
Ustaw dane zdarzenia na {{event_data}}.
- Skonfiguruj aktywność agenta wirtualnego w wersji 2:Configure the Virtual Agent V2 activity:
-
Obsłuż zdarzenie przychodzące w agencie wirtualnym:
-
Dodaj nowy klucz szablonu:
-
Przejdź do sekcji Odpowiedzi Tab w panelu po lewej stronie.
-
Dodaj nowy klucz szablonu o nazwie packageStatus.
-
-
Skonfiguruj zdarzenie przychodzące:
-
W kanale głosowym ustaw zdarzenie przychodzące na TrackPack_Entry (lub cokolwiek innego zostało wysłane do działania agenta wirtualnego w wersji 2 w przepływie).
-
-
Skonfiguruj odpowiedź:
-
Ustaw odpowiedź na: <speak> <say-as interpret-as="date"> ${eventStore.packageResp} </say-as>. Czy mogę ci pomóc w czymś innym?</mów>
Ta odpowiedź wykorzystuje zmienne wysłane w ładunku z przepływu. Wszystkie zmienne wysyłane jako część danych zdarzeń są dostępne dla programistów jako ${eventStore.<variable_name>}.
To również używa tagów SSML. W szczególności tag SSML umożliwia kontrolowanie sposobu interpretowania i wypowiadania tekstu przez aparat zamiany tekstu na mowę. Za pomocą tego znacznika można określić sposób wymawiania liczb, dat, godzin, adresów i innych tekstów. Tutaj używamy go do daty.
-
-
Rozsyłanie agentów na podstawie poprzedniego zamiaru
-
Jeśli aktywność agenta wirtualnego w wersji 2 kończy się za pośrednictwem danych wyjściowych "Eskalowane", użyj działania analizy , aby uzyskać poprzedni zamiar z metadanych agenta.
-
Użyj działania Przypadek , aby sprawdzić różne wartości poprzedniego zamiaru, które określają logikę kolejkowania. W tym przykładzie sprawdzamy, czy poprzedni zamiar brzmiał "Śledź paczkę".
-
Dołącz dane wyjściowe działania Sprawa do odpowiednich krawędzi kontaktu kolejki.