2017-10-14 9 views
1

dire que je crée une AskForFruit intention dans Dialogflow où l'utilisateur dit:Dialogflow: Comment restreindre un paramètre d'action à l'une des valeurs autorisées

I want an apple

ici pomme est attribué, à un param fruit

Je souhaite limiter la valeur de fruit à 'apple', 'orange' et 'banana' uniquement

Si l'utilisateur dit 'pêche', l'agent répondra 'Veuillez sélectionner entre la pomme, l'orange et la banane '

Comment limiter la valeur de fruit à ces 3 fruits seulement?

Répondre

3

Il y a deux choses dont vous avez besoin:

  1. fruit doit être affecté à un type d'entité personnalisée
  2. Vous aurez besoin d'un intention Fallback (ou une intention de priorité inférieure) pour gérer l'entrée s'il n'y a pas un match.

entité personnalisée

Vous allez créer une entité personnalisée en sélectionnant l'élément de menu Entity à droite puis Créer entité.

enter image description here

Vous entrez dans les valeurs possibles de cette entité peut prendre. Vous pouvez également ajouter des alias pour certaines entités si vous le souhaitez.

enter image description here

Lorsque vous allez créer votre intention, vous voulez vous assurer que l'expression entrée a un mot en surbrillance et le type d'entité correctement sélectionné pour ce mot. (Et, comme des notes de @Ido dans les commentaires, vous voulez sans doute dire que le paramètre est nécessaire.)

enter image description here

Fallback intention

qui gère le cas lorsque l'utilisateur dit un des fruits valides. Mais qu'en est-il des fruits invalides? La manière dont vous gérez cela dépend des autres choses dont vous parlez.

La solution la plus simple consiste à créer une intention de repli , ce qui est une intention de dernier recours si rien d'autre ne correspond. Si vous utilisez des contextes, vous pouvez créer une intention de repli pour un contexte particulier, et c'est un excellent moyen de garder une trace de l'endroit où vous vous trouvez dans une conversation. Dans les deux cas, vous devez modifier vos réponses pour leur indiquer les fruits valides qu'elles peuvent choisir.

enter image description here

Toutefois, si vous voulez répondre très précisément s'ils demandent quelque chose que vous ne voulez pas, vous pouvez créer une intention de priorité inférieure qui correspond s'il n'y a pas une meilleure correspondance.Ceci est utile si vous avez beaucoup de parties de conversation et n'utilisez pas de contextes (mais vous devez utiliser des contextes) ou si vous voulez réserver votre intention de repli pour un message plus général.

Vous modifiez la priorité d'une intention en cliquant sur le point en regard du nom de l'intention. Par exemple, si vous avez une intention AskForSomethingElse correspondant au type plus général @ sys.any, vous pouvez lui demander de répondre avec les types valides. Par exemple,

enter image description here

+0

Dans l'intention « askForFruit » que vous souhaitez faire l'entité que vous avez créé requis, non? –

+0

Bon point - probablement. Assez bizarrement, dans ce cas, il tombe dans l'intention 'AskForSomethingElse' si vous ne spécifiez pas un fruit valide, de sorte que le résultat final est plus ou moins le même. Mais ce n'est pas une bonne pratique. J'ai mis à jour la réponse. Merci! – Prisoner

+0

Cool! Je vous remercie! –