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

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 campo valueElicitationPrompt 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 slot CrustType. Você especifica o campo valueElicitationPrompt ao criar o slot CrustType.

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ção BadRequestException.

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 campo checksum ou se a soma de verificação não corresponder à versão $LATEST, você receberá uma exceção PreconditionFailedException.

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 ou false no childDirected campo. Ao especificar true no campo childDirected, 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 especificar false no campo childDirected, 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 campo childDirected 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 campo abortStatement.

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 tipo ElicitIntent 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ção CreateBotVersion. Se createVersion 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. Se detectSentiment 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 como true, você pode usar o parâmetro nluIntentConfidenceThreshold 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 como true, seu bot terá acesso a melhorias de precisão.

As regiões nas quais você pode definir o parâmetro enableModelImprovements como false 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 como true por padrão. Nessas regiões e localidades, definir o parâmetro como false gera uma exceção ValidationException.

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ção PutBot, 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.FallbackIntentAMAZON.KendraSearchIntent,, ou ambos ao retornar intenções alternativas em uma resposta PostContent. PostText AMAZON.FallbackIntente só AMAZON.KendraSearchIntent são inseridos se estiverem configurados para o bot.

Você deve definir o parâmetro enableModelImprovements como true 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 como true 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ção PostText 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 como BUILD, o Amazon Lex criará o bot para que ele possa ser executado. Se você definir o elemento como SAVE, 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

tags

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ção TagResource.

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 ou false no childDirected campo. Ao especificar true no campo childDirected, 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 especificar false no campo childDirected, 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 campo childDirected 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 campo createVersion não tiver sido especificado na solicitação, o campo createVersion 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 campo detectSentiment não tiver sido especificado na solicitação, o campo detectSentiment 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 for FAILED, 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 oAMAZON.FallbackIntent,AMAZON.KendraSearchIntent, ou ambos ao retornar intenções alternativas em uma resposta PostContent. PostText AMAZON.FallbackIntentserá inserido se a pontuação de confiança para todas as intenções estiver abaixo desse valor. AMAZON.KendraSearchIntentsó é 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 como BUILD, o Amazon Lex define o elemento de resposta status como BUILDING.

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 como FAILED. O Amazon Lex retorna o motivo da falha no elemento de resposta failureReason.

Quando você define processBehavior como SAVE, o Amazon Lex define o código de status como NOT 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

tags

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: