Estruturas comuns em uma AWS Lambda função para o Amazon Lex V2 - Guia do desenvolvedor

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á.

Estruturas comuns em uma AWS Lambda função para o Amazon Lex V2

Na resposta do Lambda, há várias estruturas que se repetem. Detalhes sobre essas estruturas comuns são fornecidos nesta seção.

Intenção

"intent": { "confirmationState": "Confirmed | Denied | None", "name": string, "slots": { // see Slots for details about the structure }, "state": "Failed | Fulfilled | FulfillmentInProgress | InProgress | ReadyForFulfillment | Waiting", "kendraResponse": { // Only present when intent is KendraSearchIntent. For details, see // https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax } }

O campo intent é mapeado para um objeto com os seguintes campos:

Indica se o usuário confirmou os slots da intenção e se a intenção está pronta para ser atendida. Os seguintes valores são possíveis:

Confirmed: o usuário confirma que os valores do slot estão corretos.

Denied: o usuário indica que os valores do slot estão incorretos.

None: o usuário ainda não chegou ao estágio de confirmação.

O nome da intenção.

Informações sobre os slots necessários para cumprir a intenção. Consulte Slots para obter detalhes sobre a estrutura.

Indica o estado de cumprimento da intenção. Os seguintes valores são possíveis:

Failed: o bot falhou em cumprir a intenção.

Fulfilled: o bot concluiu o cumprimento da intenção.

FulfillmentInProgress: o bot está no meio do cumprimento da intenção.

InProgress: o bot está no meio da obtenção dos valores de slot necessários para cumprir a intenção.

ReadyForFulfillment: o bot obteve todos os valores do slot para a intenção e está pronto para cumpri-la.

Waiting: o bot está aguardando uma resposta do usuário (limitado a conversas de streaming).

Contém informações sobre os resultados da consulta de pesquisa do Kendra. Esse campo aparecerá somente se a intenção for KendraSearchIntent. Consulte a sintaxe de resposta na chamada de API de Consulta para Kendra Para mais informações.

Slots

O campo slots existe dentro de uma estrutura intent e é mapeado para uma estrutura cujas chaves são os nomes dos slots para essa intenção. Se o slot não for um slot de vários valores (consulte Usar vários valores em um slot para obter mais detalhes), ele será mapeado para uma estrutura com o formato a seguir. Observe que o shape é Scalar.

{ slot name: { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } } }

Se o slot for um slot de vários valores, o objeto para o qual ele é mapeado contém outro campo chamado values, que é mapeado para uma lista de estruturas, cada uma contendo informações sobre um slot que compõe o slot de vários valores. O formato de cada objeto na lista corresponde ao do objeto para o qual um slot normal é mapeado. Observe que o shape é List, mas o shape dos slots de componentes abaixo values é Scalar.

{ slot name: { "shape": "List", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }, "values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ] }

Os campos no objeto do slot estão descritos abaixo:

O formato do slot. Esse valor é List válido se houver vários valores no slot (consulte Usar vários valores em um slot para obter mais detalhes) e, caso contrário, é Scalar.

Um objeto contendo informações sobre o valor que o usuário forneceu para um slot e a interpretação do Amazon Lex V2, no seguinte formato:

{ "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }

Os campos são descritos abaixo:

  • OriginalValue — A parte da resposta do usuário à elicitação do slot que o Amazon Lex V2 determina ser relevante para o valor do slot.

  • InterpretedValue — O valor que o Amazon Lex V2 determina para o slot, de acordo com a entrada do usuário.

  • ResolvedValues — Uma lista de valores que o Amazon Lex V2 determina como possíveis resoluções para a entrada do usuário.

Uma lista de objetos contendo informações sobre os slots que compõem o slot de vários valores. O formato de cada objeto corresponde ao de um slot normal, com os campos shape e value descritos acima. values só aparece se o slot consistir em vários valores (consulte Usar vários valores em um slot para obter mais detalhes). O objeto JSON a seguir mostra dois slots de componentes:

"values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ]

Estado da sessão

O campo sessionState é mapeado para um objeto contendo informações sobre o estado da conversa com o usuário. Os campos reais que aparecem no objeto dependem do tipo de ação da caixa de diálogo. Consulte Campos necessários na resposta para obter os campos obrigatórios em uma resposta do Lambda. O formato do objeto sessionState é o seguinte:

"sessionState": { "activeContexts": [ { "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }, ... ], "sessionAttributes": { string: string, ... }, "runtimeHints": { "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }, "dialogAction": { "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Intenção for details about the structure }, "originatingRequestId": string }

Os campos são descritos abaixo:

Uma lista de objetos que contém informações sobre um contexto que um usuário está usando em uma sessão. Use contextos para facilitar e controlar o reconhecimento de intenções. Para mais informações sobre contextos, consulte Definição do contexto de intenção para seu bot do Lex V2. Cada objeto é formatado como segue:

{ "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }

Os campos são descritos abaixo:

  • name: o nome do contexto.

  • contextAttributes: um objeto que contém os nomes dos atributos do contexto e os valores para os quais eles são mapeados.

  • timeToLive— Um objeto que especifica por quanto tempo o contexto permanece ativo. Esse objeto pode conter um ou ambos os seguintes campos:

    • timeToLiveInSeconds— O número de segundos em que o contexto permanece ativo.

    • turnsToLive— O número de turnos em que o contexto permanece ativo.

Um mapa de key/value pares representando informações de contexto específicas da sessão. Para obter mais informações, consulte Definição de atributos de sessão para seu bot do Lex V2. O objeto é formatado da seguinte forma:

{ string: string, ... }

Fornece dicas sobre as frases que um cliente provavelmente usará em um slot para melhorar o reconhecimento de áudio. Os valores que você fornece nas dicas aumentam o reconhecimento de áudio desses valores em relação a palavras com sons semelhantes. O formato do objeto runtimeHints é o seguinte:

{ "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }

O campo slotHints é mapeado para um objeto cujos campos são os nomes das intenções no bot. Cada nome de intenção é mapeado para um objeto cujos campos são os nomes dos slots dessa intenção. Cada nome de slot é mapeado para uma estrutura com um único campo runtimeHintValues, que é uma lista de objetos. Cada objeto contém um campo phrase que é mapeado para uma dica.

Determina a próxima ação a ser tomada pelo Amazon Lex V2. O formato do objeto é o seguinte:

{ "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }

Os campos são descritos abaixo:

  • slotElicitationStyle— Determina como o Amazon Lex V2 interpreta a entrada de áudio do usuário, se for o type caso. dialogAction ElicitSlot Para obter mais informações, consulte Captura de valores de slots com estilos ortográficos durante a conversa. Os seguintes valores são possíveis:

    Default: o Amazon Lex V2 interpreta a entrada de áudio da maneira padrão para preencher um slot.

    SpellByLetter: o Amazon Lex V2 escuta a ortografia do valor do slot pelo usuário.

    SpellByWord: o Amazon Lex V2 escuta a ortografia do valor do slot pelo usuário usando palavras associadas a cada letra (por exemplo, “a como em avião”).

  • slotToElicit— Define o slot a ser extraído do usuário se o type for. dialogAction ElicitSlot

  • type: define a ação que o bot deve executar. Os seguintes valores são possíveis:

    Delegate: permite que o Amazon Lex V2 determine a próxima etapa.

    ElicitIntent: solicita que o cliente expresse uma intenção.

    ConfirmIntent: confirma os valores dos slots do cliente e se a intenção está pronta para ser cumprida.

    ElicitSlot: solicita que o cliente forneça um valor de slot para uma intenção.

    Close: encerra o processo de cumprimento da intenção.

Consulte Intenção para obter a estrutura do campo intent.

Um identificador exclusivo da solicitação. Esse campo é opcional para a resposta do Lambda.