Best practices voor entiteiten en het vullen van vakken in Copilot Studio
Wat is het vullen van vakken?
Het vullen van slots heeft te maken met het gebruik van entiteiten waarmee een agent informatie gemakkelijker kan verkrijgen en gebruiken door deze te identificeren en te extraheren uit de gebruikersquery.
Een agent heeft doorgaans verschillende stukjes informatie van een gebruiker nodig om zijn taak te kunnen uitvoeren. Om deze informatie te verkrijgen, stelt u normaal gesproken afzonderlijke vragen, één voor elk feit dat agent nodig heeft. Wanneer u entiteiten gebruikt in uw vragen, detecteert Copilot Studio de vereiste informatie en worden de vragen overgeslagen waar de informatie kan worden geïdentificeerd in de activerende gebruikersvraag.
Als een gebruiker bijvoorbeeld vraagt: Ik wil 3 grote blauwe t-shirts bestellen
Copilot Studio Natural Language Understanding (NLU) kan nu onmiddellijk het volgende begrijpen:
- Onderwerp is Bestelling
- Hoeveelheid is 3
- De kleur is blauw
- Itemtype is T-shirt
De agent kan dan onnodige vragen overslaan. Als sommige stukjes informatie ontbreken, bijvoorbeeld grootte, stelt de bot de onbeantwoorde vragen voordat deze doorgaat. Door het invullen van slots kan uw agent gemakkelijker informatie verkrijgen en gebruiken en hoeft u minder vragen te stellen.
U definieert eerst welke entiteiten u wilt gebruiken en hun typen.
Entiteiten definiëren
Copilot Studio biedt verschillende ingebouwde entiteiten voor de meest voorkomende gebruikssituaties, zoals E-mail, Datum en tijd, Naam persoon, Telefoonnummer, Kleur, Land, Plaats, Nummer, Geld en meer.
Ingebouwde entiteiten zijn krachtig omdat ze veel variaties kunnen verwerken van de vorm die informatie kan aannemen. Bij gebruik van Geld in een gesprek kan de gebruiker een waarde invoeren als '$100', 'honderd dollar' of '100 dollar'. Het NLU-model in Copilot Studio komt erachter dat de waarde een geldwaarde is van 100 dollar.
Fooi
Hoe waarden ook worden ingevoerd, zolang ze worden opgevraagd met vragen in uw gespreksstroom, worden ze opgeslagen in variabelen die u opnieuw kunt gebruiken.
U kunt ook uw eigen aangepaste entiteiten definiëren, zoals Itemtype uit het vorige voorbeeld. Er zijn twee soorten aangepaste entiteiten:
- Gesloten lijst: voor een vooraf gedefinieerde lijst met waarden.
- Reguliere expressies (RegEx): voor informatie die overeenkomt met een specifiek patroon. RegEx is ideaal wanneer u gegevens moet vastleggen die altijd dezelfde notatie hebben (bijvoorbeeld INC000001 voor een ticketnummer)
De gebruikerservaring verbeteren
Met entiteiten kunt u uw leven eenvoudiger maken door Copilot Studio op een intelligentere manier gegevens te laten verzamelen op basis van vragen van gebruikers. Wat nog belangrijker is, het maakt het leven van gebruikers beter omdat entiteiten informatie van gebruikersvragen kunnen vinden en opslaan en die informatie later in het gesprek beschikbaar kunnen maken. Entiteiten verbeteren de gebruikerservaring: ze laten uw agent slimmer lijken. Het is dan ook absoluut een goede gewoonte om ze te gebruiken wanneer dat mogelijk is.
Best practices voor entiteiten
Synoniemen gebruiken
U kunt synoniemen toevoegen aan gesloten lijstentiteitswaarden om de overeenkomende logica voor elk item in de lijst van de entiteit handmatig uit te breiden. In het item "wandelen" kunt u bijvoorbeeld "trekking" en "alpinisme" als synoniemen toevoegen.
Fooi
- Het gebruik van synoniemen kan ook de onderwerpactivering ten goede komen, omdat ze het gewicht van een triggerzin verhogen door verwante woorden toe te voegen als synoniemen van een entiteit die het bevat. Voeg bijvoorbeeld voor de optie 'Klacht' vergelijkbare negatieve woorden of zinsdelen toe als synoniemen.
- Het NLU-model generaliseert ook op alle entiteitsvarianten (al hun waarden en hun synoniemen) voor het geval een triggerzin voor een onderwerp ten minste één variant van deze entiteit bevat. Met andere woorden, auteurs van agent moeten één voorbeeld van een triggerzin opnemen met één gebruik van deze entiteit, zodat NLU kan generaliseren naar andere entiteitsvariaties.
Slimme overeenkomsten inschakelen
Voor elke gesloten-lijstentiteit kunt u ook Slimme overeenkomsten inschakelen.
Smart Matching is onderdeel van de intelligentie die wordt ondersteund door het agent's NLU-model. Als deze optie is ingeschakeld, interpreteert agent de invoer van de gebruiker met behulp van fuzzy logic, op basis van de vermelde items in de entiteit.
Met name de agent corrigeert automatisch spelfouten en breidt de matchinglogica semantisch uit. De code agent kan bijvoorbeeld automatisch "softball" aan "baseball" koppelen.
Creatief omgaan met reguliere expressies
Soms kan entiteitsextractie uit een gebruikersquery tot verwarring leiden voor het NLU-model, vooral wanneer meerdere entiteiten van hetzelfde type aanwezig zijn in de gebruikersquery.
Stel dat een gebruiker vraagt: "Kunt u 2 handdoeken en 1 kussen meenemen naar kamer 101"?
Bij gebruik van de ingebouwde entiteit Getal kan er verwarring ontstaan over 2, 1 en 101. Om deze verwarring te omzeilen, kunt u de volgende entiteiten voor reguliere expressies definiëren:
- Aantal handdoeken: [1-9] handdoek
- Aantal kussens: [1-9] kussen
- Kamernummer: [0-9]{3}
Alternatieven voor entiteiten om referentiegegevens op te slaan
Voor grote of evoluerende gegevenssets (bijvoorbeeld een lijst met producten of klanten) kunt u in plaats van gesloten lijstentiteiten Copilot Studio te gebruiken mogelijk ook externe bronnen controleren. Mogelijk moet u de gebruikersuiting doorgeven aan de externe service met behulp van een Power Automate-cloudstroom.
Uw onderwerplogica kan vervolgens de juistheid van het resultaat valideren (of de gebruiker vragen om het te valideren) voordat u verder gaat in het gesprek.
Dataverse is een goede kandidaat om dergelijke gegevens op te slaan, omdat het een ingebouwde Dataverse-zoekfunctie bevat die fuzzy matching ondersteunt om de beste resultaten met een betrouwbaarheidsscore te retourneren. Zelfs als u zoekt met een volledige zin, kunnen er mogelijke overeenkomsten worden opgehaald.
Fooi
Zie Een lijst met resultaten retourneren voor een voorbeeld van een implementatie.