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 ECMAScript tags nos arquivos gramaticais. 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.

O segundo faz parte de um tipo de slot gramatical 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. ECMAScript as declarações estão incluídas no <tag>elemento.

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”. Ele também contém ECMAScript tags 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 resolvedValues objeto retornado pelas operações RecognizeText, e. RecognizeUtteranceStartConversation

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.