As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Primeiro, você deve anexar uma função do Lambda ao alias do seu bot para poder invocá-la. Você só pode associar uma função do Lambda a cada alias do bot. Execute estas etapas para anexar a função do Lambda usando operações de API.
Se você estiver criando um novo alias de bot, use a CreateBotAliasoperação para anexar uma função Lambda. Para anexar uma função Lambda a um alias de bot existente, use a operação. UpdateBotAlias Modifique o campo botAliasLocaleSettings
para conter as configurações corretas:
{
"botAliasLocaleSettings" : {
locale
: {
"codeHookSpecification": {
"lambdaCodeHook": {
"codeHookInterfaceVersion": "1.0",
"lambdaARN": "arn:aws:lambda:region
:account-id
:function:function-name
"
}
},
"enabled": true
},
...
}
}
-
O campo
botAliasLocaleSettings
é mapeado para um objeto cujas chaves são as localidades nas quais você deseja anexar a função do Lambda. Consulte Idiomas e locais compatíveis para obter uma lista das localidades com suporte e os códigos que são chaves válidas. -
Para encontrar uma função Lambda, abra o AWS Lambda console em https://console.aws.amazon.com/lambda/casa
, selecione Funções na barra lateral esquerda e selecione a função a ser associada ao alias do bot. lambdaARN
No lado direito da Visão geral da função, encontre olambdaARN
em ARN da função. Ele deve conter uma região, o ID da conta e o nome da função. -
Para permitir que o Amazon Lex V2 invoque a função do Lambda para o alias, defina o campo
enabled
comotrue
.
Como definir uma intenção para invocar uma função do Lambda usando operações de API
Para configurar a invocação da função Lambda durante uma intenção, use a CreateIntentoperação se estiver criando uma nova intenção ou a UpdateIntentoperação se estiver invocando a função em uma intenção existente. Os campos que controlam a invocação da função do Lambda nas operações de intenção são dialogCodeHook
, initialResponseSetting
, intentConfirmationSetting
e fulfillmentCodeHook
.
Se você invocar a função durante a elicitação de um slot, use a CreateSlotoperação se estiver criando um novo slot ou a UpdateSlotoperação para invocar a função em um slot existente. O campo que controla a invocação da função do Lambda nas operações do slot é o slotCaptureSetting
do objeto valueElicitationSetting
.
-
Para configurar o gancho de código de diálogo do Lambda para ser executado após cada turno da conversa, defina o
enabled
campo do seguinte DialogCodeHookSettingsobjeto nodialogCodeHook
campo como:true
"dialogCodeHook": { "enabled":
boolean
} -
Como alternativa, você pode definir o hook de código de diálogo do Lambda para ser executado somente em pontos específicos das conversas, modificando o
codeHook
e/ou o campoelicitationCodeHook
nas estruturas que correspondem aos estágios da conversa nos quais você deseja invocar a função. Para usar o gancho de código de diálogo Lambda para cumprimento da intenção, use ofulfillmentCodeHook
campo na operação ou. CreateIntentUpdateIntent As estruturas e os usos desses três tipos de hooks de código são os seguintes:
O campo codeHook
define as configurações para que o hook de código seja executado em um determinado estágio da conversa. É um DialogCodeHookInvocationSettingobjeto com a seguinte estrutura:
"codeHook": {
"active": boolean
,
"enableCodeHookInvocation": boolean
,
"invocationLabel": string
,
"postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object,
}
-
Altere o campo
active
paratrue
para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa. -
Altere o campo
enableCodeHookInvocation
paratrue
para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo comofalse
, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso. -
O
invocationLabel
indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado. -
Use o campo
postCodeHookSpecification
para especificar as ações e mensagens que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.
O campo elicitationCodeHook
define as configurações para que o hook de código seja executado no caso de um slot ou slots precisarem ser reutilizados. Esse cenário pode ocorrer se a elicitação do slot falhar ou a confirmação da intenção for negada. O elicitationCodeHook
campo é um ElicitationCodeHookInvocationSettingobjeto com a seguinte estrutura:
"elicitationCodeHook": {
"enableCodeHookInvocation": boolean
,
"invocationLabel": string
}
-
Altere o campo
enableCodeHookInvocation
paratrue
para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo comofalse
, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso. -
O
invocationLabel
indica a etapa da caixa de diálogo a partir da qual o hook de código é invocado.
O campo fulfillmentCodeHook
define as configurações do hook de código a ser executado para cumprir a intenção. Ele mapeia para o seguinte FulfillmentCodeHookSettingsobjeto:
"fulfillmentCodeHook": {
"active": boolean
,
"enabled": boolean
,
"fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object,
"postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object
}
-
Altere o campo
active
paratrue
para que o Amazon Lex V2 chame o hook de código nesse ponto da conversa. -
Altere o campo
enabled
paratrue
para o Amazon Lex V2 permitir que o hook de código seja executado normalmente. Se você marcá-lo comofalse
, o Amazon Lex V2 age como se o hook de código tivesse sido retornado com sucesso. -
Use o campo
fulfillmentUpdatesSpecification
para especificar as mensagens que aparecem para atualizar o usuário durante o cumprimento da intenção e o tempo associado a elas. -
Use o campo
postFulfillmentStatusSpecification
para especificar as mensagens e ações que ocorrem após o hook de código ser bem-sucedido, falhar ou atingir o tempo limite.
Você pode invocar o hook de código do Lambda nos seguintes pontos de uma conversa definindo os campos active
e enableCodeHookInvocation
/enabled
como true
:
Para invocar a função Lambda na resposta inicial após o reconhecimento da intenção, use codeHook
a estrutura no campo initialResponse
da CreateIntentoperação or. UpdateIntent O initialResponse
campo mapeia para o seguinte InitialResponseSettingobjeto:
"initialResponse": {
"codeHook": {
"active": boolean
,
"enableCodeHookInvocation": boolean
,
"invocationLabel": string
,
"postCodeHookSpecification": PostDialogCodeHookInvocationSpecification object,
},
"initialResponse": FulfillmentUpdatesSpecification object,
"nextStep": PostFulfillmentStatusSpecification object,
"conditional": ConditionalSpecification object
}
Para invocar a função Lambda depois de obter um valor de slot, use slotCaptureSetting
o campo dentro do campo valueElicitation
da operação ou. CreateSlotUpdateSlot O slotCaptureSetting
campo mapeia para o seguinte SlotCaptureSettingobjeto:
"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
}
-
Para invocar a função do Lambda depois que a elicitação do slot for bem-sucedida, use o campo
codeHook
. -
Para invocar a função do Lambda depois que a elicitação de slots falhar e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo
elicitationCodeHook
.
Para invocar a função Lambda ao confirmar uma intenção, use intentConfirmationSetting
o campo da operação ou. CreateIntentUpdateIntent O intentConfirmation
campo mapeia para o seguinte IntentConfirmationSettingobjeto:
"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
}
-
Para invocar a função do Lambda após o usuário confirmar a intenção e seus slots, use o campo
codeHook
. -
Para invocar a função do Lambda depois que o usuário negar a confirmação da intenção e o Amazon Lex V2 tentar novamente a elicitação de slots, use o campo
elicitationCodeHook
.
Para invocar a função Lambda para cumprir uma intenção, use fulfillmentCodeHook
o campo na CreateIntentoperação ou. UpdateIntent O fulfillmentCodeHook
campo mapeia para o seguinte FulfillmentCodeHookSettingsobjeto:
{
"active": boolean
,
"enabled": boolean
,
"fulfillmentUpdatesSpecification": FulfillmentUpdatesSpecification object,
"postFulfillmentStatusSpecification": PostFulfillmentStatusSpecification object
}
3. Depois de definir os estágios da conversa nos quais invocar a função do Lambda, use a operação BuildBotLocale
para reconstruir o bot a fim de testar a função.