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?
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
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos