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á.
Usando um tipo de slot gramatical personalizado
Com o tipo de slot gramatical, 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 gramaticais. Em seguida, o Amazon Lex retorna as propriedades definidas nas tags como valores resolvidos quando ocorre uma correspondência.
Você só pode criar tipos de slots gramaticais nos idiomas inglês (Austrália), inglês (Reino Unido) e inglês (EUA).
Há duas partes em um tipo de slot gramatical. 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 corresponder, ele será passado para o script, se houver um.
O segundo é parte de um tipo de slot gramatical, 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 <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 gramatical que aceita números de cartão e determina se eles são para contas regulares ou premium. Para obter mais informações sobre a sintaxe aceitável, consulteDefinição gramática e osFormato de script tópicos.
<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. Ambos podem ser opcionalmente prefixados com “número do cartão”. Ele também contém tags ECMAScript que podem ser usadas para interpretação semântica. Com a interpretação semântica, o enunciado “carta número sete dois quatro um” retornaria o seguinte objeto:
{ "value": "7241", "card_type": "premium" }
Esse objeto é retornado como uma string serializada em JSON noresolvedValues
objeto retornado pelas StartConversationoperações RecognizeTextRecognizeUtterance, e.
Adicionar um tipo de slot gramatical
Para adicionar um tipo de slot gramatical
-
Faça upload da definição XML do seu 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 é de 100 MB.
-
Faça login noAWS Management Console e abra o console do Amazon Lex em https://console.aws.amazon.com/lex/
. -
No menu à esquerda, escolha Bots e, em seguida, escolha o bot ao qual adicionar o tipo de slot gramatical.
-
Escolha Exibir idiomas e, em seguida, escolha o idioma ao qual adicionar o tipo de slot gramatical.
-
Escolha Exibir tipos de slots.
-
Escolha Adicionar tipo de slot e, em seguida, escolha Adicionar tipo de slot gramatical.
-
Dê um nome ao tipo de slot e escolha Adicionar.
-
Escolha o bucket do S3 que contém seu arquivo de definição e insira o caminho para o arquivo. Escolha Salvar tipo de slot.