web-dev-qa-db-fra.com

Dialogflow: répondez en fonction des valeurs et autres réponses conditionnelles

J'ai $dinetype variable obtenue de l'utilisateur.

enter image description here

Mais je voudrais donner une réponse basée sur la valeur qui a été définie dans $dinetype variable. En plus de donner des réponses, je dois également définir le contexte pertinent. Comment dois-je procéder dans DialogFlow?

enter image description here

if($Dinetype=='dineout') 
      ask ('which restaurant would you like to go to?')
      set_context ('awaiting-restaurant')
if($Dinetype=='takeaway') 
      ask ('When would you like to take away?')
      set_context ('awaiting-takeaway-time')

Est-il programmable du tout? Ou est-il possible d'obtenir quelque chose d'équivalent à ce qui précède dans l'interface utilisateur?

Vous ne pouvez pas le faire directement dans la section Réponse. La section Réponse est destinée aux réponses assez simples qui ne nécessitent pas de logique importante pour être traitées. Bien que vous puissiez utiliser des paramètres dans la réponse, vous ne pouvez pas donner de réponse différente en fonction de la valeur du paramètre. Vous pouvez donc définir une réponse à quelque chose comme

I think $Dinetype is great food.

mais non

{{#if $Dinetype == "Thai"}}I think Thai food is too hot{{/if}}

ou quelque chose comme ça

Cependant, vous pouvez ajouter du code qui envoie des réponses conditionnelles et des contextes en implémentant un Fulfillment webhook. Bien que vous ne puissiez pas le faire pour chaque intention dans le cadre de l'écran de l'éditeur d'intention, l'écran de réalisation comprend un éditeur de code intégré.

6
Prisoner

Réponse tardive, mais peut-être que quelqu'un trouvera cela utile.

Si la réponse conditionnelle ne doit faire référence qu'à une seule valeur de paramètre, j'ai compris ce que vous pouvez faire est d'utiliser la "valeur de référence" de l'entité comme réponse que vous souhaitez donner pour un ensemble particulier de synonymes.

Vous auriez donc une entité qui ressemblerait à ceci:

Ensuite, configurez votre intention comme ceci, avec une réponse de $Dinetype:

Ensuite, le résultat final ressemblera à ceci:

Et vous pouvez faire toute intention de suivi dont vous avez besoin à partir de là.

L'inconvénient est que Dinetype ne sera pas aussi réutilisable. Mais je pense toujours qu'il vaut mieux écrire un webhook de réalisation chaque fois que vous avez besoin d'une réponse conditionnelle simple.

10
corylulu