As habilidades personalizadas podem capturar texto e enviá-lo para a API da sua habilidade.
Se você não está completamente familiarizado com o funcionamento do Alexa Skills, aqui está um breve resumo:
Primeiro, você registra sua Habilidade na Amazon , fornecendo um esquema de intenções e exemplos de declarações . O esquema de intenção define quais ações podem ser executadas e os slots dos dados personalizados a serem enviados para sua API. As declarações de exemplo fornecem exemplos de como um usuário pode acionar cada intenção.
Quando o usuário ativa sua Habilidade, o Alexa tenta corresponder o que eles disseram a uma das frases de amostra de sua habilidade. Se ele faz jogo, ele irá enviar uma solicitação HTTPS para o servidor para pedir uma resposta.
Seu servidor fornece uma resposta (se tudo der certo) e o Alexa fornecerá feedback ao usuário que acionou sua habilidade.
O AMAZON.LITERAL
slot permite aceitar praticamente qualquer entrada. Note-se que atualmente ele só é suportado nos Inglês (US) Região-Inglês (UK) e alemães habilidades não pode usar AMAZON.LITERAL
.
Seu esquema de intenção pode ficar assim:
{
"intents": [
{
"intent": "SaveTodo",
"slots": [
{
"name": "Todo",
"type": "AMAZON.LITERAL"
}
]
}
]
}
E suas declarações de amostra podem ser assim:
SaveTodo remind me to {fetch the shopping|Todo}
SaveTodo remind me to {write my English essay|Todo}
SaveTodo remind me to {buy some dog food tomorrow|Todo}
Ao usar AMAZON.LITERAL
, você precisa fornecer muitas expressões de amostra - pelo menos uma amostra para cada comprimento possível de entrada, mas idealmente mais. A documentação da Amazon sugere que você deve ter como objetivo centenas de amostras de slots em que possa aceitar vários tipos de entradas.
Parece um pouco entediante, mas se você não fizer isso, é improvável que sua habilidade reconheça bem o texto. Talvez você possa gerar declarações de amostra a partir dos dados do cliente (desde que as informações pessoais sejam removidas antes!) Para que as declarações mais comuns estejam nas suas amostras - suspeito que o Alexa seja um pouco tendencioso para reconhecer declarações semelhantes às amostras.
A Amazon desencoraja os AMAZON.LITERAL
slots e prefere que você use tipos de slots personalizados , que exigem que você liste as entradas possíveis. É importante lembrar que:
Um tipo de slot personalizado não é equivalente a uma enumeração. Os valores fora da lista ainda podem ser retornados se reconhecidos pelo sistema de entendimento da linguagem falada. Embora a entrada para um tipo de slot personalizado seja ponderada em relação aos valores da lista, ela não é restrita apenas aos itens da lista. Seu código ainda precisa incluir validação e verificação de erro ao usar valores de slot.