Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come posso utilizzare la funzione AWS Lambda di inizializzazione/convalida o di adempimento per apportare modifiche al flusso di dialogo del mio bot Amazon Lex?

3 minuti di lettura
0

Desidero utilizzare una funzione AWS Lambda di inizializzazione/convalida o adempimento per apportare modifiche al flusso di dialogo del mio bot Amazon Lex.

Risoluzione

Nota: l'esempio descritto in questo articolo utilizza la versione 2 della console Amazon Lex. Se usi la versione 1, scegli Passa alla nuova console Lex v2 nel pannello di navigazione.

La sintassi della risposta Lambda specifica il formato in cui Amazon Lex si aspetta la risposta della funzione Lambda. Assicurati di includere i campi obbligatori nella risposta.

Usa il tipo ElicitSlot per apportare modifiche al flusso di dialogo

Per utilizzare il tipo ElicitSlot per modificare il flusso di dialogo, passa la risposta dall'hook del codice Lambda nel seguente formato:

{
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "<slot-name-to-elicit>",
            "type": "ElicitSlot"
        },
        "intent": {
            "name": "<intent-name-to-elicit>",
            "state": "InProgress"
        }
    }
}

Dopo aver restituito la risposta, Amazon Lex genera uno slot denominato slot-name-to-elicit appartenente all'intento intent-name-to-elicit.

Ad esempio, hai un intento CreateUser con uno slot che richiede un nome utente. Usa una funzione Lambda per verificare se il nome utente esiste già. Se il nome utente esiste, richiedi nuovamente lo slot del nome utente per lo stesso intento.

Usa il tipo ElicitIntent per modificare il flusso di dialogo

Per utilizzare il tipo ElicitIntent per modificare il flusso di dialogo, passa la risposta dall'hook del codice Lambda nel seguente formato:

{
        "sessionState": {
        "dialogAction": {
            "type": "ElicitIntent"
         }
     },
     "messages": [{
         "contentType": "<content-type>",
         "content": "<message>"
     }]
 }

Dopo che Amazon Lex ha restituito la risposta, l'utente vede il messaggio specificato nel segnaposto del messaggio. Il successivo input dell'utente viene considerato come un enunciato intento e richiama l'intento con il punteggio nluConfidence più alto.

Ad esempio, se il bot soddisfa un intento per il tuo utente, porta il bot in uno stato di ascolto. L'utente può quindi fornire un altro enunciato per invocare un altro intento.

Usa il tipo Delegato per modificare il flusso di dialogo

È possibile utilizzare il tipo Delegato per modificare l'inizio di un intento quando si specifica il nuovo intento. Per utilizzare il tipo Delegato, passa la risposta dal code hook Lambda nel seguente formato:

{
    'sessionState': {
        'dialogAction': {
            'type': 'Delegate'
        },
        'intent': {
            'name': '<intent-name-to-elicit>',
            'state': 'InProgress'
        }
    }
}

Ad esempio, il bot ha gli intenti A, B e C. Se l'utente fornisce una risposta a uno slot nell'intento A, la funzione Lambda controlla l'input dell'utente. Quindi, la funzione richiama l'intento B o C.

Informazioni correlate

amazon-lex-v2-dialogation sul sito Web di GitHub

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa