Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie verwende ich eine Lambda-Funktion zur Initialisierung/Validierung oder Erfüllung, um den Dialogablauf meines Amazon Lex Bot zu ändern?

Lesedauer: 3 Minute
0

Ich möchte eine AWS-Lambda-Funktion zur Initialisierung/Validierung oder Erfüllung verwenden, um den Dialogablauf meines Amazon Lex Bot zu ändern.

Behebung

Hinweis: Das Beispiel in diesem Artikel verwendet Version 2 der Amazon-Lex-Konsole. Wenn Sie Version 1 verwenden, wählen Sie im Navigationsbereich Zur neuen Lex-v2-Konsole wechseln.

Die Lambda-Antwortsyntax gibt das Format an, in dem Amazon Lex die Antwort der Lambda-Funktion erwartet. Stellen Sie sicher, dass die Antwort die erforderlichen Felder enthält.

Den ElicitSlot-Typ verwenden, um den Dialogablauf zu ändern

Um den ElicitSlot-Typ zum Ändern des Dialogablaufs zu verwenden, übergeben Sie die Antwort vom Lambda Code Hook im folgenden Format:

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

Nachdem Amazon Lex die Antwort zurückgegeben hat, ruft es einen Slot namens slot-name-to-elicit ab, der zur Absicht intent-name-to-elicit gehört.

Zum Beispiel haben Sie eine Absicht CreateUser mit einem Slot, der zur Eingabe eines Benutzernamens auffordert. Verwenden Sie eine Lambda-Funktion, um zu überprüfen, ob der Benutzername bereits existiert. Wenn der Benutzername existiert, rufen Sie den Benutzername-Slot erneut für dieselbe Absicht auf.

Den ElicitIntent-Typ verwenden, um den Dialogablauf zu ändern

Um den ElicitIntent-Typ zum Ändern des Dialogablaufs zu verwenden, übergeben Sie die Antwort vom Lambda Code Hook im folgenden Format:

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

Nachdem Amazon Lex die Antwort zurückgegeben hat, sieht der Benutzer die Nachricht, die im Nachrichten-Platzhalter angegeben ist. Die nächste Benutzereingabe wird als Absichtserklärung betrachtet und ruft die Absicht mit dem höchsten nluConfidence-Wert auf.

Wenn Ihr Bot beispielsweise eine Absicht für Ihren Benutzer erfüllt, versetzen Sie den Bot in den Status Zuhören. Der Benutzer kann dann eine weitere Äußerung abgeben, um eine andere Absicht hervorzurufen.

Den Delegate-Typ verwenden, um den Dialogablauf zu ändern

Sie können den Delegate-Typ verwenden, um den Beginn einer Absicht zu ändern, wenn Sie die neue Absicht angeben. Um den Delegate-Typ zu verwenden, übergeben Sie die Antwort vom Lambda Code Hook im folgenden Format:

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

Ihr Bot hat beispielsweise die Absichten A, B und C. Wenn der Benutzer eine Antwort auf einen Slot in Absicht A gibt, überprüft die Lambda-Funktion die Benutzereingabe. Dann ruft die Funktion entweder Absicht B oder C auf.

Ähnliche Informationen

amazon-lex-v2-dialogation auf der GitHub-Website

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr