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á.
Exercício 2: Adicionar um novo enunciado (AWS CLI)
Para melhorar o modelo de Machine Learning que o usa para reconhecer solicitações dos usuários, adicione outro enunciado de exemplo ao bot.
A adição de um novo enunciado é um processo de quatro etapas.
Para executar os comandos neste exercício, você precisa saber em que região os comandos serão executados. Para obter uma lista de regiões, consulte Cotas de criação de modelos .
A resposta da operação GetIntent
contém um campo chamado checksum
que identifica uma revisão específica da intenção. Você deve fornecer o valor de soma de verificação quando usa a operação PutIntent para atualizar uma intenção. Se não fizer isso, você receberá a seguinte mensagem de erro:
An error occurred (PreconditionFailedException) when calling the PutIntent operation: Intentintent name
already exists. If you are trying to updateintent name
you must specify the checksum.
nota
O exemplo da AWS CLI a seguir está formatado para Unix, Linux e macOS. Para Windows, altere "\$LATEST"
para $LATEST
e substitua o caractere de continuação de barra invertida (\) no final de cada linha por um circunflexo (^).
Para atualizar a intenção OrderFlowers
(AWS CLI)
-
Na , obtenha a intenção do . O Amazon Lex envia a saída para um arquivo chamado
OrderFlowers-V2.json.
aws lex-models get-intent \ --region
region
\ --name OrderFlowers \ --intent-version "\$LATEST" > OrderFlowers-V2.json -
Em um editor de texto, abra
OrderFlowers-V2.json
.-
Encontre e exclua os campos
createdDate
,lastUpdatedDate
eversion
. -
Adicione o seguinte ao campo
sampleUtterances
:I want to order flowers
-
Salve o arquivo.
-
-
Envie a intenção atualizada ao &LEX; com o seguinte comando:
aws lex-models put-intent \ --region
region
\ --name OrderFlowers \ --cli-input-json file://OrderFlowers-V2.json&LEX; envia a seguinte resposta:
{ "confirmationPrompt": { "maxAttempts": 2, "messages": [ { "content": "Okay, your {FlowerType} will be ready for pickup by {PickupTime} on {PickupDate}. Does this sound okay?", "contentType": "PlainText" } ] }, "name": "OrderFlowers", "checksum": "
checksum
", "version": "$LATEST", "rejectionStatement": { "messages": [ { "content": "Okay, I will not place your order.", "contentType": "PlainText" } ] }, "createdDate":timestamp
, "lastUpdatedDate":timestamp
, "sampleUtterances": [ "I would like to pick up flowers", "I would like to order some flowers", "I want to order flowers" ], "slots": [ { "slotType": "AMAZON.TIME", "name": "PickupTime", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "Pick up the {FlowerType} at what time on {PickupDate}?", "contentType": "PlainText" } ] }, "priority": 3, "description": "The time to pick up the flowers" }, { "slotType": "FlowerTypes", "name": "FlowerType", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "What type of flowers would you like to order?", "contentType": "PlainText" } ] }, "priority": 1, "slotTypeVersion": "$LATEST", "sampleUtterances": [ "I would like to order {FlowerType}" ], "description": "The type of flowers to pick up" }, { "slotType": "AMAZON.DATE", "name": "PickupDate", "slotConstraint": "Required", "valueElicitationPrompt": { "maxAttempts": 2, "messages": [ { "content": "What day do you want the {FlowerType} to be picked up?", "contentType": "PlainText" } ] }, "priority": 2, "description": "The date to pick up the flowers" } ], "fulfillmentActivity": { "type": "ReturnIntent" }, "description": "Intent to order a bouquet of flowers for pick up" }
Agora que você atualizou a intenção, recrie qualquer bot que a utilize.
Para recriar o bot OrderFlowersBot
(AWS CLI)
-
Na AWS CLI, obtenha a definição do bot
OrderFlowersBot
e salve-a em um arquivo com o seguinte comando:aws lex-models get-bot \ --region
region
\ --name OrderFlowersBot \ --version-or-alias "\$LATEST" > OrderFlowersBot-V2.json -
Em um editor de texto, abra
OrderFlowersBot-V2.json
. Remova os camposcreatedDate
,lastUpdatedDate
,status
eversion
. -
Em um editor de texto, adicione a seguinte linha à definição do bot:
"processBehavior": "BUILD",
-
Na AWS CLI, crie uma nova revisão do bot executando o seguinte comando para:
aws lex-models put-bot \ --region
region
\ --name OrderFlowersBot \ --cli-input-json file://OrderFlowersBot-V2.jsonA resposta do servidor é:
{ "status": "BUILDING", "intents": [ { "intentVersion": "$LATEST", "intentName": "OrderFlowers" } ], "name": "OrderFlowersBot", "locale": "en-US", "checksum": "
checksum
", "abortStatement": { "messages": [ { "content": "Sorry, I'm not able to assist at this time", "contentType": "PlainText" } ] }, "version": "$LATEST", "lastUpdatedDate":timestamp
, "createdDate":timestamp
"clarificationPrompt": { "maxAttempts": 2, "messages": [ { "content": "I didn't understand you, what would you like to do?", "contentType": "PlainText" } ] }, "voiceId": "Salli", "childDirected": false, "idleSessionTTLInSeconds": 600, "description": "Bot to order flowers on the behalf of a user" }
Próxima etapa
Exercício 3: Adicione uma função do Lambda