API-Operationen verwenden - Amazon Lex

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.

API-Operationen verwenden

Hängen Sie eine Lambda-Funktion an einen Bot-Alias an

Wenn Sie einen neuen Bot-Alias erstellen, verwenden Sie den CreateBotAliasVorgang, um eine Lambda-Funktion anzuhängen. Verwenden Sie die UpdateBotAliasOperation, um eine Lambda-Funktion an einen vorhandenen Bot-Alias anzuhängen. Ändern Sie das botAliasLocaleSettings Feld so, dass es die richtigen Einstellungen enthält:

{ "botAliasLocaleSettings" : { locale: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name" } }, "enabled": true }, ... } }
  1. Das botAliasLocaleSettings Feld ist einem Objekt zugeordnet, dessen Schlüssel die Gebietsschemas sind, an die Sie die Lambda-Funktion anhängen möchten. Eine Liste der unterstützten Gebietsschemas und der Codes, bei denen es sich um gültige Schlüssel handelt, finden Sie unter. Unterstützte Sprachen und Gebietsschemata

  2. Um die Funktion lambdaARN for a Lambda zu finden, öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/home, wählen Sie in der linken Seitenleiste Funktionen und wählen Sie die Funktion aus, die dem Bot-Alias zugeordnet werden soll. Auf der rechten Seite der Funktionsübersicht finden Sie lambdaARN unter Funktion ARN. Sie sollte eine Region, eine Konto-ID und den Namen der Funktion enthalten.

  3. Damit Amazon Lex V2 die Lambda-Funktion für den Alias aufrufen kann, setzen Sie das enabled Feld auf. true

Legen Sie die Absicht fest, die Lambda-Funktion aufzurufen

Um den Lambda-Funktionsaufruf während einer Absicht einzurichten, verwenden Sie die CreateIntentOperation, wenn Sie eine neue Absicht erstellen, oder die UpdateIntentOperation, wenn Sie die Funktion in einer vorhandenen Absicht aufrufen. Die Felder, die den Lambda-Funktionsaufruf in den Intent-Operationen steuerndialogCodeHook, sind, initialResponseSettingintentConfirmationSetting, und. fulfillmentCodeHook

Wenn Sie die Funktion während des Auslösens eines Slots aufrufen, verwenden Sie die CreateSlotOperation, wenn Sie einen neuen Slot erstellen, oder die UpdateSlotOperation, um die Funktion in einem vorhandenen Slot aufzurufen. Das Feld, das den Lambda-Funktionsaufruf in den Slot-Operationen steuert, ist das slotCaptureSetting des valueElicitationSetting Objekts.

  1. Um den Lambda-Dialog-Code-Hook so einzustellen, dass er nach jeder Runde der Konversation ausgeführt wird, setzen Sie das enabled Feld des folgenden DialogCodeHookSettingsObjekts im dialogCodeHook Feld auftrue:

    "dialogCodeHook": { "enabled": boolean }
  2. Alternativ können Sie den Lambda-Dialogcode-Hook so einrichten, dass er nur an bestimmten Stellen in den Konversationen ausgeführt wird, indem Sie das elicitationCodeHook Feld codeHook und/oder innerhalb der Strukturen ändern, die den Konversationsphasen entsprechen, in denen Sie die Funktion aufrufen möchten. Um den Lambda-Dialogcode-Hook für die Erfüllung von Absichten zu verwenden, verwenden Sie das fulfillmentCodeHook Feld in der UpdateIntentOperation CreateIntentor. Die Strukturen und Verwendungszwecke dieser drei Arten von Code-Hooks lauten wie folgt:

Das codeHook Feld definiert die Einstellungen für den Code-Hook, der in einer bestimmten Phase der Konversation ausgeführt werden soll. Es ist ein DialogCodeHookInvocationSettingObjekt mit der folgenden Struktur:

"codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
  • Ändern Sie das active Feld auf true für Amazon Lex V2, um den Code-Hook an diesem Punkt in der Konversation aufzurufen.

  • Ändern Sie das enableCodeHookInvocation Feld auf true für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markierenfalse, verhält sich Amazon Lex V2 so, als ob der Code-Hook erfolgreich zurückgegeben wurde.

  • Das invocationLabel gibt den Dialogschritt an, von dem aus der Code-Hook aufgerufen wird.

  • Verwenden Sie das postCodeHookSpecification Feld, um die Aktionen und Meldungen anzugeben, die nach einem erfolgreichen, fehlgeschlagenen oder nach einem Timeout des Code-Hooks ausgeführt werden.

Das elicitationCodeHook Feld definiert die Einstellungen für den Code-Hook, der ausgeführt werden soll, falls ein oder mehrere Slots erneut abgerufen werden müssen. Dieses Szenario kann eintreten, wenn die Slot-Abfrage fehlschlägt oder die Bestätigung der Absicht verweigert wird. Das elicitationCodeHook Feld ist ein ElicitationCodeHookInvocationSettingObjekt mit der folgenden Struktur:

"elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }
  • Ändern Sie das enableCodeHookInvocation Feld auf true für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markierenfalse, verhält sich Amazon Lex V2 so, als ob der Code-Hook erfolgreich zurückgegeben wurde.

  • Das invocationLabel gibt den Dialogschritt an, von dem aus der Code-Hook aufgerufen wird.

Das fulfillmentCodeHook Feld definiert die Einstellungen für den Code-Hook, der ausgeführt werden soll, um die Absicht zu erfüllen. Es ist dem folgenden FulfillmentCodeHookSettingsObjekt zugeordnet:

"fulfillmentCodeHook": { "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
  • Ändern Sie das active Feld auf true für Amazon Lex V2, um den Code-Hook an diesem Punkt in der Konversation aufzurufen.

  • Ändern Sie das enabled Feld auf true für Amazon Lex V2, damit der Code-Hook normal ausgeführt werden kann. Wenn Sie es markierenfalse, verhält sich Amazon Lex V2 so, als ob der Code-Hook erfolgreich zurückgegeben wurde.

  • Verwenden Sie das fulfillmentUpdatesSpecification Feld, um die Nachrichten anzugeben, die den Benutzer während der Erfüllung der Absicht auf den neuesten Stand bringen sollen, und den damit verbundenen Zeitpunkt.

  • Verwenden Sie das postFulfillmentStatusSpecification Feld, um die Meldungen und Aktionen anzugeben, die nach einem erfolgreichen, fehlgeschlagenen oder nach einem Timeout des Code-Hooks ausgeführt werden.

Sie können den Lambda-Code-Hook an den folgenden Stellen in einer Konversation aufrufen, indem Sie die enabled Felder active undenableCodeHookInvocation/auf setzen: true

Um die Lambda-Funktion in der ersten Antwort aufzurufen, nachdem die Absicht erkannt wurde, verwenden Sie die codeHook Struktur im initialResponse Feld der Operation CreateIntentor UpdateIntent. Das initialResponse Feld ist dem folgenden InitialResponseSettingObjekt zugeordnet:

"initialResponse": { "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "initialResponse": FulfillmentUpdatesSpecification object, "nextStep": PostFulfillmentStatusSpecification object, "conditional": ConditionalSpecification object }

Um die Lambda-Funktion aufzurufen, nachdem ein Slot-Wert abgerufen wurde, verwenden Sie das slotCaptureSetting Feld im valueElicitation Feld der OR-Operation. CreateSlotUpdateSlot Das slotCaptureSetting Feld ist dem folgenden Objekt zugeordnet: SlotCaptureSetting

"slotCaptureSetting": { "captureConditional": ConditionalSpecification object, "captureNextStep": DialogState object, "captureResponse": ResponseSpecification object, "codeHook": { "active": true, "enableCodeHookInvocation": true, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object }
  • Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem die Slot-Ermittlung erfolgreich war. codeHook

  • Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem die Slot-Erfassung fehlgeschlagen ist und Amazon Lex V2 versucht, die Slot-Abfrage erneut zu versuchen. elicitationCodeHook

Verwenden Sie das intentConfirmationSetting Feld der Operation CreateIntentor UpdateIntent, um die Lambda-Funktion aufzurufen, wenn Sie eine Absicht bestätigen. Das intentConfirmation Feld ist dem folgenden IntentConfirmationSettingObjekt zugeordnet:

"intentConfirmationSetting": { "active": boolean, "codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }, "confirmationConditional": ConditionalSpecification object, "confirmationNextStep": DialogState object, "confirmationResponse": ResponseSpecification object, "declinationConditional": ConditionalSpecification object, "declinationNextStep": FulfillmentUpdatesSpecification object, "declinationResponse": PostFulfillmentStatusSpecification object, "elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string, }, "failureConditional": ConditionalSpecification object, "failureNextStep": DialogState object, "failureResponse": ResponseSpecification object, "promptSpecification": PromptSpecification object }
  • Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem der Benutzer die Absicht und ihre Slots bestätigt hat. codeHook

  • Verwenden Sie das Feld, um die Lambda-Funktion aufzurufen, nachdem der Benutzer die Bestätigung der Absicht verweigert hat und Amazon Lex V2 versucht, die Slot-Abfrage erneut zu versuchen. elicitationCodeHook

Um die Lambda-Funktion aufzurufen, um eine Absicht zu erfüllen, verwenden Sie das fulfillmentCodeHook Feld in der Operation CreateIntentor UpdateIntent. Das fulfillmentCodeHook Feld ist dem folgenden FulfillmentCodeHookSettingsObjekt zugeordnet:

{ "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }

3. Nachdem Sie die Konversationsphasen festgelegt haben, in denen die Lambda-Funktion aufgerufen werden soll, verwenden Sie den BuildBotLocale Vorgang, um den Bot neu zu erstellen, um die Funktion zu testen.