Udostępnij za pośrednictwem


Projektowanie i sterowanie przepływem konwersacji

DOTYCZY: SDK wersja 4

W tradycyjnej aplikacji interfejs użytkownika (UI) składa się z serii ekranów, a jedna aplikacja lub witryna internetowa może używać co najmniej jednego ekranu w razie potrzeby do wymiany informacji z użytkownikiem. Większość aplikacji zaczyna się od głównego ekranu, na którym użytkownicy początkowo wylądowali, a ekran zapewnia nawigację, która prowadzi do innych ekranów dla różnych funkcji, takich jak uruchamianie nowego zamówienia, przeglądanie produktów lub szukanie pomocy.

Podobnie jak aplikacje i witryny internetowe, boty mają interfejs użytkownika, ale składają się z komunikatów , a nie ekranów. Komunikaty mogą zawierać przyciski, tekst i inne elementy lub być całkowicie oparte na mowie.

Chociaż tradycyjna aplikacja lub witryna internetowa może zażądać wielu informacji na ekranie jednocześnie, bot zbierze tę samą ilość informacji przy użyciu wielu komunikatów. W ten sposób proces zbierania informacji od użytkownika jest aktywnym środowiskiem; w którym użytkownik prowadzi aktywną konwersację z botem.

Dobrze zaprojektowany bot będzie miał przepływ konwersacyjny, który czuje się naturalny. Bot powinien być w stanie bezproblemowo obsługiwać podstawową konwersację i być w stanie bezproblemowo obsługiwać przerwy lub przełączać tematy.

Przebieg konwersacji proceduralnej

Rozmowy z botem mogą skupić się na zadaniu, które bot próbuje osiągnąć, co jest nazywane przepływem proceduralnym. Bot zadaje użytkownikowi szereg pytań w celu zebrania wszystkich potrzebnych informacji przed przetworzeniem zadania.

W przepływie konwersacji proceduralnej zdefiniujesz kolejność pytań, a bot zadaje pytania w zdefiniowanej kolejności. Pytania można organizować w grupach logicznych, aby zachować kod cMicrosoft Entralized, jednocześnie koncentrując się na prowadzeniu konwersacji. Można na przykład zaprojektować jeden moduł zawierający logikę, która pomaga użytkownikowi przeglądać produkty i oddzielny moduł zawierający logikę, która ułatwia użytkownikowi utworzenie nowego zamówienia.

Możesz utworzyć strukturę tych modułów w dowolny sposób, począwszy od wolnego formularza do sekwencyjnego. Zestaw BOT Framework SDK udostępnia bibliotekę okien dialogowych, która umożliwia konstruowanie dowolnego przepływu konwersacyjnego potrzebnego botowi. Biblioteka zawiera okna dialogowe kaskadowe służące do tworzenia sekwencji kroków i monitów o zadawanie pytań użytkownikom. Aby uzyskać więcej informacji, zobacz Biblioteka okien dialogowych.

Diagram przedstawiający porównanie przepływu graficznego interfejsu użytkownika aplikacji z przepływem konwersacji bota.

W tradycyjnej aplikacji wszystko zaczyna się od głównego ekranu. Ekran główny wywołuje nowy ekran zamówienia . Nowy ekran zamówienia pozostaje w kontrolce do momentu zamknięcia lub wywołania innych ekranów, takich jak ekran wyszukiwania produktów . Jeśli nowy ekran zamówienia zostanie zamknięty, użytkownik zostanie zwrócony do ekranu głównego.

W botze korzystającym z okien dialogowych wszystko zaczyna się od okna dialogowego głównego. Główne okno dialogowe wywołuje okno dialogowe nowego zamówienia. W tym momencie okno dialogowe nowego zamówienia przejmuje kontrolę nad konwersacją i pozostaje w kontrolce, dopóki nie zostanie zamknięte lub wywoła inne okno dialogowe, takie jak okno dialogowe wyszukiwania produktów. Jeśli okno dialogowe nowego zamówienia zostanie zamknięte, kontrola nad przebiegiem rozmowy wraca do dialogu początkowego.

Aby zapoznać się z przykładem implementowania przepływu konwersacyjnego przy użyciu bibliotek dialogowych, zobacz Implementowanie sekwencyjnego przepływu konwersacji.

Obsługa przerw

Może być kuszące założenie, że użytkownicy będą wykonywać zadania proceduralne jeden po drugim w sposób schludny i uporządkowany. Na przykład w przepływie konwersacji proceduralnej przy użyciu dialogów, użytkownik rozpocznie od dialogu głównego i wywoła dialog zamówienia. Z nowego okna dialogowego zamówienia inwokują okno dialogowe wyszukiwania produktów. Następnie po wybraniu jednego z wyników wyświetlonych w oknie dialogowym wyszukiwania produktów wywołają okno dialogowe nowego zamówienia. Po zakończeniu zamówienia wracają do okna dialogowego głównego.

Chociaż byłoby wspaniale, gdyby użytkownicy zawsze podróżowali taką liniową, logiczną ścieżką, to rzadko się zdarza. Ludzie nie zawsze komunikują się w kolejności sekwencyjnej. Mają tendencję do częstego zmieniania zdania. Rozważmy następujący przykład:

Przykład użytkownika, który zadaje pytanie w odpowiedzi na pytanie bota.

Chociaż bot może być skoncentrowany na procedurach, użytkownik może zdecydować się zrobić coś zupełnie innego lub zadać pytanie, które może nie być związane z bieżącym tematem. W powyższym przykładzie użytkownik zadaje pytanie, a nie podaje odpowiedzi yes/no oczekiwanej przez bota. Jak powinien reagować bot?

  • Nalegaj, aby użytkownik odpowiedział najpierw na pytanie.
  • Zlekceważ wszystkie czynności wykonane wcześniej przez użytkownika, zresetuj cały stos okien dialogowych i zacznij od początku, próbując odpowiedzieć na pytanie użytkownika.
  • Spróbuj odpowiedzieć na pytanie użytkownika, a następnie wróć do tego pytania tak/nie i spróbuj wznowić z tego miejsca.

Nie ma właściwej odpowiedzi na to pytanie, ponieważ najlepsze rozwiązanie będzie zależeć od specyfiki danego scenariusza i sposobu, w jaki użytkownik rozsądnie oczekiwałby odpowiedzi bota. Zobacz, jak obsługiwać przerwy użytkowników dla bota, który jest przeznaczony do obsługi niektórych typów przerw.

Wygasanie konwersacji

Czasami warto ponownie uruchomić konwersację od początku. Jeśli na przykład użytkownik nie odpowie po upływie określonego czasu. Różne metody kończenia konwersacji obejmują:

  • Śledź czas ostatniego odebrania komunikatu od użytkownika i wyczyść stan, jeśli czas jest większy niż wstępnie skonfigurowana długość po otrzymaniu następnego komunikatu od użytkownika.
  • Użyj funkcji warstwy przechowywania, takiej jak funkcja usługi Cosmos DB czas wygaśnięcia, aby wyczyścić stan po skonfigurowanym czasie.

Aby uzyskać więcej informacji, sprawdź, jak zakończyć konwersację.

Dalsze kroki

Zarządzanie nawigacją użytkownika w oknach dialogowych i projektowanie przepływu konwersacji w sposób, który umożliwia użytkownikom osiąganie swoich celów (nawet w sposób nieliniowy) jest podstawowym wyzwaniem w projektowaniu botów. Artykuł Projektowanie nawigacji bota omawia typowe pułapki związane ze źle zaprojektowaną nawigacją oraz przedstawia strategie unikania tych problemów.