Programmiermodell - Amazon Lex V1

Wenn Sie Amazon Lex V2 verwenden, lesen Sie stattdessen das Amazon Lex V2-Handbuch.

 

Wenn Sie Amazon Lex V1 verwenden, empfehlen wir, Ihre Bots auf Amazon Lex V2 zu aktualisieren. Wir fügen V1 keine neuen Funktionen mehr hinzu und empfehlen dringend, V2 für alle neuen Bots zu verwenden.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Programmiermodell

Ein Bot ist der primäre Ressourcentyp in Amazon Lex. Die anderen Ressourcentypen in Amazon Lex sind Absicht, Slot-Typ, Alias und Bot-Kanalzuordnung.

Sie erstellen einen Bot mithilfe der Amazon Lex Lex-Konsole oder der Modelbuilding-API. Die Konsole besitzt eine grafische Benutzeroberfläche, die Sie zum Erstellen eines betriebsfähigen Bots für Ihre Anwendung verwenden können. Wenn Sie dies bevorzugen, können Sie die Modellerstellung-API über die AWS CLI oder ein benutzerdefiniertes Programm verwenden, um einen Bot zu erstellen.

Nach dem Erstellen eines Bots stellen Sie ihn auf einer der unterstützten Plattformen bereit oder integrieren ihn in die eigene Anwendung. Wenn ein Benutzer mit dem Bot interagiert, sendet die Client-Anwendung mithilfe der Amazon Lex-Laufzeit-API Anfragen an den Bot. Wenn ein Benutzer beispielsweise sagt „Ich möchte Pizza bestellen“, sendet Ihr Kunde diese Eingabe mithilfe einer der Runtime-API-Operationen an Amazon Lex. Benutzer können Eingaben in Form von Sprache oder Text bereitstellen.

Sie können auch Lambda-Funktionen erstellen und sie in einer Absicht verwenden. Verwenden Sie diese Code-Hooks für Lambda-Funktionen, um Laufzeitaktivitäten wie Initialisierung, Validierung von Benutzereingaben und Absichtserfüllung durchzuführen. In den folgenden Abschnitten finden Sie zusätzliche Informationen.

Operationen der Modellerstellung-API

Verwenden Sie die Operationen der Modellerstellung-API, um Bots, Absichten und Slot-Typen zu erstellen. Sie können die Modellerstellung-API auch zum Verwalten, Aktualisieren und Löschen von Ressourcen für den Bot verwenden. Operationen der Modellerstellung-API:

Sie können die Modellbau-API verwenden, um benutzerdefinierte Tools zur Verwaltung Ihrer Amazon Lex-Ressourcen zu erstellen. Es gilt beispielsweise ein Limit von jeweils 100 Versionen für Bots, Absichten und Slot-Typen. Sie können die Modellerstellung-API verwenden, um ein Tool zu entwickeln, das automatisch alte Versionen löscht, wenn ein Bot sich diesem Limit nähert.

Um sicherzustellen, dass jeweils nur ein Vorgang eine Ressource aktualisiert, verwendet Amazon Lex Prüfsummen. Wenn Sie einePut API-Operation—PutBotPutBotAliasPutIntent, oderPutSlotType —verwenden, um eine Ressource zu aktualisieren, müssen Sie die aktuelle Prüfsumme der Ressource in der Anfrage übergeben. Wenn zwei Tools gleichzeitig versuchen, eine Ressource zu aktualisieren, übergeben beide dieselbe aktuelle Prüfsumme. Die erste Anfrage, Amazon Lex zu erreichen, entspricht der aktuellen Prüfsumme der Ressource. Bis die zweite Anforderung ankommt, hat sich die Prüfsumme geändert. Das zweite Tool empfängt eine PreconditionFailedException-Ausnahme und die Aktualisierung wird beendet.

DieGet Operationen —GetBotGetIntent, undGetSlotType — sind letztendlich konsistent. Wenn Sie eine Get-Operation unmittelbar nach dem Erstellen oder Ändern einer Ressource mit einer der Put-Operationen verwenden, werden die Änderungen möglicherweise nicht zurückgegeben. Nachdem eine Get-Operation die letzte Aktualisierung zurückgegeben hat, wird immer die aktualisierte Ressource zurückgegeben, bis diese erneut geändert wird. Sie können bestimmen, ob eine aktualisierte Ressource zurückgegeben wurde, indem Sie die Prüfsumme heranziehen.

Laufzeit-API-Operationen

Client-Anwendungen verwenden die folgenden Runtime-API-Operationen, um mit Amazon Lex zu kommunizieren:

  • PostContent— Nimmt Sprach- oder Texteingaben entgegen und gibt Informationen zur Absicht sowie eine Text- oder Sprachnachricht zurück, die dem Benutzer übermittelt werden sollen. Derzeit unterstützt Amazon Lex die folgenden Audioformate:

     

    Eingabeaudioformate: LPCM und Opus

    Ausgabeaudioformate: MPEG, OGG und PCM

     

    Die Operation PostContent unterstützt Audioeingaben bei 8 kHz und 16 kHz. Anwendungen, bei denen der Endbenutzer am Telefon mit Amazon Lex spricht, wie z. B. ein automatisiertes Callcenter, können 8-kHz-Audio direkt weitergeben.

     

  • PostText: Nimmt Text als Eingabe entgegen und gibt Absichtsdaten und eine Textmitteilung für den Benutzer zurück.

Ihre Client-Anwendung verwendet die Runtime-API, um einen bestimmten Amazon Lex Lex-Bot aufzurufen, um Äußerungen — Benutzertext oder Spracheingabe — zu verarbeiten. Nehmen wir zum Beispiel an, dass ein Benutzer sagt: "Ich möchte Pizza." Der Client sendet diese Benutzereingabe mithilfe einer der Amazon Lex Lex-Runtime-API-Operationen an einen Bot. Anhand der Benutzereingabe erkennt Amazon Lex, dass die Benutzeranfrage der im Bot definiertenOrderPizza Absicht entspricht. Amazon Lex bindet den Benutzer in eine Konversation ein, um die erforderlichen Informationen oder Slot-Daten wie Pizzagröße, Beläge und Anzahl der Pizzen zu sammeln. Nachdem der Benutzer alle erforderlichen Slot-Daten bereitgestellt hat, ruft Amazon Lex entweder den Code-Hook der Lambda-Funktion auf, um die Absicht zu erfüllen, oder gibt die Absichtsdaten an den Client zurück, je nachdem, wie die Absicht konfiguriert ist.

Verwenden Sie die Operation PostContent, wenn der Bot Spracheingaben verwendet. Beispielsweise kann eine automatisierte Callcenter-Anwendung Sprache an einen Amazon Lex Lex-Bot statt an einen Agenten senden, um Kundenanfragen zu beantworten. Sie können das 8-kHz-Audioformat verwenden, um Audio direkt vom Telefon an Amazon Lex zu senden.

Das Testfenster in der Amazon Lex-Konsole verwendet diePostContent API, um Text- und Sprachanfragen an Amazon Lex zu senden. Sie verwenden dieses Testfenster in den Erste Schritte mit Amazon Lex-Übungen.

Lambda-Funktionen als Code-Hooks

Sie können Ihren Amazon Lex Lex-Bot so konfigurieren, dass er eine Lambda-Funktion als Code-Hook aufruft. Der Code-Haken kann mehrere Aufgaben haben:

  • Passt die Benutzerinteraktion an. Wenn Joe beispielsweise nach verfügbaren Pizzabelägen fragt, können Sie Vorkenntnisse über Joes Auswahl nutzen, um eine Teilmenge der Beläge anzuzeigen.

  • Überprüft die Benutzereingabe — nehmen wir an, dass Jen nach Feierabend Blumen abholen möchte. Sie können die Zeit überprüfen, die Lena angegeben hat, und eine entsprechende Antwort senden.

  • Erfüllt die Absicht des Benutzers — Nachdem Joe alle Informationen für seine Pizzabestellung bereitgestellt hat, kann Amazon Lex eine Lambda-Funktion aufrufen, um die Bestellung bei einer lokalen Pizzeria aufzugeben.

Wenn Sie eine Absicht konfigurieren, geben Sie Lambda-Funktionen als Code-Hooks an den folgenden Stellen an:

  • Dialog-Code-Hook für Initialisierung und Validierung — Diese Lambda-Funktion wird bei jeder Benutzereingabe aufgerufen, vorausgesetzt, Amazon Lex hat die Benutzerabsicht verstanden.

  • Fulfillment-Code-Hook — Diese Lambda-Funktion wird aufgerufen, nachdem der Benutzer alle Slot-Daten bereitgestellt hat, die zur Erfüllung der Absicht erforderlich sind.

Sie wählen die Absicht und legen die Code-Hooks in der Amazon Lex-Konsole fest, wie im folgenden Screenshot gezeigt:

Die Amazon Lex Lex-Konsole mit den Code-Hooks für Lambda-Funktionen.

Sie können die Code-Haken auch mit den Feldern dialogCodeHook und fulfillmentActivity in der Operation PutIntent festlegen.

Eine Lambda-Funktion kann Initialisierung, Validierung und Erfüllung durchführen. Die Ereignisdaten, die die Lambda-Funktion empfängt, enthalten ein Feld, das den Aufrufer entweder als Dialog- oder Fulfillment-Code-Hook identifiziert. Sie können diese Informationen verwenden, um den entsprechenden Teil Ihres Codes auszuführen.

Sie können eine Lambda-Funktion verwenden, um einen Bot zu entwickeln, der in komplexen Dialogen navigieren kann. Sie verwenden dasdialogAction Feld in der Antwort der Lambda-Funktion, um Amazon Lex anzuweisen, bestimmte Aktionen zu ergreifen. Sie können beispielsweise dieElicitSlot Dialogaktion verwenden, um Amazon Lex anzuweisen, den Benutzer nach einem Slot-Wert zu fragen, der nicht erforderlich ist. Wenn Sie eine Klärungsaufforderung definiert haben, können Sie die Dialogaktion ElicitIntent verwenden, um eine neue Absicht zu erfragen, wenn der Benutzer mit der vorherigen Absicht fertig ist.

Weitere Informationen finden Sie unter Verwenden von Lambda-Funktionen.