2017-08-17 1 views
0

Je construis un agent sur API.ai où je pose une question à un utilisateur. Je ne m'attends pas à ce qu'ils répondent à la question à mon agent. Cependant, ils voudront peut-être répondre à cette question plus tard en demandant plus d'informations. Si je «mets fin à la conversation» dans mon intention, ils ne peuvent pas faire quelque chose comme dire «dis-moi plus» sans invoquer mon action de nouveau (auquel cas tout le contexte est perdu), mais de la même façon s'ils ne disent pas quoi que ce soit, puis (sur google home au moins) la question se répète car il attend une réponse.API.ai n'attendez pas la réponse mais ne mettez pas fin à la conversation

Y at-il de toute façon que je pourrais faire cela?

Répondre

3

En plus de ce que Leon a dit, vous pouvez aussi gérer le contexte de l'utilisateur vous-même (au lieu de s'appuyer sur les contextes API.AI) et de supprimer l'ID utilisateur anonyme que vous obtenez avec chaque requête. De cette façon, ils peuvent effectuer un lien profond vers l'arrière pour vous poser une question de suivi, et vous savez «qui» revient et où se trouvait la dernière conversation lorsque vous avez répondu.

4

Les actions sont des expériences conversationnelles. En règle générale, votre application poserait une question et l'utilisateur fournirait une réponse. Une fois que l'utilisateur a quitté votre application, le contexte conversationnel revient à l'assistant.

Si vous voulez fournir un moyen rapide pour permettre à l'utilisateur engager avec votre application à nouveau, puis envisager d'appliquer un soutien pour les liens profonds: https://developers.google.com/actions/apiai/define-actions#define_additional_actions

+0

Merci de répondre. Je suppose que dans mon exemple, l'utilisateur pouvait demander des informations sur x. X a beaucoup d'infos donc je viens d'en fournir une partie avec l'option de demander plus. Je pense que je vais devoir aller avec l'approche Prisonniers et stocker moi-même userId et un temps d'interaction pour gérer le contexte de cette façon avec mon propre timeout et juste avoir l'intention de me dire plus qui récupère le contexte à partir d'une base de données. Merci pour la réponse – TommyBs

0

Je comprends que vous voulez essentiellement créer une intention dans laquelle ce que l'utilisateur dira n'est pas prévisible (il peut ne rien dire du tout).

Dans ce cas, vous pouvez simplement terminer la réponse avec une invite pour la spécifier. "... Voulez-vous demander quelque chose de plus". Si l'utilisateur dit «non», terminez la conversation dans une intention différente. Sinon, continuez avec le flux.