J'ai remarqué quelque chose d'étrange lors du test de mon modèle d'interaction avec le kit de compétences Alexa.Mon type de slot personnalisé prend des valeurs inattendues
I défini un type de logement personnalisé, comme ceci:
CAR_MAKERS Mercedes | BMW | Volkswagen
Et mon plan l'intention était quelque chose comme:
{
"intents": [
{
"intent": "CountCarsIntent",
"slots": [
{
"name": "CarMaker",
"type": "CAR_MAKERS"
},
...
avec les énoncés échantillons tels que:
CountCarsIntent Add {Amount} cars to {CarMaker}
maintenant , lors des tests dans la console de développeur, j'ai remarqué que je peux écrire des choses comme:
"Add three cars to Ford"
Et il va effectivement analyser correctement! Même si "Ford" n'a jamais été mentionné dans le modèle d'interaction! La demande lambda est:
"request": {
"type": "IntentRequest",
...
"intent": {
"name": "CountCarsIntent",
"slots": {
"CarMaker": {
"name": "ExpenseCategory",
"value": "whatever"
},
...
Cela me surprend vraiment, parce que la documentation sur custom slot types est assez clair sur le fait que la fente ne peut prendre les valeurs qui sont répertoriées dans le modèle d'interaction.
Maintenant, il semble que les valeurs sont aussi analysées dynamiquement! Est-ce une nouvelle fonctionnalité, ou ai-je oublié quelque chose?
J'ai remarqué que l'utilisateur @samiles partage mon observation dans la réponse à cette question: http://stackoverflow.com/a/34078869/1375015 –