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á.
Tipo de slot de gramática
Com o tipo de slot de gramática, você pode criar sua própria gramática no formato XML de acordo com a especificação SRGS para coletar informações em uma conversa. O Amazon Lex V2 reconhece expressões que correspondem às regras especificadas na gramática. Você também pode fornecer regras de interpretação semântica usando tags ECMAScript nos arquivos de gramática. O Amazon Lex retorna propriedades definidas nas tags como valores resolvidos quando ocorre uma correspondência.
Só é possível criar tipos de slots de gramática nos idiomas inglês (Austrália), inglês (Reino Unido) e inglês (EUA).
Há duas partes em um tipo de slot de gramática. A primeira é a própria gramática escrita usando o formato de especificação SRGS. A gramática interpreta o enunciado do usuário. Se o enunciado for aceito pela gramática, ele será correspondido, caso contrário, será rejeitado. Se um enunciado for correspondido, ele será encaminhado para o script, se houver.
A segunda faz parte de um tipo de slot de gramática e é um script opcional escrito em ECMAScript que transforma a entrada nos valores resolvidos retornados pelo tipo de slot. Por exemplo, você pode usar um script para converter números falados em dígitos. As instruções ECMAScript estão incluídas no elemento <tag>.
O exemplo a seguir está no formato XML de acordo com a especificação SRGS que mostra uma gramática válida aceita pelo Amazon Lex V2. Ele define um tipo de slot de gramática que aceita números de cartão e determina se eles são para contas regulares ou premium. Para mais informações sobre a sintaxe aceitável, consulte os tópicos Definição de gramática e Formato do script.
<grammar version="1.0" xmlns="http://www.w3.org/2001/06/grammar"
xml:lang="en-US" tag-format="semantics/1.0" root="card_number">
<rule id="card_number" scope="public">
<item repeat="0-1">
card number
</item>
<item>
seven
<tag>out.value = "7";</tag>
</item>
<item>
<one-of>
<item>
two four one
<tag> out.value = out.value + "241"; out.card_type = "premium"; </tag>
</item>
<item>
zero zero one
<tag> out.value = out.value + "001"; out.card_type = "regular";</tag>
</item>
</one-of>
</item>
</rule>
</grammar>
A gramática acima aceita apenas dois tipos de números de cartão: 7241 ou 7001. Opcionalmente, ambos podem ser prefixados com “número do cartão”. Também contém tags ECMAScript que podem ser usadas para interpretação semântica. Com a interpretação semântica, o enunciado “cartão número sete, dois, quatro, um” retornaria o seguinte objeto:
{ "value": "7241", "card_type": "premium" }
Esse objeto é retornado como uma string serializada em JSON no objeto resolvedValues
retornado pelas operações RecognizeText, RecognizeUtterance e StartConversation.
Adicionar um tipo de slot de gramática
Adicionar um tipo de slot de gramática
-
Faça upload da definição XML do tipo de slot para um bucket do S3. Anote o nome do bucket e o caminho para o arquivo.
nota
O tamanho máximo do arquivo é 100 KB.
-
Faça login no AWS Management Console e abra o console do Amazon Lex em https://console.aws.amazon.com/lex/
. -
No menu à esquerda, selecione Bots e escolha o bot ao qual adicionar o tipo de slot de gramática.
-
Selecione Exibir idiomas e escolha o idioma ao qual adicionar o tipo de slot de gramática.
-
Escolha Exibir tipos de slots.
-
Escolha Adicionar tipo de slot e selecione Adicionar tipo de slot de gramática.
-
Dê um nome ao tipo de slot e selecione Adicionar.
-
Escolha o bucket do S3 que contém o arquivo de definição e insira o caminho para o arquivo. Selecione Salvar tipo de slot.