Een afbreekbare LUIS-toepassing bouwen

Belangrijk

LUIS wordt op 1 oktober 2025 buiten gebruik gesteld en vanaf 1 april 2023 kunt u geen nieuwe LUIS-resources meer maken. We raden u aan uw LUIS-toepassingen te migreren naar conversatietaalbegrip om te profiteren van continue productondersteuning en meertalige mogelijkheden.

In deze zelfstudie kunt u een telecom LUIS-toepassing maken die verschillende intenties van gebruikers kan voorspellen. Aan het einde van de zelfstudie hebben we een telecomtoepassing die gebruikersintenties kan voorspellen op basis van tekst van gebruikers.

We behandelen verschillende gebruikersscenario's (intenties), zoals:

  • Aanmelden voor een nieuwe telecomlijn
  • Een bestaande laag bijwerken
  • Een factuur betalen

In deze zelfstudie leert u het volgende:

  1. Een LUIS-toepassing maken
  2. Intents maken
  3. Entiteiten toevoegen
  4. Utterances toevoegen
  5. Voorbeelden van uitingen labelen
  6. Een app trainen
  7. Een app publiceren
  8. Voorspellingen ophalen van het gepubliceerde eindpunt

Een LUIS-toepassing maken

  1. Aanmelden bij de LUIS-portal

  2. Maak een nieuwe toepassing door +Nieuwe app te selecteren.

    Een schermopname van het scherm voor het maken van de toepassing.

  3. Voer in het venster dat wordt weergegeven de naam 'Telecom Tutorial' in, waarbij de standaardcultuur Engels wordt behouden. De andere velden zijn optioneel, niet instellen. Selecteer Gereed.

    Een schermopname van de velden voor het maken van de LUIS-toepassing.

Gebruikersintenties als intents

Het eerste wat u in de sectie Bouwen ziet, zijn de intenties van de app. Intenties vertegenwoordigen een taak of een actie die een gebruiker wil uitvoeren.

Stel u een telecom LUIS-toepassing voor, wat zou een gebruiker nodig hebben?

Ze moeten waarschijnlijk een bepaalde gebruikersactie uitvoeren of om hulp vragen. Een andere gebruiker wil mogelijk zijn of haar laag bijwerken of een factuur betalen

Het resulterende schema is als volgt. Zie best practices voor het plannen van het schema voor meer informatie.

Intentie Doel
UserActions Gebruikersacties bepalen
Help Hulp aanvragen
UpdateTier Huidige laag bijwerken
PayBill Openstaande factuur betalen
Geen Bepaal of de gebruiker een vraag stelt die de LUIS-app niet kan beantwoorden. Deze intentie wordt geleverd als onderdeel van het maken van de app en kan niet worden verwijderd.

Een nieuwe intentie maken

Een intent wordt gebruikt om uitingen van gebruikers in te delen volgens de gebruikersintentie, die blijkt uit de natuurlijke taal in een tekst.

Voor het classificeren van een utterance heeft de intentie voorbeelden nodig van gebruikersuitingen die moeten worden geclassificeerd met deze intentie.

  1. Selecteer Build in het bovenste navigatiemenu en selecteer vervolgens Intenties aan de linkerkant van het scherm. Selecteer + Maken om een nieuwe intentie te maken. Voer de naam van de nieuwe intentie in, 'UserAction' en selecteer gereed

    UserAction kan een van de vele intenties zijn. Sommige gebruikers willen zich bijvoorbeeld registreren voor een nieuwe regel, terwijl anderen mogelijk vragen om informatie op te halen.

  2. Voeg verschillende voorbeelden van utterances toe aan deze intent waarnaar een gebruiker waarschijnlijk zal vragen:

    • Hallo! Ik wil me aanmelden voor een nieuwe regel
    • Kan ik me registreren voor een nieuwe regel?
    • Hallo, ik wil een nieuwe regel
    • Ik ben mijn nummer vergeten!
    • Ik wil een nieuw regelnummer

    Een schermopname met voorbeelduitingen voor de intentie UserAction.

Voor de intentie PayBill kunnen enkele uitingen zijn:

  • Ik wil mijn factuur betalen
  • Mijn factuur vereffenen
  • Factuur betalen
  • Ik wil mijn huidige saldo sluiten
  • Hee. Ik wil de huidige factuur betalen

Door voorbeelden van uitingen op te geven traint u LUIS in het soort uitingen dat voor deze intent kan worden voorspeld. Dit zijn positieve voorbeelden. De uitingen in alle andere intents worden behandeld als negatieve voorbeelden voor deze intent. Hoe meer voorbeelduitingen u toevoegt, hoe beter de voorspellingen van uw app zijn.

Deze utterances zijn alleen bedoeld voor demonstratiedoeleinden. Een app moet minstens 15-30 uitingen hebben met verschillende lengten, woordvolgordes, werkwoordtijden, grammaticale juistheid, interpunctie en aantal woorden.

De resterende intenties maken

Voer de bovenstaande stappen uit om de volgende intenties toe te voegen aan de app:

"Help"

  • "Ik heb hulp nodig"
  • "Ik heb hulp nodig"
  • "Help alsjeblieft"
  • "Kan iemand me steunen?"
  • "Ik zit vast, kun je me helpen"
  • "Kan ik hulp krijgen?"

"UpdateTier"

  • "Ik wil mijn laag bijwerken"
  • "Mijn laag bijwerken"
  • "Ik wil overschakelen naar VIP-laag"
  • "Mijn abonnement wijzigen in de standard-laag"

Voorbeelduitingen voor de intentie None

De clienttoepassing moet weten of een uiting niet zinvol of gepast is voor de toepassing. De intentie 'Geen' wordt toegevoegd aan elke toepassing als onderdeel van het aanmaakproces om te bepalen of een uiting niet moet worden beantwoord door de clienttoepassing.

Als LUIS de intentie 'Geen' retourneert voor een uiting, kan uw clienttoepassing vragen of de gebruiker het gesprek wil beëindigen of meer aanwijzingen wil geven voor het voortzetten van het gesprek.

Als u de intentie 'Geen' leeg laat, wordt een uiting die buiten het onderwerpdomein moet worden voorspeld, voorspeld in een van de bestaande intenties van het onderwerpdomein. Het resultaat is dat de clienttoepassing, zoals een chatbot, onjuiste bewerkingen uitvoert op basis van een onjuiste voorspelling.

  1. Selecteer Intents in het linkerpaneel.

  2. Selecteer de intent None. Voeg drie uitingen toe die uw gebruiker mogelijk invoert, maar die niet relevant zijn voor uw Telecom-app. In deze voorbeelden mogen geen woorden worden gebruikt die u verwacht in uw onderwerpdomein, zoals Laag, upgrade, registratie, factuur.

    • "Wanneer is mijn vlucht?"
    • "Ik moet mijn pizzabestelling wijzigen alstublieft"
    • "Hoe is het weer voor vandaag?"

Entiteiten toevoegen

Een entiteit is een item of element dat relevant is voor de intentie van de gebruiker. Entiteiten definiëren gegevens die kunnen worden geëxtraheerd uit de uiting en die essentieel zijn om de vereiste actie van een gebruiker te voltooien.

  1. Selecteer entiteiten in de sectie build .

  2. Als u een nieuwe entiteit wilt toevoegen, selecteert u +Maken

    In dit voorbeeld maken we twee entiteiten: 'UpdateTierInfo' als een door machine geleerd entiteitstype en 'Laag' als een lijstentiteitstype. Met Luis kunt u ook verschillende entiteitstypen maken.

  3. Voer in het venster dat wordt weergegeven 'UpdateTierInfo' in en selecteer Machine learned from the available types. Selecteer het vak Structuur toevoegen om een structuur aan deze entiteit toe te voegen.

    Een schermopname van een entiteit.

  4. Selecteer Next.

  5. Als u een onderliggende subentiteit wilt toevoegen, selecteert u het symbool '+' en begint u het kind toe te voegen. Voor het entiteitsvoorbeeld 'UpdateTierInfo' hebben we drie dingen nodig:

    • OriginalTier
    • NewTier
    • PhoneNumber

    Een schermopname van subentiteiten in de app.

  6. Selecteer Maken nadat u alle DE subentiteiten hebt toegevoegd.

    We maken een andere entiteit met de naam 'Laag', maar deze keer is het een lijstentiteit en bevat deze alle lagen die we kunnen bieden: Standard-laag, Premium-laag en VIP-laag.

  7. Hiervoor gaat u naar het tabblad Entiteiten, drukt u op +maken en selecteert u lijst in de typen in het scherm dat wordt weergegeven.

  8. Voeg de items toe aan uw lijst en u kunt desgewenst synoniemen toevoegen om ervoor te zorgen dat alle gevallen van die vermelding worden begrepen.

    Een schermopname van een lijstentiteit.

  9. Ga nu terug naar de entiteit UpdateTierInfo en voeg de entiteit 'laag' toe als een functie voor de entiteiten 'OriginalTier' en 'newTier' die we eerder hebben gemaakt. Het ziet er ongeveer als volgt uit:

    Een schermopname van de functies van een entiteit.

    We hebben een laag toegevoegd als functie voor zowel 'originalTier' als 'newTier', en we hebben de entiteit 'Phonenumber' toegevoegd, wat een Regex-type is. Het kan op dezelfde manier worden gemaakt als een ML en een lijstentiteit.

Nu hebben we intenties gemaakt, voorbeelduitingen toegevoegd en entiteiten toegevoegd. We hebben vier intenties (behalve de intentie 'geen' gemaakt) en drie entiteiten.

Voorbeelden van uitingen labelen

De door de machine geleerde entiteit wordt gemaakt en de subentiteiten beschikken over functies. Voor het voltooien van de extractieverbetering moeten de voorbeelduitingen worden gelabeld met de subentiteiten.

Er zijn twee manieren om uitingen te labelen:

  1. Het hulpprogramma voor labelen gebruiken

    1. Open het Entiteitspalet en selecteer het symbool '@' in de contextuele werkbalk.
    2. Selecteer elke entiteitrij in het palet en gebruik vervolgens de paletcursor om de entiteit te selecteren in elke voorbeelduiting.
  2. Markeer de tekst door de cursor te slepen. Markeer met de cursor de tekst die u wilt labelen. In de volgende afbeelding hebben we 'vip - tier' gemarkeerd en de entiteit 'NewTier' geselecteerd.

    Een schermopname van het labelen van uitingen.

De app trainen

Selecteer rechts bovenaan op de LUIS-website de knop Train.

Zorg er vóór de training voor dat er ten minste één uiting is voor elke intentie.

Een schermopname van de but voor het trainen van een app.

De app publiceren

Om een voorspelling van LUIS te ontvangen in een chatbot of een andere clienttoepassing, moet u de app publiceren naar het voorspellingseindpunt. Als u wilt publiceren, moet u uw toepassingsfist trainen.

  1. Selecteer Publiceren in de navigatiebalk rechtsboven.

    Een schermopname van de knop voor het publiceren van een app.

  2. Selecteer de Productiesite en selecteer vervolgens Gereed.

    Een schermopname van de selectie van de productiesite.

  3. Selecteer Uw eindpunt-URL's openen in de melding om naar de pagina Azure-resources te gaan. U kunt de URL's alleen zien als u een voorspellingsresource hebt die aan de app is gekoppeld. U kunt de pagina Azure-resources ook vinden door te klikken op Beheren aan de linkerkant van het scherm.

    Een schermopname van de melding over toegang tot eindpunten.

Intentvoorspelling ophalen

  1. Selecteer Beheren in het menu rechtsboven en selecteer vervolgens Azure-resources aan de linkerkant.

  2. Kopieer de URL van de voorbeeldquery en plak deze in een nieuw webbrowsertabblad.

    De eindpunt-URL heeft de volgende indeling.

    https://YOUR-CUSTOM-SUBDOMAIN.api.cognitive.microsoft.com/luis/prediction/v3.0/apps/YOUR-APP-ID/slots/production/predict?subscription-key=YOUR-KEY-ID&verbose=true&show-all-intents=true&log=true&query=YOUR\_QUERY\_HERE
    
  3. Ga naar het einde van de URL in de adresbalk en vervang de query= tekenreeksparameter door:

    "Hallo! Ik ben op zoek naar een nieuw nummer alsjeblieft."

    De uitingsquery wordt doorgegeven in de URI. Deze utterance is niet hetzelfde als een van de voorbeelduitingen en moet een goede test zijn om te controleren of LUIS de intentie UserAction voorspelt als de meest scorende intentie.

    {
        "query": "hello! i am looking for a new number please",
        "prediction": 
        {
            "topIntent": "UserAction",
            "intents": 
            {
                "UserAction": {
                "score": 0.8607431},
                "Help":{
                "score": 0.031376917},
                "PayBill": {
                "score": 0.01989629},
                "None": {
                "score": 0.013738701},
                "UpdateTier": {
                "score": 0.012313577}
            },
        "entities": {}
        }
    }
    

Het JSON-resultaat identificeert de meest scorende intentie als de eigenschap prediction.topIntent . Alle scores liggen tussen 1 en 0, met de betere score dichterbij 1.

Volgende stappen voor clienttoepassing

In deze zelfstudie hebt u een LUIS-app gemaakt, intenties en entiteiten gemaakt, voorbeelduitingen toegevoegd aan elke intentie, voorbeelduitingen toegevoegd aan de intentie None, getraind, gepubliceerd en getest op het eindpunt. Dit zijn de basisstappen voor het compileren van een LUIS-model.

LUIS biedt geen antwoorden op uitingen van gebruikers, maar identificeert alleen om welk type informatie wordt gevraagd in natuurlijke taal. De follow-up van het gesprek wordt geleverd door de clienttoepassing, zoals een Azure-bot.

Resources opschonen

Wanneer u de LUIS-app niet meer nodig hebt, kunt u deze verwijderen. Hiervoor selecteert u Mijn apps in het menu linksboven. Selecteer het beletselteken ( ... ) rechts van de app-naam in de lijst met apps en selecteer Verwijderen. Selecteer OK in het pop-upvenster met de naam App verwijderen? .