Utilizzo delle operazioni API - Amazon Lex

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo delle operazioni API

Associa una funzione Lambda a un alias bot

Se stai creando un nuovo alias bot, usa l'CreateBotAliasoperazione per allegare una funzione Lambda. Per collegare una funzione Lambda a un alias bot esistente, usa l'operazione. UpdateBotAlias Modifica il botAliasLocaleSettings campo in modo che contenga le impostazioni corrette:

{ "botAliasLocaleSettings" : { locale: { "codeHookSpecification": { "lambdaCodeHook": { "codeHookInterfaceVersion": "1.0", "lambdaARN": "arn:aws:lambda:region:account-id:function:function-name" } }, "enabled": true }, ... } }
  1. Il botAliasLocaleSettings campo è mappato su un oggetto le cui chiavi sono le impostazioni locali in cui si desidera collegare la funzione Lambda. Consultate Lingue e impostazioni locali supportate per un elenco delle impostazioni locali supportate e dei codici che costituiscono chiavi valide.

  2. Per trovare la funzione lambdaARN for a Lambda, apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/home, seleziona Funzioni nella barra laterale sinistra e seleziona la funzione da associare all'alias bot. Sul lato destro della panoramica delle funzioni, trova la lambdaARN sezione Funzione ARN. Dovrebbe contenere una regione, un ID account e il nome della funzione.

  3. Per consentire ad Amazon Lex V2 di richiamare la funzione Lambda per l'alias, imposta il campo su. enabled true

Imposta l'intento di richiamare la funzione Lambda

Per impostare la chiamata della funzione Lambda durante un intento, usa l'CreateIntentoperazione se stai creando un nuovo intento o l'UpdateIntentoperazione se stai invocando la funzione in un intento esistente. I campi che controllano l'invocazione della funzione Lambda nelle operazioni intent sonodialogCodeHook,, e. initialResponseSetting intentConfirmationSetting fulfillmentCodeHook

Se richiamate la funzione durante l'elicitazione di uno slot, utilizzate l'CreateSlotoperazione se state creando un nuovo slot o l'UpdateSlotoperazione per richiamare la funzione in uno slot esistente. Il campo che controlla l'invocazione della funzione Lambda nelle operazioni dello slot è l'slotCaptureSettingoggetto. valueElicitationSetting

  1. Per impostare l'hook del codice di dialogo Lambda in modo che venga eseguito dopo ogni turno della conversazione, imposta il enabled campo del seguente DialogCodeHookSettingsoggetto nel dialogCodeHook campo su: true

    "dialogCodeHook": { "enabled": boolean }
  2. In alternativa, puoi impostare l'hook di dialogo Lambda in modo che venga eseguito solo in punti specifici delle conversazioni modificando il elicitationCodeHook campo codeHook e/o all'interno delle strutture che corrispondono alle fasi della conversazione in cui desideri richiamare la funzione. Per utilizzare l'hook di codici di dialogo Lambda per l'adempimento degli intenti, usa il fulfillmentCodeHook campo nell'operazione or. CreateIntentUpdateIntent Le strutture e gli usi di questi tre tipi di code hook sono i seguenti:

Il codeHook campo definisce le impostazioni per l'esecuzione del code hook in una determinata fase della conversazione. È un DialogCodeHookInvocationSettingoggetto con la seguente struttura:

"codeHook": { "active": boolean, "enableCodeHookInvocation": boolean, "invocationLabel": string, "postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object, }
  • Cambia il active campo in modo true che Amazon Lex V2 richiami il code hook in quel momento della conversazione.

  • Cambia il enableCodeHookInvocation campo in true Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegnifalse, Amazon Lex V2 si comporta come se il code hook fosse stato restituito correttamente.

  • invocationLabelIndica la fase di dialogo da cui viene richiamato l'hook di codice.

  • Utilizzate il postCodeHookSpecification campo per specificare le azioni e i messaggi che si verificano dopo il successo, l'errore o il timeout del code hook.

Il elicitationCodeHook campo definisce le impostazioni per l'esecuzione del code hook nel caso in cui sia necessario richiamare nuovamente uno slot o più slot. Questo scenario può verificarsi se l'elicitazione degli slot fallisce o la conferma dell'intento viene negata. Il elicitationCodeHook campo è un ElicitationCodeHookInvocationSettingoggetto con la seguente struttura:

"elicitationCodeHook": { "enableCodeHookInvocation": boolean, "invocationLabel": string }
  • Cambia il enableCodeHookInvocation campo in true Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegnifalse, Amazon Lex V2 si comporta come se il code hook fosse stato restituito correttamente.

  • invocationLabelIndica la fase di dialogo da cui viene richiamato l'hook di codice.

Il fulfillmentCodeHook campo definisce le impostazioni per l'esecuzione del code hook per soddisfare l'intento. È mappato al seguente FulfillmentCodeHookSettingsoggetto:

"fulfillmentCodeHook": { "active": boolean, "enabled": boolean, "fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object, "postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object }
  • Cambia il active campo in modo true che Amazon Lex V2 richiami il code hook in quel momento della conversazione.

  • Cambia il enabled campo in true Amazon Lex V2 per consentire al code hook di funzionare normalmente. Se lo contrassegnifalse, Amazon Lex V2 si comporta come se il code hook fosse stato restituito correttamente.

  • Utilizza il fulfillmentUpdatesSpecification campo per specificare i messaggi che appaiono per aggiornare l'utente durante l'adempimento dell'intento e la tempistica ad essi associata.

  • Utilizzate il postFulfillmentStatusSpecification campo per specificare i messaggi e le azioni che si verificano dopo il successo, l'errore o il timeout del codehook.

Puoi richiamare il code hook Lambda nei seguenti punti di una conversazione impostando active i campi enableCodeHookInvocation eenabled/su: true

Per richiamare la funzione Lambda nella risposta iniziale dopo il riconoscimento dell'intento, utilizzate codeHook la struttura nel campo initialResponse dell'CreateIntentoperazione or. UpdateIntent Il initialResponse campo è mappato al seguente oggetto: InitialResponseSetting

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

Per richiamare la funzione Lambda dopo aver ottenuto un valore di slot, utilizzate slotCaptureSetting il campo all'interno del campo valueElicitation dell'CreateSlotoperazione or. UpdateSlot Il slotCaptureSetting campo è mappato al seguente oggetto: 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 }
  • Per richiamare la funzione Lambda dopo che l'elicitazione dello slot ha avuto esito positivo, utilizzate il campo. codeHook

  • Per richiamare la funzione Lambda dopo che l'elicitazione dello slot fallisce e Amazon Lex V2 tenta di riprovare l'elicitazione dello slot, usa il campo. elicitationCodeHook

Per richiamare la funzione Lambda quando si conferma un intento, utilizzare intentConfirmationSetting il campo dell'operazione or. CreateIntentUpdateIntent Il intentConfirmation campo è mappato al seguente oggetto: IntentConfirmationSetting

"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 }
  • Per richiamare la funzione Lambda dopo che l'utente ha confermato l'intento e i relativi slot, usa il campo. codeHook

  • Per richiamare la funzione Lambda dopo che l'utente ha negato la conferma dell'intento e Amazon Lex V2 ha tentato di ripetere l'elicitazione dello slot, usa il campo. elicitationCodeHook

Per richiamare la funzione Lambda per soddisfare un intento, usa fulfillmentCodeHook il campo nell'CreateIntentoperazione or. UpdateIntent Il fulfillmentCodeHook campo è mappato al seguente oggetto: FulfillmentCodeHookSettings

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

3. Una volta impostate le fasi della conversazione in cui richiamare la funzione Lambda, utilizzate BuildBotLocale l'operazione per ricostruire il bot per testare la funzione.