De gebruikerservaring ontwerpen
VAN TOEPASSING OP: SDK v4
U kunt bots maken met verschillende functies, zoals tekst, knoppen, afbeeldingen, uitgebreide kaarten die worden weergegeven in carrousel- of lijstindeling, en meer. Elk kanaal, zoals Facebook, Slack, enzovoort, bepaalt echter uiteindelijk hoe de berichtenclients functies weergeven. Zelfs wanneer meerdere kanalen een functie ondersteunen, kan elk kanaal de functie op een iets andere manier weergeven. In gevallen waarin een bericht functie(s) bevat die een kanaal niet systeemeigen ondersteunt, kan het kanaal proberen om de inhoud van berichten als tekst of als statische afbeelding weer te geven, wat de weergave van het bericht op de client aanzienlijk kan beïnvloeden. In sommige gevallen biedt een kanaal mogelijk helemaal geen ondersteuning voor een bepaalde functie. GroupMe-clients kunnen bijvoorbeeld geen typeindicator weergeven.
Uitgebreide gebruikersbesturingselementen
Uitgebreide gebruikersbesturingselementen zijn algemene UI-besturingselementen , zoals knoppen, afbeeldingen, carrousels en menu's die de bot aan de gebruiker presenteert en waarmee de gebruiker communiceert om de keuze en intentie te communiceren. Een bot kan een verzameling UI-besturingselementen gebruiken om een app na te bootsen of kan zelfs worden uitgevoerd ingesloten in een app. Wanneer een bot is ingesloten in een app of website, kan deze vrijwel elk UI-besturingselement vertegenwoordigen met behulp van de mogelijkheden van de app die als host fungeert.
Ontwikkelaars van toepassingen en websites hebben gebruik van ui-besturingselementen om gebruikers in staat te stellen om met hun toepassingen te communiceren. Dezelfde besturingselementen voor de gebruikersinterface kunnen ook effectief zijn in bots. Knoppen zijn bijvoorbeeld een uitstekende manier om de gebruiker te presenteren met een eenvoudige keuze. De gebruiker toestaan om "Hotels" te communiceren door een knop met het label Hotels te selecteren, is eenvoudiger en sneller dan de gebruiker dwingen om "Hotels" te typen. Op mobiele apparaten heeft het selecteren bijvoorbeeld vaak de voorkeur boven typen.
Kaarten
Met kaarten kunt u uw gebruikers presenteren met verschillende visuele, audio- en/of selecteerbare berichten en hulp bij de gespreksstroom. Als een gebruiker een keuze moet maken uit een vaste set items, kunt u een carrousel met kaarten weergeven, elk met een afbeelding, een tekstbeschrijving en één selectieknop. Als een gebruiker een set keuzemogelijkheden voor één item heeft, kunt u een kleinere afbeelding en een verzameling knoppen met verschillende opties presenteren om tussen te kiezen. Vroegen ze om meer informatie over een onderwerp? Kaarten kunnen uitgebreide informatie bieden met behulp van audio- of video-uitvoer, of een ontvangstbewijs waarin de winkelervaring wordt beschreven. Er is een ongelooflijk breed scala aan toepassingen voor kaarten om het gesprek tussen uw gebruiker en uw bot te begeleiden. Het type kaart dat u gebruikt, wordt bepaald door de behoeften van uw toepassing. Laten we kaarten, hun acties en enkele aanbevolen toepassingen nader bekijken.
Azure AI Bot Service-kaarten zijn programmeerbare objecten met gestandaardiseerde verzamelingen uitgebreide gebruikersbesturingselementen die worden herkend in een breed scala aan kanalen. In de volgende tabel wordt de lijst met beschikbare kaarten en best practice-suggesties voor gebruik voor elk type kaart beschreven.
Kaarttype | Opmerking | Beschrijving |
---|---|---|
AdaptiveCard | Een open card exchange-indeling die wordt weergegeven als een JSON-object. Wordt meestal gebruikt voor de implementatie van kaarten in meerdere kanalen. Kaarten passen zich aan het uiterlijk van elk hostkanaal aan. | |
Animatiecard | Een kaart die GIF-animaties of korte video's kan afspelen. | |
AudioCard | Een kaart die een audiobestand kan afspelen. | |
HeroCard | Een kaart met één grote afbeelding, een of meer knoppen en tekst. Meestal gebruikt om een potentiële gebruikersselectie visueel te markeren. | |
ThumbnailCard | Een kaart met één miniatuurafbeelding, een of meer knoppen en tekst. Doorgaans gebruikt om de knoppen voor een potentiële gebruikersselectie visueel te markeren. | |
ReceiptCard | Een kaart waarmee een bot een ontvangstbewijs kan verstrekken aan de gebruiker. Het bevat meestal de lijst met items die moeten worden opgenomen op de ontvangst, belasting en totale informatie en andere tekst. | |
SignInCard | Een kaart waarmee een gebruiker zich kan aanmelden. Het bevat meestal tekst en een of meer knoppen die de gebruiker kan gebruiken om een aanmeldingsproces te starten. | |
SuggestedAction | Geeft uw gebruiker een set kaartacties weer die een gebruikerskeuze vertegenwoordigen. De knoppen verdwijnen zodra een van de voorgestelde acties is geselecteerd. | |
VideoCard | Een kaart die video's kan afspelen. Meestal gebruikt om een URL te openen en een beschikbare video te streamen. | |
CardCarousel | Een horizontaal scrollbare verzameling kaarten waarmee uw gebruiker eenvoudig een reeks mogelijke gebruikerskeuzes kan bekijken. |
Met kaarten kunt u uw bot eenmaal ontwerpen en deze in verschillende kanalen laten werken. Niet alle kaarttypen worden echter volledig ondersteund in alle beschikbare kanalen.
Gedetailleerde instructies voor het toevoegen van kaarten aan uw bot vindt u in Rich Card Media-bijlagen toevoegen en voorgestelde acties toevoegen aan berichten.
Zie de volgende voorbeeldbots in de opslagplaats Bot Framework-voorbeelden voor voorbeeldcode.
Voorbeeld Name Beschrijving 6 Kaarten gebruiken Demonstreert het gebruik van alle kaarttypen. 7 Adaptieve kaarten Demonstreert het gebruik van adaptieve kaarten. 8 Voorgestelde acties Demonstreert het gebruik van voorgestelde acties. 15 Bijlagen Demonstreert hoe u door de gebruiker geleverde bijlagen accepteert.
Wanneer u uw bot ontwerpt, sluit u niet automatisch algemene UI-elementen omdat u niet slim genoeg bent. Zoals besproken in de conversationele gebruikerservaring, moet uw bot zijn ontworpen om het probleem van de gebruiker op de beste, snelste en gemakkelijkste manier op te lossen. Vermijd de verleiding om te beginnen met het opnemen van natuurlijke taalkennis, omdat het vaak onnodig is en ongerechtvaardigde complexiteit introduceert.
Tip
Begin met het gebruik van de minimale ui-besturingselementen waarmee de bot het probleem van de gebruiker kan oplossen en voeg later andere elementen toe als deze besturingselementen niet meer voldoende zijn.
Tekst en natuurlijke taal begrijpen
Een bot kan tekstinvoer van gebruikers accepteren en proberen die invoer te parseren met behulp van reguliere expressiekoppeling of API's voor natuurlijke taalbegrip. Afhankelijk van het type invoer dat de gebruiker biedt, is het mogelijk dat natuurlijke taalkennis wel of niet een goede oplossing is.
In sommige gevallen kan een bot de gebruiker een specifieke vraag stellen. Als de bot bijvoorbeeld vraagt: 'Wat is uw naam?', kan de gebruiker antwoorden met tekst die alleen de naam 'John' of met een zin 'Mijn naam is John' aangeeft.
Het stellen van specifieke vragen vermindert het bereik van potentiële antwoorden die de bot redelijkerwijs kan ontvangen, waardoor de complexiteit van de logica die nodig is om het antwoord te parseren en te begrijpen, afneemt. Denk bijvoorbeeld aan de volgende brede, open vraag: 'Hoe voelt u zich?'. Het begrijpen van de vele mogelijke permutaties van mogelijke antwoorden op een dergelijke vraag is een complexe taak.
Daarentegen, specifieke vragen zoals 'Voel je pijn? Ja/nee" en "Waar voel je pijn? borst/hoofd/arm/been" vraagt waarschijnlijk specifiekere antwoorden die een bot kan parseren en begrijpen zonder dat u natuurlijke taalbegrip hoeft te implementeren.
Tip
Stel zo mogelijk specifieke vragen waarvoor geen mogelijkheden voor natuurlijke taalbegrip nodig zijn om het antwoord te parseren. Dit vereenvoudigt uw bot en verhoogt het succes dat uw bot begrijpt de gebruiker.
In andere gevallen kan een gebruiker een specifieke opdracht typen. Een DevOps-bot waarmee ontwikkelaars virtuele machines kunnen beheren, kunnen bijvoorbeeld worden ontworpen om specifieke opdrachten te accepteren, zoals '/STOP VM XYZ' of '/START VM XYZ'. Het ontwerpen van een bot om specifieke opdrachten zoals deze te accepteren, zorgt voor een goede gebruikerservaring, omdat de syntaxis gemakkelijk te leren is en het verwachte resultaat van elke opdracht duidelijk is. Bovendien vereist de bot geen mogelijkheden voor natuurlijke taalbegrip, omdat de invoer van de gebruiker eenvoudig kan worden geparseerd met behulp van reguliere expressies.
Tip
Het ontwerpen van een bot om specifieke opdrachten van de gebruiker te vereisen, kan vaak een goede gebruikerservaring bieden en tegelijkertijd de noodzaak van natuurlijke taalkennis overbodig maken.
Voor een knowledge base of vragen en antwoorden bot kan een gebruiker algemene vragen stellen. Stel dat een bot vragen kan beantwoorden op basis van de inhoud van duizenden documenten. Azure AI-services en Azure Search zijn beide technologieën die speciaal zijn ontworpen voor dit type scenario. Zie Ontwerpkennisbots en Taalkennis voor meer informatie.
Tip
Als u een bot ontwerpt die vragen beantwoordt op basis van gestructureerde of ongestructureerde gegevens uit databases, webpagina's of documenten, kunt u overwegen technologieën te gebruiken die speciaal zijn ontworpen om dit scenario aan te pakken, in plaats van het probleem met natuurlijke taalkennis op te lossen.
In andere scenario's kan een gebruiker eenvoudige aanvragen typen op basis van natuurlijke taal. Een gebruiker kan bijvoorbeeld 'Ik wil een pepperoni pizza' of 'Zijn er vegetarische restaurants binnen 3 km van mijn huis open?'. API's voor natuurlijke taalkennis zijn geschikt voor scenario's zoals deze.
Met behulp van de API's kan uw bot de belangrijkste onderdelen van de tekst van de gebruiker extraheren om de intentie van de gebruiker te identificeren. Bij het implementeren van mogelijkheden voor natuurlijke taalkennis in uw bot, stelt u realistische verwachtingen in voor het detailniveau dat gebruikers waarschijnlijk zullen leveren in hun invoer.
Tip
Bij het bouwen van modellen voor natuurlijke taal wordt er niet van uitgegaan dat gebruikers alle vereiste informatie in hun eerste query opgeven. Ontwerp uw bot om de benodigde informatie specifiek aan te vragen, zodat de gebruiker die informatie kan verstrekken door zo nodig een reeks vragen te stellen.
Spraak
Een bot kan spraakinvoer en uitvoer gebruiken om met gebruikers te communiceren. In gevallen waarin een bot is ontworpen ter ondersteuning van apparaten die geen toetsenbord of monitor hebben, is spraak het enige middel om met de gebruiker te communiceren.
Kiezen tussen besturingselementen voor uitgebreide gebruikers, tekst en natuurlijke taal en spraak
Net zoals mensen met elkaar communiceren met behulp van een combinatie van gebaren, spraak en symbolen, kunnen bots communiceren met gebruikers met behulp van een combinatie van uitgebreide gebruikersbesturingselementen, tekst (soms inclusief natuurlijke taal) en spraak. Deze communicatiemethoden kunnen samen worden gebruikt; U hoeft niet voor elkaar te kiezen.
Stel bijvoorbeeld een 'kookbot' die gebruikers helpt bij recepten, waarbij de bot instructies kan geven door een video af te spelen of een reeks afbeeldingen weer te geven om uit te leggen wat er moet gebeuren. Sommige gebruikers kunnen liever pagina's van het recept spiegelen of vragen stellen aan de bot met behulp van spraak terwijl ze een recept samenstellen. Anderen kunnen het scherm van een apparaat liever aanraken in plaats van via spraak te communiceren met de bot. Wanneer u uw bot ontwerpt, neemt u de UX-elementen op die ondersteuning bieden voor de manieren waarop gebruikers waarschijnlijk liever met uw bot werken, gezien de specifieke gebruiksscenario's die moeten worden ondersteund.