Tipo de slot de gramática - Guia do desenvolvedor

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
  1. 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.

  2. Faça login no AWS Management Console e abra o console do Amazon Lex em https://console.aws.amazon.com/lex/.

  3. No menu à esquerda, selecione Bots e escolha o bot ao qual adicionar o tipo de slot de gramática.

  4. Selecione Exibir idiomas e escolha o idioma ao qual adicionar o tipo de slot de gramática.

  5. Escolha Exibir tipos de slots.

  6. Escolha Adicionar tipo de slot e selecione Adicionar tipo de slot de gramática.

  7. Dê um nome ao tipo de slot e selecione Adicionar.

  8. 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.