Návrh uživatelského prostředí

PLATÍ PRO: SDK v4

Roboty můžete vytvářet s různými funkcemi, jako je text, tlačítka, obrázky, bohaté karty zobrazené v karuselu nebo formátu seznamu a další. Každý kanál, například Facebook, Slack atd., ale nakonec řídí, jak jeho klienti zasílání zpráv vykreslují funkce. I když funkce podporuje více kanálů, může každý kanál tuto funkci vykreslit trochu jinak. V případech, kdy zpráva obsahuje funkce, které kanál nativně nepodporuje, se kanál může pokusit vykreslit obsah zprávy jako text nebo jako statický obrázek, což může výrazně ovlivnit vzhled zprávy v klientovi. V některých případech nemusí kanál podporovat konkrétní funkci vůbec. Například klienti GroupMe nemůžou zobrazit indikátor psaní.

Bohaté uživatelské ovládací prvky

Bohaté uživatelské ovládací prvky jsou běžné ovládací prvky uživatelského rozhraní, jako jsou tlačítka, obrázky, karusely a nabídky, které robot prezentuje uživateli a uživatel se zapojí do komunikace výběru a záměru. Robot může použít kolekci ovládacích prvků uživatelského rozhraní k napodobení aplikace nebo může dokonce spustit vložené v aplikaci. Když je robot vložený do aplikace nebo webu, může představovat prakticky jakýkoli ovládací prvek uživatelského rozhraní pomocí funkcí aplikace, která ji hostuje.

Vývojáři aplikací a webů se spoléhali na ovládací prvky uživatelského rozhraní, které uživatelům umožňují pracovat se svými aplikacemi. Tyto stejné ovládací prvky uživatelského rozhraní můžou být také efektivní v robotech. Tlačítka jsou například skvělým způsobem, jak prezentovat uživatele jednoduchou volbou. Když uživateli umožníte komunikovat "Hotely", vyberte tlačítko s popiskem Hotely , je jednodušší a rychlejší než vynucování, aby uživatel zadal "Hotely". Na mobilních zařízeních se například výběr často upřednostňuje před psaním.

Karty

Karty umožňují prezentovat uživatele různými vizuálními, zvukovými a/nebo vybranými zprávami a pomoct s tokem konverzace. Pokud uživatel potřebuje vybrat z pevné sady položek, můžete zobrazit karusel karet, z nichž každý obsahuje obrázek, textový popis a jedno tlačítko výběru. Pokud má uživatel sadu voleb pro jednu položku, můžete prezentovat menší jeden obrázek a kolekci tlačítek s různými možnostmi, mezi kterými si můžete vybrat. Požádali o další informace o předmětu? Karty můžou poskytovat podrobné informace pomocí výstupu zvuku nebo videa nebo potvrzení, které podrobně popisuje jejich nákupní prostředí. Pro karty existuje neuvěřitelně široká škála použití, která vám pomůže vést konverzaci mezi uživatelem a robotem. Typ karty, kterou použijete, bude určen potřebami vaší aplikace. Pojďme se podrobněji podívat na karty, jejich akce a některé doporučené použití.

Karty Azure AI Bot Service jsou programovatelné objekty obsahující standardizované kolekce bohatých uživatelských ovládacích prvků, které jsou rozpoznány v široké škále kanálů. Následující tabulka popisuje seznam dostupných karet a návrhy osvědčených postupů použití jednotlivých typů karet.

Typ karty Příklad Popis
Adaptivní vizitka Image of an Adaptive Card. Formát výměny otevřených karet vykreslený jako objekt JSON. Obvykle se používá pro nasazení karet mezi kanály. Karty se přizpůsobí vzhledu a chování každého hostitelského kanálu.
AnimationCard Image of an animation card. Karta, která může přehrávat animované GIFy nebo krátká videa.
AudioCard Image of an audio card. Karta, která může přehrát zvukový soubor.
HeroCard Image of a hero card. Karta, která obsahuje jeden velký obrázek, jedno nebo více tlačítek a text. Obvykle se používá k vizuálnímu zvýraznění potenciálního výběru uživatele.
ThumbnailCard Image of a thumbnail card. Karta, která obsahuje jeden miniatura obrázku, jedno nebo více tlačítek a text. Obvykle se používá k vizuálnímu zvýraznění tlačítek pro potenciální výběr uživatele.
ReceiptCard Image of a receipt card. Karta, která robotovi umožňuje poskytnout uživateli potvrzení. Obvykle obsahuje seznam položek, které mají být zahrnuty do příjmu, daně a celkových informací a dalšího textu.
SignInCard Image of a sign-in card. Karta, která uživateli umožní přihlásit se. Obvykle obsahuje text a jedno nebo více tlačítek, která může uživatel použít k zahájení procesu přihlášení.
Navrhované akce Image of suggested actions rendered as buttons within a chat. Prezentuje uživatele se sadou akcí karet, které představují volbu uživatele. Tlačítka zmizí, jakmile vyberete některou z navrhovaných akcí.
VideoCard Image of a video card. Karta, která může přehrávat videa. Obvykle se používá k otevření adresy URL a streamování dostupného videa.
CardCarousel Image of a card carousel. Vodorovně posuvná kolekce karet, která umožňuje uživateli snadno zobrazit řadu možných uživatelských voleb.

Karty umožňují navrhnout robota jednou a pracovat na různých kanálech. Všechny typy karet ale nejsou plně podporované ve všech dostupných kanálech.

Při návrhu robota nezavírejte automaticky běžné prvky uživatelského rozhraní, protože nejsou dostatečně inteligentní. Jak je popsáno v konverzačním uživatelském prostředí, robot by měl být navržen tak, aby vyřešil problém uživatele co nejlíp, nejrychleji a nejsnadněji. Vyhněte se pokušení začít začleněním porozumění přirozenému jazyku, protože je často zbytečné a představuje neodůvodněnou složitost.

Tip

Začněte tím, že použijete minimální ovládací prvky uživatelského rozhraní, které robotovi umožní vyřešit problém uživatele, a pokud už tyto ovládací prvky nestačí, přidejte další prvky později.

Principy textu a přirozeného jazyka

Robot může přijímat textové zadání od uživatelů a pokoušet se ho analyzovat pomocí porovnávání regulárních výrazů nebo rozhraní API pro rozpoznávání přirozeného jazyka. V závislosti na typu vstupu, který uživatel poskytuje, může nebo nemusí být dobrým řešením porozumění přirozenému jazyku.

V některých případech může robot položit uživateli konkrétní otázku. Pokud se například robot zeptá, "Jaké je vaše jméno?", může uživatel odpovědět textem, který určuje pouze jméno, "John" nebo větu "Moje jméno je John".

Kladení konkrétních otázek snižuje rozsah potenciálních odpovědí, které robot může přiměřeně přijmout, což snižuje složitost logiky potřebné k analýze a pochopení odpovědi. Představte si například následující obecnou otevřenou otázku: "Jak se cítíte?". Pochopení mnoha možných permutací potenciálních odpovědí na takovou otázku je složitý úkol.

Naproti tomu konkrétní otázky, jako je například "Cítíte bolest? Ano/ne a "Kde cítíš bolest? Hrudník/hlava/rameno/noha" by pravděpodobně vyžadoval konkrétnější odpovědi, které robot může analyzovat a pochopit, aniž by bylo nutné implementovat porozumění přirozenému jazyku.

Tip

Kdykoli je to možné, položte si konkrétní otázky, které nebudou vyžadovat schopnosti porozumění přirozenému jazyku k analýze odpovědi. Tím se robot zjednoduší a zvýší se úspěch robota, kterému bude rozumět uživatel.

V jiných případech může uživatel zadat konkrétní příkaz. Například robot DevOps, který vývojářům umožňuje spravovat virtuální počítače, může být navržený tak, aby přijímal konkrétní příkazy, jako je /STOP VM XYZ nebo /START VM XYZ. Návrh robota tak, aby přijímal konkrétní příkazy, jako je tento způsob, umožňuje dobré uživatelské prostředí, protože syntaxe se snadno učí a očekávaný výsledek každého příkazu je jasný. Robot navíc nebude vyžadovat schopnosti porozumění přirozenému jazyku, protože vstup uživatele je možné snadno analyzovat pomocí regulárních výrazů.

Tip

Návrh robota tak, aby vyžadoval konkrétní příkazy od uživatele, může často poskytovat dobré uživatelské prostředí a zároveň eliminovat potřebu schopnosti porozumění přirozenému jazyku.

V případě znalostní báze nebo otázek a odpovědí robota může uživatel klást obecné otázky. Představte si například robota, který může odpovídat na otázky na základě obsahu tisíců dokumentů. Služby Azure AI a Azure Search jsou obě technologie navržené speciálně pro tento typ scénáře. Další informace najdete v tématu Návrh robotů znalostí a porozumění jazyku.

Tip

Pokud navrhujete robota, který bude odpovídat na otázky založené na strukturovaných nebo nestrukturovaných datech z databází, webových stránek nebo dokumentů, zvažte použití technologií navržených speciálně k řešení tohoto scénáře, a ne pokusu o vyřešení problému s porozuměním přirozeného jazyka.

V jiných scénářích může uživatel zadávat jednoduché požadavky na základě přirozeného jazyka. Uživatel může například zadat "Chci pizzu pepperoni" nebo "Jsou tam nějaké vegetariánské restaurace do 3 km od mého domu otevřené?". Rozhraní API pro rozpoznávání přirozeného jazyka jsou skvělou vhod pro takové scénáře.

Pomocí rozhraní API může robot extrahovat klíčové součásti textu uživatele, aby identifikoval záměr uživatele. Při implementaci schopností porozumění přirozenému jazyku v robotovi nastavte realistická očekávání pro úroveň podrobností, kterou uživatelé budou pravděpodobně poskytovat ve svém vstupu.

Tip

Při vytváření modelů přirozeného jazyka nepředpokládáte, že uživatelé při počátečním dotazu poskytnou všechny požadované informace. Navrhněte robota tak, aby výslovně požadoval požadované informace, a v případě potřeby uživatele požádejte o poskytnutí těchto informací tak, že položíte řadu otázek.

Řeč

Robot může ke komunikaci s uživateli používat hlasový vstup a výstup. V případech, kdy je robot navržený tak, aby podporoval zařízení, která nemají klávesnici nebo monitor, je řeč jediným prostředkem pro komunikaci s uživatelem.

Volba mezi ovládacími prvky pro uživatele s formátováním, textem a přirozeným jazykem a řečí

Stejně jako spolu lidé komunikují pomocí kombinace gest, hlasu a symbolů, můžou roboti komunikovat s uživateli pomocí kombinace bohatých uživatelských ovládacích prvků, textu (někdy včetně přirozeného jazyka) a řeči. Tyto komunikační metody lze používat společně; nemusíte si navzájem vybírat.

Představte si například robota, který uživatelům pomáhá s recepty, kde robot může poskytnout pokyny přehráváním videa nebo zobrazením řady obrázků, které vysvětlují, co je potřeba udělat. Někteří uživatelé můžou raději překlopit stránky receptu nebo položit robotovi otázky pomocí řeči při sestavování receptu. Jiní uživatelé můžou raději kontaktovat obrazovku zařízení místo interakce s robotem prostřednictvím řeči. Při navrhování robota zabudujte prvky uživatelského rozhraní, které podporují způsoby, kterými budou uživatelé pravděpodobně preferovat interakci s robotem, vzhledem ke konkrétním případům použití, které má podporovat.