Estruturas comuns em uma função do AWS Lambda para - 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 função do AWS Lambda para

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, 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 determina ser relevante para o valor do slot.

  • interpretedValue: o valor que o Amazon Lex determina para o slot, de acordo com a entrada do usuário.

  • resolvedValues: uma lista de valores que o Amazon Lex 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 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 que o contexto permanece ativo.

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

Mapa de pares de chaves/valores que representam as informações de contexto específicas da sessão. Para ter mais informações, consulte Definição de atributos de sessão para seu bot 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 o type da dialogAction for ElicitSlot. Para ter 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 obtido do usuário, se type da dialogAction for 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.