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á.
Modelo de programação
Um bot é o principal tipo de recurso no Amazon Lex. Os outros tipos de recursos no Amazon Lex; são intenção, tipo de slot, alias e associação de canal de bot.
Você cria um bot usando o console do Amazon Lex ou a API de criação de modelos. O console fornece uma interface gráfica de usuário que você usa para criar um bot pronto para produção para seu aplicativo. Se preferir, você pode usar a API de criação de modelos por meio do AWS CLI ou de seu próprio programa personalizado para criar um bot.
Depois de criar um bot, você o implanta em uma das plataformas compatíveis ou o integra em seu próprio aplicativo. Quando um usuário interage com o bot, o aplicativo cliente envia solicitações ao bot usando a API de runtime do Amazon Lex. Por exemplo, quando um usuário diz "Quero encomendar uma pizza", o cliente envia essa entrada do usuário ao Amazon Lex usando uma das operações da API de runtime. Os usuários podem fornecer entrada de voz ou texto.
Você também pode criar funções do Lambda; e usá-las em uma intenção. Use esses hooks de código de função do Lambda para executar atividades em runtime, como inicialização, validação da entrada do usuário e atendimento da intenção. As seções a seguir fornecem informações adicionais.
Tópicos
Operações de API de criação de modelo
Para criar programaticamente bots, intenções e tipos de slot, use a API de operações de criação de modelo. Você também pode usar a API de criação de modelo para gerenciar, atualizar e excluir os recursos para o seu bot. As operações de API de criação de modelo incluem:
-
PutBot, PutBotAlias, PutIntente PutSlotType para criar e atualizar bots, aliases de bot, intenções e tipos de slot, respectivamente.
-
CreateBotVersion, CreateIntentVersion e CreateSlotTypeVersion para criar e publicar versões de seus bots, intenções e tipos de slot, respectivamente.
-
GetBot e GetBots para obter um bot específico ou uma lista de bots que você criou, respectivamente.
-
GetIntent e GetIntents para obter uma intenção específica ou uma lista de intenções que você criou, respectivamente.
-
GetSlotType e GetSlotTypes para obter um tipo de slot específico ou uma lista de tipos de slot que você criou, respectivamente.
-
GetBuiltinIntent, GetBuiltinIntents e GetBuiltinSlotTypes para obter uma intenção integrada do Amazon Lex, uma lista de intenções integradas do Amazon Lex ou uma lista de tipos de slot integrado que você pode usar em seu bot, respectivamente.
-
GetBotChannelAssociation e GetBotChannelAssociations para obter uma associação entre seu bot e uma plataforma de mensagens ou uma lista de associações entre seu bot e plataformas de mensagens, respectivamente.
-
DeleteBot, DeleteBotAlias, DeleteBotChannelAssociation, DeleteIntent e DeleteSlotType para remover recursos desnecessários em sua conta.
Você pode usar a API de criação de modelo para criar ferramentas personalizadas a fim de gerenciar os recursos do Amazon Lex. Por exemplo, há um limite de 100 versões para bots, intenções e tipos de slot. Você pode usar a API de criação de modelo para criar uma ferramenta que exclui automaticamente versões antigas quando o bot se aproxima do limite.
Para garantir que apenas uma operação atualize um recurso por vez, o Amazon Lex usa somas de verificação. Quando usa uma operação de API Put
, PutBot, PutBotAlias PutIntent ou PutSlotType, para atualizar um recurso, você deve passar a soma de verificação atual do recurso na solicitação. Se duas ferramentas tentarem atualizar um recurso ao mesmo tempo, elas oferecem a mesma soma de verificação atual. A primeira solicitação a alcançar o Amazon Lex corresponde à soma de verificação atual do recurso. Quando a segunda solicitação chega, a soma de verificação é diferente. A segunda ferramenta recebe uma exceção PreconditionFailedException
e a atualização é encerrada.
As operações Get
, GetBot, GetIntent e GetSlotType, são eventualmente consistentes. Se você usar uma operação Get
imediatamente após criar ou modificar um recurso com uma das operações Put
, as alterações poderão não ser retornadas. Depois de uma operação Get
retornar a atualização mais recente, ela sempre retornará esse recurso atualizado até que o recurso seja modificado novamente. Você pode determinar se um recurso atualizado foi retornado ao analisar a soma de verificação.
Operações de API de runtime
Os aplicativos cliente usam as seguintes operações de API em runtime para se comunicar com o Amazon Lex:
-
PostContent - Usa entrada de texto ou fala e retorna informações de intenção e uma mensagem de texto ou fala para expressar ao usuário. No momento, o Amazon Lex é oferece suporte aos seguintes formatos de áudio:
Formatos de áudio de entrada – LPCM e Opus
Formatos de áudio de saída – MPEG, OGG e PCM
A operação
PostContent
oferece suporte a entrada de áudio em 8 kHz e 16 kHz. Os aplicativos em que o usuário final se comunica com o Amazon Lex por telefone, como uma central de atendimento automatizada, podem passar áudio 8 kHz diretamente. -
PostText - Usa texto como entrada e retorna informações de intenção e uma mensagem de texto para transmitir ao usuário.
Seu aplicativo cliente usa a API de runtime para chamar um determinado bot do Amazon Lex para processar declarações entrada de texto ou de fala do usuário. Por exemplo, suponha que um usuário diga "Quero pizza". O cliente envia essa entrada do usuário a um bot usando uma das operações da API de runtime do Amazon Lex. A partir da entrada do usuário, o Amazon Lex; reconhece que a solicitação do usuário destina-se à intenção OrderPizza
definida no bot. O Amazon Lex engaja o usuário em uma conversa para obter as informações necessárias, ou dados de slot, como tamanho da pizza, cobertura e número de pizzas. Depois que o usuário fornece todos os dados necessários do slot, o Amazon Lex invoca o hook de código da função do Lambda para atender à intenção ou retorna os dados da intenção para o cliente, dependendo de como a intenção está configurada.
Use a operação PostContent quando seu bot usa entrada de voz. Por exemplo, um aplicativo de call center automatizado pode enviar fala para um bot do Amazon Lex, e não para um atendente, para resolver indagações do cliente. Você pode usar o formato de áudio de 8 kHz para enviar áudio diretamente do telefone para o Amazon Lex.
A janela de teste no console do Amazon Lex usa a API PostContent para enviar solicitações de texto e de fala para o Amazon Lex. Use esta janela de teste nos exercícios Conceitos básicos do Amazon Lex.
Funções do Lambda como hooks de código
Você pode configurar seu bot do Amazon Lex para invocar uma função do Lambda como um hook de código. O hook de código pode servir para várias finalidades:
-
Personaliza a interação do usuário. Por exemplo, quando Joe pergunta pelas coberturas de pizza disponíveis, você pode usar o conhecimento anterior das opções de Joe para exibir um subconjunto de coberturas.
-
Valida a entrada do usuário. Suponha que Jen queira escolher flores depois do horário de funcionamento. Você pode validar o horário que Jen inseriu e enviar uma resposta adequada.
-
Atende à intenção do usuário. Depois de Joe fornecer todas as informações sobre seu pedido de pizza, o Amazon Lex pode invocar uma função do Lambda para fazer o pedido em uma pizzaria local.
Ao configurar uma intenção, você especifica funções do Lambda como hooks de código nos seguintes locais:
-
Hook de código de diálogo para inicialização e validação: essa função do Lambda é invocada em cada entrada do usuário, supondo que o Amazon Lex tenha entendido a intenção do usuário.
-
Hook de código de atendimento: essa função do Lambda;é invocada depois que o usuário fornece todos os dados de slot necessários para atender a intenção.
Você escolhe a intenção e define os hooks de código no console do Amazon Lex, conforme mostrado na captura de tela a seguir:

Você também pode definir hooks de código usando os campos dialogCodeHook
e fulfillmentActivity
na operação PutIntent.
Uma função do Lambda pode executar a inicialização, a validação e o atendimento. Os dados do evento que a função do Lambda recebe têm um campo que identifica o chamador como um hook de código de diálogo ou de atendimento. É possível usar essas informações para executar a parte adequada de seu código.
Você pode usar uma função do Lambda para criar um bot que pode navegar por diálogos complexos. Você usa o campo dialogAction
na resposta da função do Lambda para direcionar o Amazon Lex para executar ações específicas. Por exemplo, você pode usar a ação do diálogo ElicitSlot
para dizer ao Amazon Lex para solicitar ao usuário um valor de slot que não é necessário. Se você tiver um prompt de esclarecimento definido, poderá usar a ação de diálogo ElicitIntent
para obter uma nova intenção quando o usuário terminar de usar a anterior.
Para obter mais informações, consulte Uso de funções do Lambda.