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ê especificaraudio/mpeg
como valor, o Amazon Lex retornará a fala no formato MPEG. -
Se o valor for
audio/pcm
, a fala será retornada comoaudio/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çãoPutSession
, o conteúdo da nova visualização de resumo substituirá a antiga visualização de resumo. Por exemplo, se uma solicitaçãoGetSession
retornar três intenções na exibição de resumo e você chamarPutSession
com uma intenção na visualização de resumo, a próxima chamadaGetSession
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 campoencodedMessage
.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. SevalueSelectionStrategy
for definido comoORIGINAL_VALUE
, o valor fornecido pelo usuário será retornado, se o valor do usuário for semelhante ao valor do slot. SevalueSelectionStrategy
estiver 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. SevalueSelectionStrategy
não for especificado, o padrão seráORIGINAL_VALUE
. - slotToElicit
-
Se o
dialogState
forElicitSlot
, 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: