Utforma användarupplevelsen

GÄLLER FÖR: SDK v4

Du kan skapa robotar med olika funktioner som text, knappar, bilder, rtf-kort som visas i karusell- eller listformat med mera. Men varje kanal, till exempel Facebook, Slack och så vidare, styr slutligen hur dess meddelandeklienter renderar funktioner. Även om flera kanaler stöder en funktion kan varje kanal återge funktionen på ett något annorlunda sätt. Om ett meddelande innehåller funktioner som en kanal inte har inbyggt stöd för, kan kanalen försöka återge innehållet i meddelandet som text eller som en statisk bild, vilket avsevärt kan påverka meddelandets utseende på klienten. I vissa fall kanske en kanal inte stöder en viss funktion alls. GroupMe-klienter kan till exempel inte visa en typindikator.

Omfattande användarkontroller

Omfattande användarkontroller är vanliga användargränssnittskontroller som knappar, bilder, karuseller och menyer som roboten presenterar för användaren och användaren interagerar med för att kommunicera val och avsikt. En robot kan använda en samling användargränssnittskontroller för att efterlikna en app, eller till och med köra inbäddade i en app. När en robot är inbäddad i en app eller webbplats kan den representera praktiskt taget vilken användargränssnittskontroll som helst med hjälp av funktionerna i den app som är värd för den.

Program- och webbplatsutvecklare har förlitat sig på användargränssnittskontroller så att användarna kan interagera med sina program. Samma användargränssnittskontroller kan också vara effektiva i robotar. Knappar är till exempel ett bra sätt att ge användaren ett enkelt val. Att tillåta användaren att kommunicera "Hotell" genom att välja en knapp med etiketten Hotell är enklare och snabbare än att tvinga användaren att skriva "Hotell". På mobila enheter är det till exempel ofta att välja framför att skriva.

Kort

Med kort kan du presentera olika visuella, ljud- och/eller valbara meddelanden för dina användare och hjälpa till med konversationsflödet. Om en användare behöver välja inifrån en fast uppsättning objekt kan du visa en karusell med kort, var och en som innehåller en bild, en textbeskrivning och en enda markeringsknapp. Om en användare har en uppsättning alternativ för ett enskilt objekt kan du visa en mindre bild och en samling knappar med olika alternativ att välja mellan. Bad de om mer information om ett ämne? Kort kan ge detaljerad information med hjälp av ljud- eller videoutdata, eller ett kvitto som beskriver deras shoppingupplevelse. Det finns ett otroligt brett utbud av användningar för kort som hjälper dig att vägleda konversationen mellan din användare och din robot. Vilken typ av kort du använder bestäms av programmets behov. Låt oss ta en närmare titt på kort, deras åtgärder och några rekommenderade användningsområden.

Azure AI Bot Service-kort är programmerbara objekt som innehåller standardiserade samlingar med omfattande användarkontroller som identifieras i en mängd olika kanaler. I följande tabell beskrivs listan över tillgängliga kort och förslag på bästa praxis för användning för varje typ av kort.

Korttyp Exempel Description
AdaptiveCard Image of an Adaptive Card. Ett open card exchange-format som återges som ett JSON-objekt. Används vanligtvis för distribution mellan kanaler av kort. Korten anpassas efter utseendet och känslan hos varje värdkanal.
Animeringskort Image of an animation card. Ett kort som kan spela upp animerade GIF-filer eller korta videor.
Ljudkort Image of an audio card. Ett kort som kan spela upp en ljudfil.
HeroCard Image of a hero card. Ett kort som innehåller en enda stor bild, en eller flera knappar och text. Används vanligtvis för att visuellt markera ett potentiellt användarval.
Miniatyrkort Image of a thumbnail card. Ett kort som innehåller en enda miniatyrbild, en eller flera knappar och text. Används vanligtvis för att visuellt markera knapparna för ett potentiellt användarval.
Kvittonkort Image of a receipt card. Ett kort som gör det möjligt för en robot att ge användaren ett kvitto. Den innehåller vanligtvis listan över objekt som ska inkluderas på kvittot, skatt och total information och annan text.
SignInCard Image of a sign-in card. Ett kort som låter en användare logga in. Den innehåller vanligtvis text och en eller flera knappar som användaren kan använda för att initiera en inloggningsprocess.
SuggestedAction Image of suggested actions rendered as buttons within a chat. Ger användaren en uppsättning kortåtgärder som representerar ett användarval. Knapparna försvinner när någon av de föreslagna åtgärderna har valts.
Grafikkort Image of a video card. Ett kort som kan spela upp videor. Används vanligtvis för att öppna en URL och strömma en tillgänglig video.
CardCarousel Image of a card carousel. En vågrätt rullningsbar samling kort som gör att användaren enkelt kan visa en rad möjliga användarval.

Med kort kan du utforma din robot en gång och få den att fungera i olika kanaler. Alla korttyper stöds dock inte fullt ut i alla tillgängliga kanaler.

När du utformar din robot ska du inte automatiskt avfärda vanliga användargränssnittselement som inte tillräckligt smarta. Som beskrivs i Konversationsanvändarupplevelsen bör din robot utformas för att lösa användarens problem på bästa, snabbaste och enklaste sätt. Undvik frestelsen att börja med att införliva förståelse för naturligt språk, eftersom det ofta är onödigt och introducerar omotiverad komplexitet.

Dricks

Börja med att använda de minsta användargränssnittskontrollerna som gör det möjligt för roboten att lösa användarens problem och lägg till andra element senare om dessa kontroller inte längre är tillräckliga.

Text och förståelse för naturligt språk

En robot kan acceptera textindata från användare och försöka parsa indata med hjälp av matchning av reguljära uttryck eller api:er för förståelse av naturligt språk. Beroende på vilken typ av indata som användaren tillhandahåller kan förståelse av naturligt språk vara en bra lösning.

I vissa fall kan en robot ställa en specifik fråga till användaren. Om roboten till exempel frågar "Vad är ditt namn?", kan användaren svara med text som endast anger namnet, "John" eller med en mening, "Mitt namn är John".

Att ställa specifika frågor minskar omfattningen av potentiella svar som roboten rimligen kan ta emot, vilket minskar komplexiteten i den logik som krävs för att parsa och förstå svaret. Tänk dig till exempel följande breda, öppna fråga: "Hur mår du?". Att förstå många möjliga permutationer av potentiella svar på en sådan fråga är en komplex uppgift.

Däremot specifika frågor som "Känner du smärta? Ja/nej" och "Var känner du smärta? bröst/huvud/arm/ben" skulle sannolikt leda till mer specifika svar som en robot kan parsa och förstå utan att behöva implementera förståelse för naturligt språk.

Dricks

När det är möjligt kan du ställa specifika frågor som inte kräver funktioner för förståelse av naturligt språk för att parsa svaret. Detta förenklar roboten och gör roboten mer framgångsrik för att förstå användaren.

I andra fall kan en användare skriva ett specifikt kommando. Till exempel kan en DevOps-robot som gör det möjligt för utvecklare att hantera virtuella datorer utformas för att acceptera specifika kommandon som "/STOP VM XYZ" eller "/START VM XYZ". Att utforma en robot för att acceptera specifika kommandon som detta ger en bra användarupplevelse, eftersom syntaxen är lätt att lära sig och det förväntade resultatet av varje kommando är tydligt. Dessutom kräver roboten inte funktioner för förståelse av naturligt språk, eftersom användarens indata enkelt kan parsas med reguljära uttryck.

Dricks

Att utforma en robot för att kräva specifika kommandon från användaren kan ofta ge en bra användarupplevelse samtidigt som behovet av förståelse av naturligt språk elimineras.

För en kunskapsbas eller en robot med frågor och svar kan en användare ställa allmänna frågor. Tänk dig till exempel en robot som kan svara på frågor baserat på innehållet i tusentals dokument. Azure AI-tjänster och Azure Search är båda tekniker som utformats specifikt för den här typen av scenario. Mer information finns i Designa kunskapsrobotar och Språktolkning.

Dricks

Om du utformar en robot som svarar på frågor som baseras på strukturerade eller ostrukturerade data från databaser, webbsidor eller dokument kan du överväga att använda tekniker som utformats specifikt för att hantera det här scenariot i stället för att försöka lösa problemet med förståelse för naturligt språk.

I andra scenarier kan en användare skriva enkla begäranden baserat på naturligt språk. En användare kan till exempel skriva "Jag vill ha en pepperonipizza" eller "Finns det några vegetariska restauranger inom 5 miles från mitt hus öppna nu?". API:er för förståelse av naturligt språk passar bra för scenarier som detta.

Med hjälp av API:erna kan roboten extrahera nyckelkomponenterna i användarens text för att identifiera användarens avsikt. När du implementerar funktioner för förståelse av naturligt språk i din robot anger du realistiska förväntningar på den detaljnivå som användarna sannolikt kommer att tillhandahålla i sina indata.

Dricks

När du skapar modeller för naturligt språk förutsätter du inte att användarna tillhandahåller all nödvändig information i sin första fråga. Utforma roboten så att den specifikt begär den information som krävs, vilket vägleder användaren att tillhandahålla den informationen genom att ställa en rad frågor, om det behövs.

Tal

En robot kan använda talindata och utdata för att kommunicera med användare. I fall där en robot är utformad för att stödja enheter som inte har något tangentbord eller bildskärm, är tal det enda sättet att kommunicera med användaren.

Välja mellan omfattande användarkontroller, text och naturligt språk och tal

Precis som människor kommunicerar med varandra med hjälp av en kombination av gester, röst och symboler, kan robotar kommunicera med användare med hjälp av en kombination av omfattande användarkontroller, text (ibland inklusive naturligt språk) och tal. Dessa kommunikationsmetoder kan användas tillsammans. du behöver inte välja en framför en annan.

Tänk dig till exempel en "matlagningsrobot" som hjälper användare med recept, där roboten kan ge instruktioner genom att spela upp en video eller visa en serie bilder för att förklara vad som behöver göras. Vissa användare kanske föredrar att vända sidor i receptet eller ställa frågor till roboten med tal medan de monterar ett recept. Andra kanske föredrar att röra skärmen på en enhet i stället för att interagera med roboten via tal. När du utformar din robot bör du införliva de UX-element som stöder de sätt på vilka användare sannolikt föredrar att interagera med din robot, med tanke på de specifika användningsfall som den är avsedd att stödja.