Aviso de fim do suporte: em 15 de setembro de 2025, o suporte para o Amazon Lex V1 AWS será interrompido. Depois de 15 de setembro de 2025, você não poderá mais acessar o console do Amazon Lex V1 ou os recursos do Amazon Lex V1. Se você estiver usando o Amazon Lex V2, consulte o guia do Amazon Lex V2 em vez disso.
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ê especificaraudio/mpegcomo valor, o Amazon Lex retornará a fala no formato MPEG. -
Se o valor for
audio/pcm, a fala será retornada comoaudio/pcmno 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
recentIntentSummaryViewem uma solicitaçãoPutSession, o conteúdo da nova visualização de resumo substituirá a antiga visualização de resumo. Por exemplo, se uma solicitaçãoGetSessionretornar três intenções na exibição de resumo e você chamarPutSessioncom uma intenção na visualização de resumo, a próxima chamadaGetSessionretornará 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 key/value pares representando 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
Acceptna 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 campoencodedMessage.Restrições de comprimento: tamanho mínimo de 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 key/value pares representando 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
valueSelectionStrategyselecionado quando o tipo de slot foi criado ou atualizado. SevalueSelectionStrategyfor definido comoORIGINAL_VALUE, o valor fornecido pelo usuário será retornado, se o valor do usuário for semelhante ao valor de slot. SevalueSelectionStrategyestiver definido comoTOP_RESOLUTION, o Amazon Lex retornará o primeiro valor na lista de resolução ou, se não houver lista de resolução, nulo. SevalueSelectionStrategynão for especificado, o padrão seráORIGINAL_VALUE. - slotToElicit
-
Se o
dialogStateforElicitSlot, 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
Delegatede 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 recurso (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 uma das linguagens específicas AWS SDKs, consulte o seguinte: