PutSession - Amazon Lex V1

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

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

PutSession

Cria uma nova sessão ou modifica uma sessão existente com um bot do Amazon Lex. Use essa operação para permitir que seu aplicativo defina o estado do bot.

Para obter mais informações, consulte Gerenciamento de sessões.

Sintaxe da Solicitação

POST /bot/botName/alias/botAlias/user/userId/session HTTP/1.1 Accept: accept Content-type: application/json { "activeContexts": [ { "name": "string", "parameters": { "string" : "string" }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } } ], "dialogAction": { "fulfillmentState": "string", "intentName": "string", "message": "string", "messageFormat": "string", "slots": { "string" : "string" }, "slotToElicit": "string", "type": "string" }, "recentIntentSummaryView": [ { "checkpointLabel": "string", "confirmationStatus": "string", "dialogActionType": "string", "fulfillmentState": "string", "intentName": "string", "slots": { "string" : "string" }, "slotToElicit": "string" } ], "sessionAttributes": { "string" : "string" } }

Parâmetros da Solicitação de URI

A solicitação usa os seguintes parâmetros de URI:

accept

A mensagem que o Amazon Lex retorna na resposta pode ser texto ou fala dependendo do valor deste campo.

  • Se o valor for text/plain; charset=utf-8, o Amazon Lex retornará o texto na resposta.

  • Se o valor começar com audio/, o Amazon Lex retornará a fala na resposta. O Amazon Lex usa o Amazon Polly para gerar a fala na configuração que você especificar. Por exemplo, se você especificar audio/mpeg como valor, o Amazon Lex retornará a fala no formato MPEG.

  • Se o valor for audio/pcm, a fala será retornada como audio/pcm no formato little-endian de 16 bits.

  • Os valores aceitos são os seguintes:

    • audio/mpeg

    • audio/ogg

    • audio/pcm

    • audio/* (o padrão é mpeg)

    • text/plain; charset=utf-8

botAlias

O alias em uso para o bot que contém os dados da sessão.

Obrigatório: Sim

botName

O nome do bot que contém os dados da sessão.

Obrigatório: Sim

userId

O ID do usuário do aplicativo cliente. O Amazon Lex usa isso para identificar a conversa de um usuário com seu bot.

Restrições de tamanho: tamanho mínimo 2. Comprimento máximo de 100.

Padrão: [0-9a-zA-Z._:-]+

Exigido: Sim

Corpo da Solicitação

A solicitação aceita os dados a seguir no formato JSON.

activeContexts

Uma lista de contextos ativos para a solicitação. Um contexto pode ser ativado quando uma intenção anterior é atendida ou incluindo o contexto na solicitação,

Se você não especificar uma lista de contextos, o Amazon Lex usará a lista atual de contextos para a sessão. Se você especificar uma lista vazia, todos os contextos da sessão serão apagados.

Tipo: matriz de objetos ActiveContext

Membros da Matriz: número mínimo de 0 itens. Número máximo de 20 itens.

Obrigatório: não

dialogAction

Define a próxima ação que o bot deve realizar para atender a conversa.

Tipo: objeto DialogAction

Obrigatório: Não

recentIntentSummaryView

Um resumo das intenções recentes do bot. Você pode usar a visualização de resumo de intenções para definir um rótulo de ponto de verificação em uma intenção e modificar os atributos das intenções. Você também pode usá-la para remover ou adicionar objetos de resumo de intenção à lista.

A intenção que você modifica ou adiciona à lista deve fazer sentido para o bot. Por exemplo, o nome da intenção deve ser válida para o bot. Você deve fornecer valores válidos para:

  • intentName

  • nomes de slot

  • slotToElict

Se você enviar o parâmetro recentIntentSummaryView em uma solicitação PutSession, o conteúdo da nova visualização de resumo substituirá a antiga visualização de resumo. Por exemplo, se uma solicitação GetSession retornar três intenções na exibição de resumo e você chamar PutSession com uma intenção na visualização de resumo, a próxima chamada GetSession retornará apenas uma intenção.

Tipo: matriz de objetos IntentSummary

Membros da Matriz: número mínimo de 0 itens. Número máximo de 3 itens.

Obrigatório: não

sessionAttributes

Mapa de pares de chaves/valores que representam as informações de contexto específicas da sessão. Ele contém informações do aplicativo passadas entre o Amazon Lex e um aplicativo cliente.

Tipo: mapa de string para string

Obrigatório: Não

Sintaxe da Resposta

HTTP/1.1 200 Content-Type: contentType x-amz-lex-intent-name: intentName x-amz-lex-slots: slots x-amz-lex-session-attributes: sessionAttributes x-amz-lex-message: message x-amz-lex-encoded-message: encodedMessage x-amz-lex-message-format: messageFormat x-amz-lex-dialog-state: dialogState x-amz-lex-slot-to-elicit: slotToElicit x-amz-lex-session-id: sessionId x-amz-lex-active-contexts: activeContexts audioStream

Elementos de Resposta

Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 200.

A resposta retorna os cabeçalhos HTTP a seguir.

activeContexts

Uma lista de contextos ativos para a sessão.

contentType

Tipo de conteúdo conforme especificado no cabeçalho HTTP Accept na solicitação.

dialogState

  • ConfirmIntent - O Amazon Lex espera uma resposta “sim” ou “não” para confirmar a intenção antes de atendê-la.

  • ElicitIntent - O Amazon Lex quer obter a intenção do usuário.

  • ElicitSlot - O Amazon Lex espera o valor de um slot para a intenção atual.

  • Failed - Transmite que a conversa com o usuário falhou. Isso pode acontecer por vários motivos, incluindo o usuário não fornecer uma resposta adequada aos prompts do serviço ou a função do Lambda não atender a intenção.

  • Fulfilled - Transmite que a função do Lambda atendeu com sucesso a intenção.

  • ReadyForFulfillment - Transmite que o cliente deve atender à solicitação.

Valores Válidos: ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed

encodedMessage

A próxima mensagem que deve ser apresentada ao usuário.

O campo encodedMessage é codificado em base 64. Você deve decodificar o campo antes de poder usar o valor.

Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 1.366.

intentName

O nome da intenção atual.

message

Esse cabeçalho foi descontinuado.

A próxima mensagem que deve ser apresentada ao usuário.

Você só pode usar esse campo nas localidades de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR e it-IT. Em todas as outras localidades, o campo message é nulo. Em vez disso, use o campo encodedMessage.

Restrições de tamanho: o tamanho mínimo é 1. Tamanho máximo de 1.024.

messageFormat

O formato da mensagem de resposta. Um dos seguintes valores:

  • PlainText - A mensagem contém texto sem formatação UTF-8.

  • CustomPayload - A mensagem é um formato personalizado para o cliente.

  • SSML - A mensagem contém texto formatado para saída de voz.

  • Composite - A mensagem contém um objeto JSON de escape que contém uma ou mais mensagens dos grupos aos quais as mensagens foram atribuídas quando a intenção foi criada.

Valores Válidos: PlainText | CustomPayload | SSML | Composite

sessionAttributes

Mapa de pares de chaves/valores que representam as informações de contexto específicas da sessão.

sessionId

Um identificador exclusivo da sessão.

slots

Mapa de zero ou mais slots de intenção do Amazon Lex detectados na entrada do usuário durante a conversação.

O Amazon Lex cria uma lista de resolução que contém valores prováveis para um slot. O valor que ele retorna é determinado pelo valueSelectionStrategy selecionado quando o tipo de slot foi criado ou atualizado. Se valueSelectionStrategy for definido como ORIGINAL_VALUE, o valor fornecido pelo usuário será retornado, se o valor do usuário for semelhante ao valor do slot. Se valueSelectionStrategy estiver definido como TOP_RESOLUTION, o Amazon Lex retornará o primeiro valor na lista de resolução ou, se não houver lista de resolução, nulo. Se valueSelectionStrategy não for especificado, o padrão será ORIGINAL_VALUE.

slotToElicit

Se o dialogState for ElicitSlot, retornará o nome do slot para o qual o Amazon Lex está obtendo um valor.

A resposta retorna as informações a seguir como corpo HTTP.

audioStream

A versão em áudio da mensagem a ser transmitida ao usuário.

Erros

BadGatewayException

Ou o bot do Amazon Lex ainda está sendo construído ou um dos serviços dependentes (Amazon Polly, AWS Lambda) falhou com um erro interno de serviço.

Código de status HTTP: 502

BadRequestException

A validação da solicitação falhou, não há mensagem utilizável no contexto ou a compilação do bot falhou, ainda está em andamento ou contém alterações não criadas.

Código de Status HTTP: 400

ConflictException

Dois clientes estão usando a mesma conta da AWS, o bot do Amazon Lex e o mesmo ID de usuário.

Código de Status HTTP: 409

DependencyFailedException

Uma das dependências, como AWS Lambda ou Amazon Polly, gerou uma exceção. Por exemplo,

  • Se o Amazon Lex não tiver permissões suficientes para chamar uma função do Lambda.

  • Se uma função do Lambda levar mais de 30 segundos para ser executada.

  • Se uma função do Lambda de atendimento retornar uma ação Delegate de diálogo sem remover nenhum valor de slot.

Código de status HTTP: 424

InternalFailureException

Erro de serviço interno. Tente a chamada novamente.

Código de Status HTTP: 500

LimitExceededException

Excedeu um limite.

Código de Status HTTP: 429

NotAcceptableException

O cabeçalho de aceitação na solicitação não tem um valor válido.

Código de status HTTP: 406

NotFoundException

O atributo (como o bot Amazon Lex ou um alias) mencionado não foi encontrado.

Código de Status HTTP: 404

Consulte Também

Para obter mais informações sobre como usar essa API em um dos AWS SDKs específicos da linguagem, consulte o seguinte: