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

PutIntent

Cria uma intenção ou substitui uma intenção existente.

Para definir a interação entre o usuário e seu bot, você usa uma ou mais intenções. Para um bot de pedidos de pizza, por exemplo, você criaria uma intenção OrderPizza.

Para criar uma intenção ou substituir uma intenção existente, você deve fornecer o seguinte:

  • Nome da intenção Por exemplo, OrderPizza.

  • Enunciados de amostra. Por exemplo, “Posso pedir uma pizza, por favor.” e “Quero pedir uma pizza”.

  • Informações a serem coletadas. Você especifica os tipos de slots para as informações que seu bot solicitará do usuário. Você pode especificar tipos de compartimentos padrão, como data ou hora, ou tipos de compartimentos personalizados, como o tamanho e a massa de uma pizza.

  • Como a intenção será atendida. Você pode fornecer uma função do Lambda ou configurar a intenção para retornar as informações da intenção ao aplicativo cliente. Se você usa uma função do Lambda, quando todas as informações de intenção estão disponíveis, o Amazon Lex invoca sua função do Lambda. Se você configurar sua intenção para retornar as informações de intenção para o aplicativo cliente.

Você pode especificar outras informações opcionais na solicitação, como:

  • Uma solicitação de confirmação para solicitar que o usuário confirme uma intenção. Por exemplo, “Devo pedir sua pizza?”

  • Uma declaração de conclusão a ser enviada ao usuário após o atendimento da intenção. Por exemplo, “Devo pedir sua pizza?”.

  • Um prompt de acompanhamento que solicita atividades adicionais ao usuário. Por exemplo, perguntar “Você quer pedir uma bebida com a sua pizza?”

Se você especificar um nome de intenção existente para atualizar a intenção, o Amazon Lex substituirá os valores na versão $LATEST da intenção pelos valores na solicitação. O Amazon Lex remove campos que você não fornece na solicitação. Se você não especificar os campos obrigatórios, o Amazon Lex lançará uma exceção. Quando você atualiza a versão $LATEST de uma intenção, o campo status de qualquer bot que usa a versão $LATEST da intenção é definido como. NOT_BUILT

Para ter mais informações, consulte Amazon Lex: como funciona.

Essa operação exige permissões para a ação lex:PutIntent.

Sintaxe da Solicitação

PUT /intents/name/versions/$LATEST HTTP/1.1 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ] }

Parâmetros da Solicitação de URI

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

name

O nome da intenção. O nome não é sensível a maiúsculas e minúsculas.

O nome não pode corresponder a um nome de intenção incorporado ou a um nome de intenção incorporado com “AMAZON.” removido. Por exemplo, como há uma intenção integrada chamada AMAZON.HelpIntent, você não pode criar uma intenção personalizada chamada HelpIntent.

Para obter uma lista de intenções integradas, consulte Intenções integradas padrão no Alexa Skills Kit.

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

Padrão: ^([A-Za-z]_?)+$

Exigido: Sim

Corpo da Solicitação

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

checksum

Identifica uma revisão específica da versão $LATEST.

Ao criar uma nova intenção, deixe o campo checksum em branco. Se você especificar uma soma de verificação, obterá uma exceção BadRequestException.

Quando quiser atualizar uma intenção, 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

conclusionStatement

A declaração que você deseja que o Amazon Lex transmita ao usuário após a intenção ser atendida com sucesso pela função do Lambda.

Esse elemento é relevante somente se você fornecer uma função do Lambda no fulfillmentActivity. Se você retornar a intenção ao aplicativo cliente, não poderá especificar esse elemento.

nota

Os followUpPrompt e conclusionStatement são mutuamente exclusivos. Você pode especificar apenas um.

Tipo: objeto Statement

Obrigatório: Não

confirmationPrompt

Solicita que o usuário confirme a intenção. Essa pergunta deve ter uma resposta afirmativa ou negativa.

O Amazon Lex usa esse prompt para garantir que o usuário reconheça que a intenção está pronta para ser atendida. Por exemplo, com a intenção OrderPizza, talvez você queira confirmar que o pedido está correto antes de fazer o pedido. Para outras finalidades, como intenções que simplesmente respondem às perguntas do usuário, talvez não seja necessário pedir confirmação ao usuário antes de fornecer as informações.

nota

Você deve fornecer tanto o rejectionStatement quanto o confirmationPrompt, ou nenhum.

Tipo: objeto Prompt

Obrigatório: Não

createVersion

Quando configurado para true, uma nova versão numerada da intenção é criada. Isso é o mesmo que chamar a operação CreateIntentVersion. Se você não especificar a createVersion, o valor padrão será false.

Tipo: booliano

Obrigatório: não

description

Uma descrição da intenção.

Tipo: String

Restrições de tamanho: tamanho mínimo 0. Tamanho máximo de 200.

Obrigatório: não

dialogCodeHook

Especifica uma função do Lambda do alias para invocar cada entrada do usuário. Você pode invocar essa função do Lambda para personalizar a interação do usuário.

Por exemplo, suponha que seu bot determine que o usuário é John. Sua função do Lambda pode recuperar as informações de John de um banco de dados de back-end e preencher previamente alguns dos valores. Por exemplo, se achar que John é intolerante ao glúten, você pode definir o intervalo de intenção correspondente, GlutenIntolerant, como verdadeiro. Você pode encontrar o número de telefone de John e definir o atributo de sessão correspondente.

Tipo: objeto CodeHook

Obrigatório: Não

followUpPrompt

O Amazon Lex usa esse prompt para solicitar atividades adicionais do usuário depois de atender uma intenção. Por exemplo, depois que a intenção OrderPizza for atendida, você pode solicitar que o usuário peça uma bebida.

A ação que o Amazon Lex executa depende da resposta do usuário, da seguinte forma:

  • Se o usuário disser “Sim”, ele responderá com o prompt de esclarecimento configurado para o bot.

  • Se o usuário disser “Sim” e continuar com um enunciado que aciona uma intenção, ele iniciará uma conversa sobre a intenção.

  • Se o usuário disser “Não”, ele responderá com a declaração de rejeição configurada para o prompt de acompanhamento.

  • Se ele não reconhecer o enunciado, ele repetirá o prompt de acompanhamento novamente.

O campo followUpPrompt e o campo conclusionStatement são mutuamente exclusivos. Você pode especificar apenas um.

Tipo: objeto FollowUpPrompt

Obrigatório: Não

fulfillmentActivity

Obrigatório. Descreve como a intenção é atendida. Por exemplo, depois que um usuário fornece todas as informações de um pedido de pizza, fulfillmentActivity define como o bot faz um pedido em uma pizzaria local.

Você pode configurar o Amazon Lex para retornar todas as informações de intenção ao aplicativo cliente ou direcioná-lo para invocar uma função do Lambda que possa processar a intenção (por exemplo, fazer um pedido em uma pizzaria).

Tipo: objeto FulfillmentActivity

Obrigatório: Não

inputContexts

Uma matriz de objetos InputContext que lista os contextos que devem estar ativos para que o Amazon Lex escolha a intenção em uma conversa com o usuário.

Tipo: matriz de InputContext objetos

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

Obrigatório: não

kendraConfiguration

Informações de configuração necessárias para usar a intenção AMAZON.KendraSearchIntentpara se conectar a um índice do Amazon Kendra. Para obter mais informações, consulte AMAZON. KendraSearchIntent.

Tipo: objeto KendraConfiguration

Obrigatório: Não

outputContexts

Uma matriz de objetos OutputContext que lista os contextos que a intenção ativa quando a intenção é atendida.

Tipo: matriz de objetos OutputContext

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

Obrigatório: não

parentIntentSignature

O identificador exclusivo da intenção integrada a ser usada como base para essa intenção. Para encontrar a assinatura de uma intenção, consulte Intenções integradas padrão no Alexa Skills Kit.

Tipo: String

Obrigatório: não

rejectionStatement

Quando o usuário responde “não” à pergunta definida em confirmationPrompt, o Amazon Lex responde com essa mensagem para confirmar que a intenção foi cancelada.

nota

Você deve fornecer tanto o rejectionStatement quanto o confirmationPrompt, ou nenhum.

Tipo: objeto Statement

Obrigatório: Não

sampleUtterances

Uma lista das declarações (strings) que um usuário pode fazer para sinalizar a intenção. Por exemplo, “Eu quero {PizzaSize} pizza”, “Pedir {Quantidade} {PizzaSize} pizzas”.

Em cada enunciado, o nome de um slot é colocado entre chaves.

Tipo: matriz de strings

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

Restrições de tamanho: tamanho mínimo 1. Comprimento máximo de 200.

Obrigatório: não

slots

Uma matriz de slots de intenção. Em runtime, o Amazon Lex extrai os valores de slot necessários do usuário usando prompts definidos nos slots. Para ter mais informações, consulte Amazon Lex: como funciona.

Tipo: matriz de objetos Slot

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

Obrigatório: Não

Sintaxe da Resposta

HTTP/1.1 200 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createdDate": number, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "lastUpdatedDate": number, "name": "string", "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ], "version": "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.

checksum

Soma de verificação da versão $LATEST de intenção criada ou atualizada.

Tipo: String

conclusionStatement

Depois que a função do Lambda especificada no elemento fulfillmentActivity atende a intenção, o Amazon Lex transmite essa declaração ao usuário.

Tipo: objeto Statement

confirmationPrompt

Se definido na intenção, o Amazon Lex solicita que o usuário confirme a intenção antes de atendê-la.

Tipo: objeto Prompt

createdDate

A data em que a intenção foi criada.

Tipo: Timestamp

createVersion

True se uma nova versão da intenção 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 da intenção.

Tipo: String

Restrições de tamanho: tamanho mínimo 0. Tamanho máximo de 200.

dialogCodeHook

Se definido na intenção, o Amazon Lex invoca essa função do Lambda para cada entrada do usuário.

Tipo: objeto CodeHook

followUpPrompt

Se definido na intenção, o Amazon Lex usa esse prompt para solicitar atividades adicionais do usuário depois que a intenção for atendida.

Tipo: objeto FollowUpPrompt

fulfillmentActivity

Se definido na intenção, o Amazon Lex invoca essa função do Lambda para cumprir a intenção depois que o usuário fornece todas as informações exigidas pela intenção.

Tipo: objeto FulfillmentActivity

inputContexts

Uma matriz de objetos InputContext que lista os contextos que devem estar ativos para que o Amazon Lex escolha a intenção em uma conversa com o usuário.

Tipo: matriz de InputContext objetos

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

kendraConfiguration

Informações de configuração, se houver, necessárias para se conectar a um índice do Amazon Kendra e usar na intenção AMAZON.KendraSearchIntent.

Tipo: objeto KendraConfiguration

lastUpdatedDate

A data em que a intenção foi atualizada. Quando você cria um atributo, a data de criação e a data da última atualização são as mesmas.

Tipo: Timestamp

name

O nome da intenção.

Tipo: String

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

Padrão: ^([A-Za-z]_?)+$

outputContexts

Uma matriz de objetos OutputContext que lista os contextos que a intenção ativa quando a intenção é atendida.

Tipo: matriz de objetos OutputContext

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

parentIntentSignature

Um identificador exclusivo da intenção integrada na qual essa intenção se baseia.

Tipo: string

rejectionStatement

Quando o usuário responde “não” à pergunta definida em confirmationPrompt, o Amazon Lex responde com essa mensagem para confirmar que a intenção foi cancelada.

Tipo: objeto Statement

sampleUtterances

Uma matriz de exemplos de declarações que são configuradas para a intenção.

Tipo: matriz de strings

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

Restrições de tamanho: tamanho mínimo 1. Comprimento máximo de 200.

slots

Uma matriz de slots de intenção configurados para a intenção.

Tipo: matriz de objetos Slot

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

version

A versão da intenção. Para uma nova intenção, 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]+

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: