Projektowanie środowiska użytkownika

DOTYCZY: ZESTAW SDK w wersji 4

Boty można tworzyć z różnymi funkcjami, takimi jak tekst, przyciski, obrazy, karty sformatowane wyświetlane w formacie karuzeli lub listy i nie tylko. Jednak każdy kanał, taki jak Facebook, Slack itd., ostatecznie kontroluje sposób renderowania funkcji przez klientów wiadomości. Nawet jeśli wiele kanałów obsługuje funkcję, każdy kanał może renderować tę funkcję w nieco inny sposób. W przypadkach, gdy komunikat zawiera funkcje, które kanał nie obsługuje natywnie, kanał może próbować obniżyć zawartość komunikatu jako tekst lub jako obraz statyczny, co może znacząco wpłynąć na wygląd komunikatu na kliencie. W niektórych przypadkach kanał może w ogóle nie obsługiwać określonej funkcji. Na przykład klienci GroupMe nie mogą wyświetlić wskaźnika wpisywania.

Zaawansowane kontrolki użytkownika

Zaawansowane kontrolki użytkownika to typowe kontrolki interfejsu użytkownika, takie jak przyciski, obrazy, karuzele i menu, które bot przedstawia użytkownikowi, a użytkownik angażuje się w komunikację z wyborem i intencją. Bot może używać kolekcji kontrolek interfejsu użytkownika, aby naśladować aplikację, a nawet uruchomić osadzoną w aplikacji. Gdy bot jest osadzony w aplikacji lub witrynie internetowej, może reprezentować praktycznie dowolną kontrolkę interfejsu użytkownika, korzystając z możliwości aplikacji, która ją hostuje.

Deweloperzy aplikacji i witryn internetowych oparli się na kontrolkach interfejsu użytkownika, aby umożliwić użytkownikom interakcję z aplikacjami. Te same kontrolki interfejsu użytkownika mogą być również skuteczne w botach. Na przykład przyciski to doskonały sposób prezentowania użytkownikowi prostego wyboru. Zezwalanie użytkownikowi na komunikację "Hotele" przez wybranie przycisku z etykietą Hotele jest łatwiejsze i szybsze niż zmuszanie użytkownika do wpisywania "Hotels". Na przykład na urządzeniach przenośnych wybór jest często preferowany w przypadku wpisywania.

Karty

Karty umożliwiają prezentowanie użytkownikom różnych wiadomości wizualnych, dźwiękowych i/lub wybranych oraz pomoc w przepływie konwersacji. Jeśli użytkownik musi wybrać elementy w stałym zestawie elementów, można wyświetlić karuzeli kart, z których każdy zawiera obraz, opis tekstu i pojedynczy przycisk zaznaczenia. Jeśli użytkownik ma zestaw opcji wyboru dla jednego elementu, możesz przedstawić mniejszy pojedynczy obraz i kolekcję przycisków z różnymi opcjami do wyboru. Czy prosili o więcej informacji na temat? Karty mogą dostarczać szczegółowe informacje przy użyciu danych wyjściowych audio lub wideo lub potwierdzenia, które zawierają szczegółowe informacje o ich środowisku zakupów. Istnieje niezwykle szeroki zakres zastosowań kart, które ułatwiają rozmowę między użytkownikiem a botem. Typ używanej karty zależy od potrzeb aplikacji. Przyjrzyjmy się bliżej kartom, ich akcjom i niektórym zalecanym użyciu.

Karty usługi Azure AI Bot Service to programowalne obiekty zawierające standardowe kolekcje zaawansowanych kontrolek użytkownika, które są rozpoznawane w wielu kanałach. W poniższej tabeli opisano listę dostępnych kart i sugestie dotyczące użycia najlepszych rozwiązań dla każdego typu karty.

Typ karty Przykład opis
Karta adaptacyjna Image of an Adaptive Card. Otwarty format wymiany karty renderowany jako obiekt JSON. Zazwyczaj używane do wdrażania kart między kanałami. Karty dostosowują się do wyglądu i działania każdego kanału hosta.
Karta animacji Image of an animation card. Karta, która może odtwarzać animowane pliki GIF lub krótkie filmy wideo.
Karta audio Image of an audio card. Karta, która może odtworzyć plik audio.
Karta HeroCard Image of a hero card. Karta zawierająca jeden duży obraz, jeden lub więcej przycisków i tekst. Zazwyczaj używane do wizualnego wyróżniania potencjalnego wyboru użytkownika.
ThumbnailCard Image of a thumbnail card. Karta zawierająca jeden obraz miniatury, co najmniej jeden przycisk i tekst. Zazwyczaj służy do wizualnego wyróżniania przycisków dla potencjalnego wyboru użytkownika.
Karta paragonów Image of a receipt card. Karta, która umożliwia botowi dostarczenie potwierdzenia użytkownikowi. Zazwyczaj zawiera listę elementów do uwzględnienia na podstawie paragonu, podatku i całkowitej informacji oraz innego tekstu.
SignInCard Image of a sign-in card. Karta, która umożliwia użytkownikowi logowanie się. Zazwyczaj zawiera tekst i co najmniej jeden przycisk, którego użytkownik może użyć do zainicjowania procesu logowania.
Sugerowanaction Image of suggested actions rendered as buttons within a chat. Przedstawia użytkownikowi zestaw akcji karty reprezentujących wybór użytkownika. Przyciski znikają po wybraniu dowolnej z sugerowanych akcji.
Karta wideo Image of a video card. Karta, która może odtwarzać filmy wideo. Zazwyczaj służy do otwierania adresu URL i przesyłania strumieniowego dostępnego wideo.
Karkaruzela Image of a card carousel. W poziomie przewijana kolekcja kart, która umożliwia użytkownikowi łatwe wyświetlanie serii możliwych wyborów użytkownika.

Karty umożliwiają jednokrotne projektowanie bota i działanie go w różnych kanałach. Jednak nie wszystkie typy kart są w pełni obsługiwane we wszystkich dostępnych kanałach.

  • Szczegółowe instrukcje dotyczące dodawania kart do bota można znaleźć w temacie Dodawanie załączników multimediów zaawansowanych kart i Dodawanie sugerowanych akcji do wiadomości.

  • Aby uzyskać przykładowy kod, zobacz następujące przykładowe boty w repozytorium Przykłady platformy Bot Framework.

    Przykład Nazwa/nazwisko opis
    6 Korzystanie z kart Demonstruje użycie wszystkich typów kart.
    7 Karty adaptacyjne Demonstruje użycie kart adaptacyjnych.
    8 Sugerowane akcje Demonstruje użycie sugerowanych akcji.
    15 Załączniki Przedstawia sposób akceptowania załączników dostarczonych przez użytkownika.

Podczas projektowania bota nie odrzucaj automatycznie typowych elementów interfejsu użytkownika, ponieważ nie są wystarczająco inteligentne. Zgodnie z opisem w środowisku użytkownika konwersacji bot powinien być zaprojektowany tak, aby rozwiązać problem użytkownika w najlepszy, najszybszy i najłatwiejszy sposób. Unikaj pokusy, aby zacząć od włączenia zrozumienia języka naturalnego, ponieważ często jest niepotrzebne i wprowadza nieuzasadnioną złożoność.

Napiwek

Zacznij od użycia minimalnych kontrolek interfejsu użytkownika, które umożliwiają botowi rozwiązanie problemu użytkownika, i dodaj inne elementy później, jeśli te kontrolki nie są już wystarczające.

Interpretacja tekstu i języka naturalnego

Bot może akceptować wprowadzanie tekstu od użytkowników i próbować analizować te dane wejściowe przy użyciu dopasowywania wyrażeń regularnych lub interfejsów API interpretacji języka naturalnego. W zależności od typu danych wejściowych zapewnianych przez użytkownika zrozumienie języka naturalnego może być dobrym rozwiązaniem.

W niektórych przypadkach bot może zadać użytkownikowi konkretne pytanie. Jeśli na przykład bot pyta: "Jaka jest Twoja nazwa?", użytkownik może odpowiedzieć tekstem określającym tylko nazwę", "John" lub z zdaniem "Moja nazwa to Jan".

Zadawanie konkretnych pytań zmniejsza zakres potencjalnych odpowiedzi, które bot może rozsądnie otrzymywać, co zmniejsza złożoność logiki niezbędnej do przeanalizowania i zrozumienia odpowiedzi. Rozważmy na przykład następujące szerokie, otwarte pytanie: "Jak się czujesz?". Zrozumienie wielu możliwych permutacji potencjalnych odpowiedzi na takie pytanie jest złożonym zadaniem.

Z kolei konkretne pytania, takie jak "Czy czujesz ból? Yeah/no" i "Gdzie czujesz ból? klatka piersiowa/głowa/ramię/noga" prawdopodobnie skłoniłaby bardziej szczegółowe odpowiedzi, które bot może przeanalizować i zrozumieć bez konieczności implementowania interpretacji języka naturalnego.

Napiwek

Jeśli to możliwe, zadaj konkretne pytania, które nie wymagają możliwości interpretacji języka naturalnego, aby przeanalizować odpowiedź. Pozwoli to uprościć bota i zwiększyć sukces, który bot zrozumie użytkownika.

W innych przypadkach użytkownik może wpisać określone polecenie. Na przykład bot DevOps, który umożliwia deweloperom zarządzanie maszynami wirtualnymi, może zostać zaprojektowany tak, aby akceptował określone polecenia, takie jak "/STOP VM XYZ" lub "/START VM XYZ". Projektowanie bota w celu akceptowania określonych poleceń, takich jak to sprawia, że jest to dobre środowisko użytkownika, ponieważ składnia jest łatwa do poznania, a oczekiwany wynik każdego polecenia jest jasny. Ponadto bot nie będzie wymagał możliwości interpretacji języka naturalnego, ponieważ dane wejściowe użytkownika można łatwo analizować przy użyciu wyrażeń regularnych.

Napiwek

Projektowanie bota w celu wymagania określonych poleceń od użytkownika może często zapewnić dobre środowisko użytkownika, jednocześnie eliminując konieczność interpretacji języka naturalnego.

W przypadku baza wiedzy lub pytań i odpowiedzi bota użytkownik może zadawać pytania ogólne. Załóżmy na przykład, że bot może odpowiedzieć na pytania na podstawie zawartości tysięcy dokumentów. Usługi Azure AI i Azure Search to technologie przeznaczone specjalnie dla tego typu scenariusza. Aby uzyskać więcej informacji, zobacz Projektowanie botów wiedzy i usługi Language Understanding.

Napiwek

Jeśli projektujesz bota, który będzie odpowiadać na pytania na podstawie ustrukturyzowanych lub nieustrukturyzowanych danych z baz danych, stron internetowych lub dokumentów, rozważ użycie technologii zaprojektowanych specjalnie w celu rozwiązania tego scenariusza, zamiast próbować rozwiązać problem ze zrozumieniem języka naturalnego.

W innych scenariuszach użytkownik może wpisywać proste żądania na podstawie języka naturalnego. Na przykład użytkownik może wpisać "Chcę pizzy pepperoni" lub "Czy istnieją restauracje wegetariańskie w ciągu 3 mil od mojego domu otwarte teraz?". Interfejsy API interpretacji języka naturalnego doskonale nadają się do takich scenariuszy.

Za pomocą interfejsów API bot może wyodrębnić kluczowe składniki tekstu użytkownika w celu zidentyfikowania intencji użytkownika. Podczas implementowania możliwości interpretacji języka naturalnego w botze ustaw realistyczne oczekiwania dotyczące poziomu szczegółowości, który użytkownicy mogą podać w swoich danych wejściowych.

Napiwek

Podczas tworzenia modeli języka naturalnego nie zakładaj, że użytkownicy będą dostarczać wszystkie wymagane informacje w ich początkowym zapytaniu. Zaprojektuj bota, aby w szczególności zażądał wymaganych informacji, kierując użytkownika do dostarczenia tych informacji, zadając w razie potrzeby serię pytań.

Mowa

Bot może używać danych wejściowych i wyjściowych mowy do komunikowania się z użytkownikami. W przypadkach, gdy bot jest przeznaczony do obsługi urządzeń, które nie mają klawiatury lub monitora, mowa jest jedynym sposobem komunikowania się z użytkownikiem.

Wybieranie między zaawansowanymi kontrolkami użytkownika, tekstem i językiem naturalnym oraz mową

Podobnie jak osoby komunikują się ze sobą przy użyciu kombinacji gestów, głosu i symboli, boty mogą komunikować się z użytkownikami przy użyciu kombinacji zaawansowanych kontrolek użytkownika, tekstu (czasami w tym języka naturalnego) i mowy. Te metody komunikacji mogą być używane razem; nie musisz wybierać siebie nawzajem.

Załóżmy na przykład, że "bot gotowania", który ułatwia użytkownikom przepisy, gdzie bot może dostarczyć instrukcje, odtwarzając film wideo lub wyświetlając serię obrazów, aby wyjaśnić, co należy zrobić. Niektórzy użytkownicy mogą preferować przerzucanie stron przepisu lub zadawanie pytań bota za pomocą mowy podczas tworzenia przepisu. Inni mogą preferować dotknięcie ekranu urządzenia zamiast interakcji z botem za pośrednictwem mowy. Podczas projektowania bota uwzględnij elementy środowiska użytkownika, które obsługują sposoby, w jakie użytkownicy prawdopodobnie wolą korzystać z bota, biorąc pod uwagę konkretne przypadki użycia, które mają być obsługiwane.