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á.
PutBot
Cria um bot de conversa do Amazon Lex ou substitui um bot existente. Ao criar ou atualizar um bot, você só precisa especificar um nome, uma localidade e se o bot é direcionado a crianças menores de 13 anos. Você pode usar isso para adicionar intenções posteriormente ou para remover intenções de um bot existente. Quando você cria um bot com o mínimo de informações, o bot é criado ou atualizado, mas o Amazon Lex retorna a resposta
FAILED
. Você pode criar o bot depois de adicionar uma ou mais intenções. Para obter mais informações sobre o Amazon Lex, consulte o Amazon Lex: como funciona.
Se você especificar o nome de um bot existente, os campos na solicitação substituirão os valores existentes na versão $LATEST
do bot. O Amazon Lex remove todos os campos para os quais você não fornece valores na solicitação, exceto os campos idleTTLInSeconds
e privacySettings
, que são definidos com seus valores padrão. Se você não especificar valores para os campos obrigatórios, o Amazon Lex lançará uma exceção.
Essa operação exige permissões para a ação lex:PutBot
. Para ter mais informações, consulte Gerenciamento de identidade e acesso para o Amazon Lex.
Sintaxe da Solicitação
PUT /bots/name
/versions/$LATEST HTTP/1.1
Content-type: application/json
{
"abortStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"checksum": "string
",
"childDirected": boolean
,
"clarificationPrompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"createVersion": boolean
,
"description": "string
",
"detectSentiment": boolean
,
"enableModelImprovements": boolean
,
"idleSessionTTLInSeconds": number
,
"intents": [
{
"intentName": "string
",
"intentVersion": "string
"
}
],
"locale": "string
",
"nluIntentConfidenceThreshold": number
,
"processBehavior": "string
",
"tags": [
{
"key": "string
",
"value": "string
"
}
],
"voiceId": "string
"
}
Parâmetros da Solicitação de URI
A solicitação usa os seguintes parâmetros de URI:
- name
-
O nome do bot. O nome não é sensível a maiúsculas e minúsculas.
Restrições de tamanho: tamanho mínimo 2. Tamanho máximo de 50.
Padrão:
^([A-Za-z]_?)+$
Exigido: Sim
Corpo da Solicitação
A solicitação aceita os dados a seguir no formato JSON.
- abortStatement
-
Quando o Amazon Lex não consegue entender a entrada do usuário no contexto, ele tenta extrair as informações algumas vezes. Depois disso, o Amazon Lex envia a mensagem definida no
abortStatement
para o usuário e, em seguida, cancela a conversa. Para definir o número de novas tentativas, use o campovalueElicitationPrompt
para o tipo de slot.Por exemplo, em um bot de pedidos de pizza, o Amazon Lex pode perguntar a um usuário “Que tipo de massa você quer?” Se a resposta do usuário não for uma das esperadas (por exemplo, “massa fina”, “prato fundo” etc.), o Amazon Lex tentará obter uma resposta correta mais algumas vezes.
Por exemplo, em um aplicativo de pedidos de pizza,
OrderPizza
pode ser uma das intenções. Essa intenção pode exigir o slotCrustType
. Você especifica o campovalueElicitationPrompt
ao criar o slotCrustType
.Se você tiver definido uma intenção de fallback, a declaração de cancelamento não será enviada ao usuário; em vez disso, a intenção de fallback será usada. Para obter mais informações, consulte AMAZON. FallbackIntent.
Tipo: objeto Statement
Obrigatório: Não
- checksum
-
Identifica uma revisão específica da versão
$LATEST
.Ao criar um novo bot, deixe o campo
checksum
em branco. Se você especificar uma soma de verificação, obterá uma exceçãoBadRequestException
.Quando quiser atualizar um bot, defina o campo
checksum
como a soma de verificação da revisão mais recente da versão$LATEST
. Se você não especificar o campochecksum
ou se a soma de verificação não corresponder à versão$LATEST
, você receberá uma exceçãoPreconditionFailedException
.Tipo: String
Obrigatório: não
- childDirected
-
Para cada bot do Amazon Lex criado com o Serviço de criação de modelo do Amazon Lex, você deve especificar se o uso do Amazon Lex está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à Lei de Proteção à Privacidade Online Infantil (COPPA), especificando
true
oufalse
nochildDirected
campo. Ao especificartrue
no campochildDirected
, você confirma que seu uso do Amazon Lex está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à COPPA. Ao especificarfalse
no campochildDirected
, você confirma que seu uso do Amazon Lex não está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à COPPA. Você não pode especificar um valor padrão para o campochildDirected
que não reflita com precisão se o uso do Amazon Lex está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à COPPA.Se o uso do Amazon Lex estiver relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos, você deverá obter qualquer consentimento parental verificável exigido pela COPPA. Para obter informações sobre o uso do Amazon Lex em conexão com sites, programas ou outros aplicativos direcionados, total ou parcialmente, a crianças menores de 13 anos, consulte as perguntas frequentes do Amazon Lex
. Tipo: booliano
Obrigatório: Sim
- clarificationPrompt
-
Quando o Amazon Lex não entende a intenção do usuário, ele usa essa mensagem para obter esclarecimentos. Para especificar quantas vezes o Amazon Lex deve repetir a solicitação de esclarecimento, use o campo
maxAttempts
. Se o Amazon Lex ainda não entender, ele enviará a mensagem no campoabortStatement
.Ao criar uma solicitação de esclarecimento, certifique-se de que ela sugira a resposta correta do usuário. Por exemplo, para um bot que pede pizza e bebidas, você pode criar esta solicitação de esclarecimento: “O que você gostaria de fazer? Você pode dizer "Pedir uma bebida" ou "Pedir uma pizza".
Se você tiver definido uma intenção de fallback, ela será invocada se o prompt de esclarecimento for repetido o número de vezes definido no campo.
maxAttempts
Para obter mais informações, consulte AMAZON. FallbackIntent.Se você não definir um prompt de esclarecimento, no runtime, o Amazon Lex retornará uma exceção de 400 solicitações inválidas em três casos:
-
Prompt de acompanhamento - Quando o usuário responde a um prompt de acompanhamento, mas não fornece uma intenção. Por exemplo, em resposta a um prompt de acompanhamento que diz “Você gostaria de mais alguma coisa hoje?” O usuário diz: “Sim”. Como o Amazon Lex não tem um prompt de esclarecimento para obter uma intenção do usuário, ele retorna uma exceção 400 Solicitação inválida.
-
Função do Lambda - Ao usar uma função do Lambda, você retorna um tipo de diálogo
ElicitIntent
. Como o Amazon Lex não tem um prompt de esclarecimento para obter uma intenção do usuário, ele retorna uma exceção 400 Solicitação inválida. -
PutSession operação - Ao usar a
PutSession
operação, você envia um tipoElicitIntent
de diálogo. Como o Amazon Lex não tem um prompt de esclarecimento para obter uma intenção do usuário, ele retorna uma exceção 400 Solicitação inválida.
Tipo: objeto Prompt
Obrigatório: Não
-
- createVersion
-
Quando configurado para
true
, uma nova versão numerada do bot é criada. Isso é o mesmo que chamar a operaçãoCreateBotVersion
. SecreateVersion
não for especificado, o valor padrão seráfalse
.Tipo: booliano
Obrigatório: não
- description
-
Uma descrição do bot.
Tipo: String
Restrições de tamanho: tamanho mínimo 0. Tamanho máximo de 200.
Obrigatório: não
- detectSentiment
-
Quando configurado para o usuário
true
, as declarações do usuário são enviadas ao Amazon Comprehend para análise de sentimento. SedetectSentiment
não for especificado, o valor padrão seráfalse
.Tipo: booliano
Obrigatório: não
- enableModelImprovements
-
Defina como
true
para permitir o acesso a melhorias na compreensão da linguagem natural.Ao definir o parâmetro
enableModelImprovements
comotrue
, você pode usar o parâmetronluIntentConfidenceThreshold
para configurar pontuações de confiança. Para obter mais informações, consulte Pontuações de confiança.Você só pode definir o parâmetro
enableModelImprovements
em determinadas regiões. Se você definir o parâmetro comotrue
, seu bot terá acesso a melhorias de precisão.As regiões nas quais você pode definir o parâmetro
enableModelImprovements
comofalse
a para a localidade en-US:-
Leste dos EUA (Norte da Virgínia) (us-east-1)
-
Oeste dos EUA (Oregon) (us-west-2)
-
Ásia-Pacífico (Sydney) (ap-southeast-2)
-
Europa (Irlanda) (eu-west-1)
Em outras regiões e localidades, o parâmetro
enableModelImprovements
é definido comotrue
por padrão. Nessas regiões e localidades, definir o parâmetro comofalse
gera uma exceçãoValidationException
.Tipo: booliano
Obrigatório: não
-
- idleSessionTTLInSeconds
-
O tempo máximo em segundos que o Amazon Lex retém os dados coletados em uma conversa.
Uma sessão de interação do usuário permanecerá ativa pelo tempo especificado. Se nenhuma conversa ocorrer durante esse período, a sessão expirará, e o Amazon Lex excluirá todos os dados fornecidos antes do tempo limite.
Por exemplo, suponha que um usuário escolha a OrderPizza intenção, mas se distraia na metade do processo de fazer um pedido. Se o usuário não concluir o pedido dentro do prazo especificado, o Amazon Lex descartará as informações do slot coletadas e o usuário deverá começar de novo.
Se você não incluir o elemento
idleSessionTTLInSeconds
em uma solicitação da operaçãoPutBot
, o Amazon Lex usará o valor padrão. Isso também se aplica se a solicitação substituir um bot existente.O padrão é 300 segundos (5 minutos).
Tipo: inteiro
Faixa válida: valor mínimo de 60. Valor máximo de 86.400.
Obrigatório: não
- intents
-
Uma matriz de objetos
Intent
. Cada intenção representa um comando que um usuário pode expressar. Por exemplo, um bot de pedido de pizza pode apoiar uma OrderPizza intenção. Para ter mais informações, consulte Amazon Lex: como funciona.Tipo: matriz de objetos Intent
Obrigatório: não
- locale
-
Especifica a localidade de destino deste bot. Qualquer intenção usada no bot deve ser compatível com a localidade do bot.
O padrão é
en-US
.Tipo: String
Valores Válidos:
de-DE | en-AU | en-GB | en-IN | en-US | es-419 | es-ES | es-US | fr-FR | fr-CA | it-IT | ja-JP | ko-KR
Obrigatório: Sim
- nluIntentConfidenceThreshold
-
Determina o limite em que o Amazon Lex inserirá o
AMAZON.FallbackIntent
AMAZON.KendraSearchIntent
,, ou ambos ao retornar intenções alternativas em uma resposta PostContent. PostTextAMAZON.FallbackIntent
e sóAMAZON.KendraSearchIntent
são inseridos se estiverem configurados para o bot.Você deve definir o parâmetro
enableModelImprovements
comotrue
para usar pontuações de confiança nas seguintes regiões.-
Leste dos EUA (Norte da Virgínia) (us-east-1)
-
Oeste dos EUA (Oregon) (us-west-2)
-
Ásia-Pacífico (Sydney) (ap-southeast-2)
-
Europa (Irlanda) (eu-west-1)
Em outras regiões, o parâmetro
enableModelImprovements
é definido comotrue
por padrão.Por exemplo, suponha que um bot esteja configurado com o limite de confiança de 0,80 e o
AMAZON.FallbackIntent
. O Amazon Lex retorna três intenções alternativas com as seguintes pontuações de confiança: IntentA (0,70), IntentB (0,60), IntentC (0,50). A resposta da operaçãoPostText
seria:-
AMAZÔNIA. FallbackIntent
-
IntentA
-
IntentB
-
IntentC
Tipo: duplo
Intervalo válido: valor mínimo de 0. Valor máximo de 1.
Obrigatório: não
-
- processBehavior
-
Se você definir o elemento
processBehavior
comoBUILD
, o Amazon Lex criará o bot para que ele possa ser executado. Se você definir o elemento comoSAVE
, o Amazon Lex salva o bot, mas não o cria.Se você não especificar este valor, o valor padrão é
BUILD
.Tipo: String
Valores Válidos:
SAVE | BUILD
Obrigatório: não
-
Uma lista de tags a serem adicionadas ao bot. Você só pode adicionar tags ao criar um bot; não pode usar a operação
PutBot
para atualizar as tags em um bot. Para atualizar tags, use a operaçãoTagResource
.Tipo: matriz de objetos Tag
Membros da Matriz: número mínimo de 0 itens. Número máximo de 200 itens.
Obrigatório: não
- voiceId
-
O ID de voz do Amazon Polly que você quer que o Amazon Lex use para interações de voz com o usuário. A localidade configurada para a voz deve corresponder à localidade do bot. Para obter mais informações, consulte Vozes no Amazon Polly no Guia do desenvolvedor do Amazon Polly.
Tipo: String
Obrigatório: não
Sintaxe da Resposta
HTTP/1.1 200
Content-type: application/json
{
"abortStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"checksum": "string",
"childDirected": boolean,
"clarificationPrompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"createdDate": number,
"createVersion": boolean,
"description": "string",
"detectSentiment": boolean,
"enableModelImprovements": boolean,
"failureReason": "string",
"idleSessionTTLInSeconds": number,
"intents": [
{
"intentName": "string",
"intentVersion": "string"
}
],
"lastUpdatedDate": number,
"locale": "string",
"name": "string",
"nluIntentConfidenceThreshold": number,
"status": "string",
"tags": [
{
"key": "string",
"value": "string"
}
],
"version": "string",
"voiceId": "string"
}
Elementos de Resposta
Se a ação tiver êxito, o serviço enviará de volta uma resposta HTTP 200.
Os dados a seguir são retornados no formato JSON pelo serviço.
- abortStatement
-
A mensagem que o Amazon Lex usa para cancelar uma conversa. Para obter mais informações, consulte PutBot.
Tipo: objeto Statement
- checksum
-
Soma de verificação do bot que você criou.
Tipo: String
- childDirected
-
Para cada bot do Amazon Lex criado com o Serviço de criação de modelo do Amazon Lex, você deve especificar se o uso do Amazon Lex está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à Lei de Proteção à Privacidade Online Infantil (COPPA), especificando
true
oufalse
nochildDirected
campo. Ao especificartrue
no campochildDirected
, você confirma que seu uso do Amazon Lex está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à COPPA. Ao especificarfalse
no campochildDirected
, você confirma que seu uso do Amazon Lex não está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à COPPA. Você não pode especificar um valor padrão para o campochildDirected
que não reflita com precisão se o uso do Amazon Lex está relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos e sujeito à COPPA.Se o uso do Amazon Lex estiver relacionado a um site, programa ou outro aplicativo direcionado, total ou parcialmente, a crianças menores de 13 anos, você deverá obter qualquer consentimento parental verificável exigido pela COPPA. Para obter informações sobre o uso do Amazon Lex em conexão com sites, programas ou outros aplicativos direcionados, total ou parcialmente, a crianças menores de 13 anos, consulte as perguntas frequentes do Amazon Lex
. Tipo: booliano
- clarificationPrompt
-
Os prompts que o Amazon Lex usa quando não entende a intenção do usuário. Para ter mais informações, consulte PutBot.
Tipo: objeto Prompt
- createdDate
-
A data e a hora em que o bot foi criado.
Tipo: Timestamp
- createVersion
-
True
se uma nova versão do bot tiver sido criada. Se o campocreateVersion
não tiver sido especificado na solicitação, o campocreateVersion
será definido como falso na resposta.Tipo: booliano
- description
-
Uma descrição do bot.
Tipo: String
Restrições de tamanho: tamanho mínimo 0. Tamanho máximo de 200.
- detectSentiment
-
true
se o bot estiver configurado para enviar declarações do usuário ao Amazon Comprehend para análise de sentimento. Se o campodetectSentiment
não tiver sido especificado na solicitação, o campodetectSentiment
seráfalse
na resposta.Tipo: booliano
- enableModelImprovements
-
Indica se o bot usa melhorias de precisão.
true
indica que o bot está usando as melhorias, caso contrário, éfalse
.Tipo: booliano
- failureReason
-
Se
status
forFAILED
, o Amazon Lex fornece o motivo da falha na criação do bot.Tipo: String
- idleSessionTTLInSeconds
-
O tempo máximo que o Amazon Lex retém os dados coletados em uma conversa. Para ter mais informações, consulte PutBot.
Tipo: inteiro
Faixa válida: valor mínimo de 60. Valor máximo de 86.400.
- intents
-
Uma matriz de objetos
Intent
. Para ter mais informações, consulte PutBot.Tipo: matriz de objetos Intent
- lastUpdatedDate
-
A data em que o bot foi atualizado. Quando você cria um atributo, a data de criação e a data da última atualização são as mesmas.
Tipo: Timestamp
- locale
-
O local de destino deste bot.
Tipo: String
Valores Válidos:
de-DE | en-AU | en-GB | en-IN | en-US | es-419 | es-ES | es-US | fr-FR | fr-CA | it-IT | ja-JP | ko-KR
- name
-
O nome do bot.
Tipo: String
Restrições de tamanho: tamanho mínimo 2. Tamanho máximo de 50.
Padrão:
^([A-Za-z]_?)+$
- nluIntentConfidenceThreshold
-
A pontuação que determina onde o Amazon Lex insere o
AMAZON.FallbackIntent
,AMAZON.KendraSearchIntent
, ou ambos ao retornar intenções alternativas em uma resposta PostContent. PostTextAMAZON.FallbackIntent
será inserido se a pontuação de confiança para todas as intenções estiver abaixo desse valor.AMAZON.KendraSearchIntent
só é inserido se estiver configurado para o bot.Tipo: duplo
Intervalo válido: valor mínimo de 0. Valor máximo de 1.
- status
-
Ao enviar uma solicitação para criar um bot com
processBehavior
definido comoBUILD
, o Amazon Lex define o elemento de respostastatus
comoBUILDING
.No estado
READY_BASIC_TESTING
, você pode testar o bot com entradas do usuário que correspondem exatamente as declarações configuradas para as intenções e valores do bot nos tipos de slot.Se o Amazon Lex não puder criar o bot, ele define
status
comoFAILED
. O Amazon Lex retorna o motivo da falha no elemento de respostafailureReason
.Quando você define
processBehavior
comoSAVE
, o Amazon Lex define o código de status comoNOT BUILT
.Quando o bot está no estado
READY
, você pode testar e publicar o bot.Tipo: String
Valores Válidos:
BUILDING | READY | READY_BASIC_TESTING | FAILED | NOT_BUILT
-
Uma lista de tags associadas ao bot.
Tipo: matriz de objetos Tag
Membros da Matriz: número mínimo de 0 itens. Número máximo de 200 itens.
- version
-
A versão do bot. Para um novo bot, a versão é sempre
$LATEST
.Tipo: string
Restrições de tamanho: tamanho mínimo 1. Comprimento máximo de 64.
Padrão:
\$LATEST|[0-9]+
- voiceId
-
O ID de voz do Amazon Polly que o Amazon Lex usa para a interação de voz com o usuário. Para ter mais informações, consulte PutBot.
Tipo: string
Erros
- BadRequestException
-
A solicitação não está bem formada. Por exemplo, um valor é inválido ou um campo obrigatório está faltando. Verifique os valores dos campos e tente novamente.
Código de Status HTTP: 400
- ConflictException
-
Houve um conflito ao processar a solicitação. Tente sua solicitação novamente.
Código de Status HTTP: 409
- InternalFailureException
-
Ocorreu um erro interno do Amazon Lex. Tente sua solicitação novamente.
Código de Status HTTP: 500
- LimitExceededException
-
A solicitação excedeu um limite. Tente sua solicitação novamente.
Código de Status HTTP: 429
- PreconditionFailedException
-
A soma de verificação do atributo que você está tentando alterar não corresponde à soma de verificação na solicitação. Verifique a soma de verificação e tente novamente.
Código de status HTTP: 412
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: