Como usar uma função do Lambda de inicialização/validação ou cumprimento para alterar o fluxo de diálogo do meu bot do Amazon Lex?

3 minuto de leitura
0

Quero usar uma função de inicialização/validação ou cumprimento do AWS Lambda para alterar o fluxo de diálogo do meu bot do Amazon Lex.

Resolução

Observação: o exemplo neste artigo usa a versão 2 do console do Amazon Lex. Se você usar a versão 1, escolha Mudar para o novo console Lex v2 no painel de navegação.

A sintaxe de resposta do Lambda especifica o formato esperado pelo Amazon Lex para a resposta da função do Lambda. Certifique-se de incluir os campos obrigatórios na resposta.

Use o tipo ElicitSlot para alterar o fluxo de diálogo

Para usar o tipo ElicitSlot para alterar o fluxo de diálogo, passe a resposta do hook do código do Lambda no seguinte formato:

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

Depois de retornar a resposta, o Amazon Lex gera um slot chamado slot-name-to-elicit que pertence à intenção intent-name-to-elicit.

Por exemplo, você tem uma intenção CreateUser com um slot que solicita um nome de usuário. Use uma função do Lambda para verificar se o nome de usuário já existe. Se o nome de usuário existir, elicite o slot username novamente para a mesma intenção.

Usar o tipo ElicitIntent para alterar o fluxo de diálogo

Para usar o tipo ElicitIntent para alterar o de diálogo, passe a resposta do hook do código do Lambda no seguinte formato:

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

Depois que o Amazon Lex retornar a resposta, o usuário verá a mensagem especificada no espaço reservado da mensagem. A próxima entrada do usuário é considerada uma declaração de intenção e invoca a intenção com maior pontuação de nluConfidence.

Por exemplo, se o seu bot cumprir uma intenção para o seu usuário, coloque esse bot em um estado Listen. O usuário pode então fornecer outra expressão para invocar outra intenção.

Usar o tipo Delegate para alterar o fluxo de diálogo

Você pode usar o tipo Delegate para alterar o início de uma intenção ao especificar a nova intenção. Para usar o tipo Delegate, passe a resposta do hook do código do Lambda, no seguinte formato:

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

Por exemplo, seu bot tem intenções A, B e C. Se o usuário fornecer uma resposta a um slot na intenção A, a função do Lambda verificará a entrada do usuário. Em seguida, essa função invoca a intenção B ou C.

Informações relacionadas

amazon-lex-v2-dialogation no site do GitHub

AWS OFICIAL
AWS OFICIALAtualizada há 9 meses