2016-04-27 1 views
3

J'essaie quelques exemples dans la console Api.ai. Je vois qu'il y a des exemples où l'agent répond en utilisant les valeurs qui sont extraites de la requête de l'utilisateur ou du contexte. Mais existe-t-il un moyen d'afficher la réponse qui est formée en utilisant la sortie de l'action effectuée?Comment obtenir une réponse dynamique basée sur le résultat de l'action effectuée dans Api.ai?

Par exemple -

utilisateur: Ma commande est pizza confirmé?

Action: vérifier l'état de la commande

Réponse: Oui, il est confirmé (ou "Non, ce n'est pas")

Répondre

0

Oui, vous pouvez le faire avec webhooks.

En règle générale, vous économiseriez l'état de l'ordre dans votre base de données, vous pourriez avoir une intention qui:

  1. Comprendre la requête de votre utilisateur (ma commande de pizza confirmé)
  2. Le l'intention appellerait votre webhook
  3. le webhook retournerait l'ordre de statut. Api.ai donnerait alors la réponse

Lorsque vous utilisez webhooks vous devez retourner la réponse speech, le displayText, le cas échéant le data que vos applications ont besoin, le contextOut et le source.

Je suppose que vous auriez aussi besoin d'avoir implémenté un peu de contexte dans api.ai afin que vous puissiez maintenant savoir qui est en train de poser des questions sur le satus de la commande. Vous aurez alors la possibilité d'utiliser le sessionId

1

Pour ce faire, vous devrez utiliser un webhook personnalisé, soit en intégrant une API tierce, soit en faisant appel à un serveur de votre choix pour une base de données - dans ce cas le webhook prendrait l'ID de l'utilisateur et interrogerait si sa pizza était prête ou pas, et ceci serait alors passé à API.ai.

Voici un exemple en utilisant un webhook 3ème partie à faire ce que vous demandez: https://github.com/api-ai/apiai-weather-webhook-sample

+0

celui-ci utilise python, des exemples de node.js auxquels se référer? – PirateApp

0

Matt est correct ici. Vous devez utiliser un webhook. Malheureusement, la documentation de API.AI est actuellement très mauvaise. Voici un exemple de capture d'écran d'une demande de publication entrante. Ma fonction de message retournera un objet avec une réponse désirée. Dans ce cas, j'utilise un robot de discussion Telegram. Si vous n'utilisez pas de messagerie, vous pouvez supprimer la clé de données: valeur. FollowupEvent est également facultatif.

Node.JS code with Restify

Sur votre intention de API.AI, assurez-vous de cocher webhook. Si vous finissez par obtenir la réponse "Broken" ici, alors quelque chose s'est mal passé et vous devriez vérifier vos codes d'erreur.

API.AI intent

Enfin, sous l'onglet d'exécution, assurez-vous de permettre au webhook et le diriger vers l'extrémité droite.

+0

Veuillez éviter d'afficher du code en tant qu'images (votre première capture d'écran). Il suffit de mettre le code en retrait de 4 espaces pour produire une sortie formatée. – chtz