Creare un'applicazione LUIS componibile

Importante

LUIS verrà ritirato il 1° ottobre 2025 e a partire dal 1° aprile 2023 non sarà possibile creare nuove risorse LUIS. È consigliabile eseguire la migrazione delle applicazioni LUIS alla comprensione del linguaggio conversazionale per trarre vantaggio dal supporto continuo del prodotto e dalle funzionalità multilingue.

In questa esercitazione sarà possibile creare un'applicazione LUIS per telecomunicazioni in grado di prevedere intenzioni utente diverse. Al termine dell'esercitazione, è necessario avere un'applicazione per telecomunicazioni in grado di stimare le intenzioni degli utenti in base al testo fornito dagli utenti.

Verranno gestiti diversi scenari utente (finalità), ad esempio:

  • Iscrizione a una nuova linea di telecomunicazioni
  • Aggiornamento di un livello esistente
  • Pagamento di una fattura

In questa esercitazione si apprenderà come:

  1. Creare un'applicazione LUIS
  2. Creare finalità
  3. Aggiungere entità
  4. Aggiungere espressioni
  5. Etichettare le espressioni di esempio
  6. Eseguire il training di un'app
  7. Pubblicare un'app
  8. Ottenere stime dall'endpoint pubblicato

Creare un'applicazione LUIS

  1. Accedere al portale LUIS

  2. Creare una nuova applicazione selezionando +Nuova app.

    Screenshot della schermata di creazione dell'applicazione.

  3. Nella finestra visualizzata immettere il nome "Telecom Tutorial", mantenendo le impostazioni cultura predefinite, inglese. Gli altri campi sono facoltativi, non impostarli. Selezionare Operazione completata.

    Screenshot dei campi di creazione dell'applicazione LUIS.

Intenzioni dell'utente come finalità

La prima cosa che vedrai nella sezione Compilazione è la finalità dell'app. Le finalità rappresentano un'attività o un'azione che un utente vuole eseguire.

Si supponga di avere un'applicazione LUIS per telecomunicazioni, cosa sarebbe necessario per un utente?

Probabilmente dovranno eseguire un tipo di azione dell'utente o richiedere assistenza. Un altro utente potrebbe voler aggiornare il livello o pagare una fattura

Lo schema risultante è il seguente. Per altre informazioni, vedere Procedure consigliate per la pianificazione dello schema.

Intent Scopo
UserActions Determinare le azioni dell'utente
Help Richiedere assistenza
UpdateTier Aggiornare il livello corrente
PayBill Pagare una fattura in sospeso
Nessuno Determinare se l'utente sta chiedendo qualcosa per cui l'app LUIS non è progettata per rispondere. Questa finalità viene fornita come parte della creazione dell'app e non può essere eliminata.

Creare una nuova finalità

La finalità viene usata per classificare le espressioni utente in base all'intenzione dell'utente, determinata dal testo in linguaggio naturale.

Per classificare un'espressione, la finalità richiede esempi di espressioni utente che devono essere classificate con questa finalità.

  1. Selezionare Compila nel menu di spostamento superiore e quindi selezionare Finalità sul lato sinistro della schermata. Selezionare + Create (Crea) per creare una nuova finalità. Immettere il nome della nuova finalità, "UserAction", quindi selezionare Fine

    UserAction può essere una delle numerose finalità. Ad esempio, alcuni utenti potrebbero voler iscriversi per una nuova riga, mentre altri potrebbero chiedere di recuperare informazioni.

  2. Aggiungere a questa finalità diverse espressioni di esempio che verranno presumibilmente usate dagli utenti:

    • Salve! Desidero iscriversi per una nuova riga
    • È possibile iscriversi per una nuova riga?
    • Ciao, voglio una nuova riga
    • Ho dimenticato il mio numero di riga!
    • Vorrei un nuovo numero di riga

    Screenshot che mostra espressioni di esempio per la finalità UserAction.

Per la finalità PayBill , alcune espressioni potrebbero essere:

  • Voglio pagare la fattura
  • Liquidare la fattura
  • Fattura con pagamento
  • Voglio chiudere il mio saldo corrente
  • Questo Voglio pagare la fattura corrente

Fornendo espressioni di esempio, LUIS impara quali sono i tipi di espressione che dovranno essere previste per la finalità in questione. Questi sono esempi positivi. Le espressioni in tutte le altre finalità sono considerate esempi negativi per questa finalità. Idealmente, più espressioni di esempio aggiunte, migliore sarà la stima dell'app.

Queste espressioni solo a scopo dimostrativo. Un'app reale dovrebbe includere almeno 15-30 espressioni di lunghezza, ordine e conteggio delle parole, tempo verbale, correttezza grammaticale e punteggiatura variabili.

Creazione delle finalità rimanenti

Eseguire i passaggi precedenti per aggiungere le finalità seguenti all'app:

"Guida"

  • "Ho bisogno di aiuto"
  • "Ho bisogno di assistenza"
  • "Aiuto per favore"
  • "Qualcuno può sostenermi?"
  • "Sono bloccato, puoi aiutarmi"
  • "Posso ottenere aiuto?"

"UpdateTier"

  • "Si vuole aggiornare il livello"
  • "Aggiornare il livello"
  • "Voglio passare al livello VIP"
  • "Modificare la sottoscrizione al livello standard"

Espressioni di esempio per la finalità Nessuno

L'applicazione client deve stabilire se un'espressione non è significativa o appropriata per l'applicazione. La finalità "None" viene aggiunta a ogni applicazione come parte del processo di creazione per determinare se un'espressione non deve essere risposta dall'applicazione client.

Se LUIS restituisce la finalità "None" per un'espressione, l'applicazione client può chiedere se l'utente vuole terminare la conversazione o fornire altre indicazioni per continuare la conversazione.

Se si lascia vuota la finalità "Nessuno", verrà stimata un'espressione che deve essere stimata all'esterno del dominio soggetto in una delle finalità del dominio soggetto esistenti. Ciò determinerà operazioni non corrette basate su una stima errata da parte dell'applicazione client, ad esempio un chatbot.

  1. Selezionare Intents (Finalità) dal pannello di sinistra.

  2. Selezionare la finalità None (Nessuna). Aggiungere tre espressioni che l'utente potrebbe immettere ma non sono rilevanti per l'app Telecom. Questi esempi non devono usare parole previste nel dominio soggetto, ad esempio Livello, aggiornamento, iscrizione, fattura.

    • "Quando è il mio volo?"
    • "Devo cambiare il mio ordine di pizza per favore"
    • "Qual è il tempo per oggi?"

Aggiungere entità

Un'entità è un elemento o un elemento pertinente alla finalità dell'utente. Le entità definiscono i dati che possono essere estratti dall'espressione e sono essenziali per completare l'azione richiesta da un utente.

  1. Nella sezione build selezionare Entità.

  2. Per aggiungere una nuova entità, selezionare +Crea

    In questo esempio verranno create due entità, "UpdateTierInfo" come tipo di entità appreso dal computer e "Livello" come tipo di entità elenco. Luis consente anche di creare diversi tipi di entità.

  3. Nella finestra visualizzata immettere "UpdateTierInfo" e selezionare Machine appreso dai tipi disponibili. Selezionare la casella Aggiungi struttura per poter aggiungere una struttura a questa entità.

    Screenshot che mostra un'entità.

  4. Selezionare Avanti.

  5. Per aggiungere una sottoentità figlio, selezionare il simbolo "+" e iniziare ad aggiungere il figlio. Per l'esempio di entità "UpdateTierInfo", è necessario eseguire tre operazioni:

    • OriginalTier
    • NewTier
    • PhoneNumber

    Screenshot delle sottoentities nell'app.

  6. Selezionare Crea dopo aver aggiunto tutte le sottoentities.

    Verrà creata un'altra entità denominata "Livello", ma questa volta sarà un'entità elenco e includerà tutti i livelli che potrebbero essere forniti: livello Standard, livello Premium e livello VIP.

  7. A tale scopo, passare alla scheda entità e premere +create e selezionare l'elenco dai tipi nella schermata visualizzata.

  8. Aggiungere gli elementi all'elenco e, facoltativamente, è possibile aggiungere sinonimi per assicurarsi che tutti i casi di tale menzione vengano compresi.

    Screenshot di un'entità elenco.

  9. Tornare ora all'entità "UpdateTierInfo" e aggiungere l'entità "livello" come funzionalità per le entità "OriginalTier" e "newTier" create in precedenza. L'output dovrebbe essere simile al seguente:

    Screenshot delle funzionalità di un'entità.

    È stato aggiunto il livello come funzionalità per "originalTier" e "newTier" e l'entità "Phonenumber", ovvero un tipo Regex. Può essere creato allo stesso modo in cui è stato creato un machine learning e un'entità elenco.

Ora sono state create finalità, aggiunte espressioni di esempio e entità aggiunte. Sono state create quattro finalità (diverse dalla finalità "none") e tre entità.

Etichettare le espressioni di esempio

Viene creata l'entità basata su machine Learning e le sottoentità dispongono di funzionalità. Per completare il miglioramento dell'estrazione, le espressioni di esempio devono essere etichettate con le sottoentità.

Esistono due modi per etichettare le espressioni:

  1. Uso dello strumento di etichettatura

    1. Aprire il riquadro entità e selezionare il simbolo "@" nella barra degli strumenti contestuale.
    2. Selezionare ogni riga di entità nella tavolozza, quindi usare il cursore della tavolozza per selezionare l'entità in ogni espressione di esempio.
  2. Evidenziare il testo trascinando il cursore. Usando il cursore, evidenziare il testo da etichettare. Nell'immagine seguente è stato evidenziato "vip - livello" e selezionare l'entità "NewTier".

    Screenshot che mostra come etichettare le espressioni.

Eseguire il training dell'app

In alto a destra nel sito Web LUIS selezionare il pulsante Train (Esegui il training).

Prima di eseguire il training, assicurarsi che sia presente almeno un'espressione per ogni finalità.

Screenshot che mostra il ma per il training di un'app.

Pubblicare l'app

Per ottenere una previsione di Language Understanding Intelligent Service (LUIS) in un chatbot o in un'altra applicazione client, è necessario pubblicare l'app nell'endpoint di previsione. Per pubblicare, è necessario eseguire il training dell'applicazione fist.

  1. Selezionare Pubblica nel riquadro di spostamento in alto a destra.

    Screenshot che mostra il pulsante per la pubblicazione di un'app.

  2. Selezionare Slot di produzione e quindi Fatto.

    Screenshot che mostra il selettore dello slot di produzione.

  3. Selezionare il collegamento Accedi agli URL degli endpoint nella notifica per passare alla pagina Risorse di Azure. Sarà possibile visualizzare gli URL solo se all'app è associata una risorsa di previsione. È anche possibile trovare la pagina Risorse di Azure facendo clic su Gestisci a sinistra della schermata.

    Screenshot che mostra la notifica di accesso all'endpoint.

Ottenere la stima della finalità

  1. Selezionare Gestisci nel menu in alto a destra, quindi selezionare Risorse di Azure a sinistra.

  2. Copiare l'URL di query di esempio e incollarlo in una nuova scheda del Web browser.

    L'URL dell'endpoint avrà il formato seguente.

    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. Passare alla fine dell'URL nella barra degli indirizzi e sostituire il query= parametro stringa con:

    "Ciao! Sto cercando un nuovo numero per favore."

    La query di espressione viene passata nell'URI. Questa espressione non è uguale a quella delle espressioni di esempio e deve essere un buon test per verificare se LUIS stima la finalità UserAction come finalità di punteggio superiore.

    {
        "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": {}
        }
    }
    

Il risultato JSON identifica la finalità di punteggio superiore come proprietà prediction.topIntent . Tutti i punteggi sono compresi tra 1 e 0, con il punteggio migliore prossimo a 1.

Passaggi successivi dell'applicazione client

Questa esercitazione ha creato un'app LUIS, le finalità create, le entità, aggiunte espressioni di esempio a ogni finalità, aggiunte espressioni di esempio alla finalità None, sottoposto a training, pubblicato e testato all'endpoint. Questi sono i passaggi di base per la creazione di un modello LUIS.

LUIS non fornisce risposte alle espressioni utente, identifica solo il tipo di informazioni richieste nel linguaggio naturale. Il completamento della conversazione viene fornito dall'applicazione client, ad esempio un Azure Bot.

Pulire le risorse

Quando non è più necessaria, eliminare l'app LUIS. A questo scopo, selezionare App personali dal menu in alto a sinistra. Selezionare i puntini di sospensione ( ... ) a destra del nome dell'app nell'elenco app, selezionare Elimina. Nella finestra di dialogo popup denominata Elimina app? , selezionare Ok.