Nous avons créé un agent Dialogflow utilisant les fonctions Google Cloud comme webhook qui a fonctionné correctement jusqu'à hier soir. À ce moment-là, j'ai exporté l'agent et l'ai réimporté plus tard et cela a fonctionné pendant un certain temps.
Ce qui a cessé de fonctionner, c'est que agent.context.get ('...');
(également agent.getContext ('...') ) renvoie undefined
même si le contexte est défini en fonction de l'interface utilisateur et de la réponse brute de l'API.
Comme un exemple J'ai une intention qui a un emplacement requis boutique
, webhook pour le remplissage de l'emplacement activé.
Lorsque je teste l'agent, l'intention nommée info
correspond correctement et le contexte info_dialog_params_store
semble être là:
Et voici une partie du contexte de sortie en fonction de la réponse brute de l'API:
TypeError: Cannot read property 'get' of undefined at info (/user_code/index.js:207:36) at WebhookClient.handleRequest (/user_code/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:303:44) at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/user_code/index.js:382:9) at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9) at /var/tmp/worker/worker.js:762:7 at /var/tmp/worker/worker.js:745:11 at _combinedTickCallback (internal/process/next_tick.js:73:7) at process._tickDomainCallback (internal/process/next_tick.js:128:9)
Dans le webhook, j'ai correctement mappé l'intention sur un js:
function info(agent) { store_context = agent.context.get('info_dialog_params_store'); }
Et la première ligne de la fonction info
ressemble à:
let intentMap = new Map(); intentMap.set('info', info); agent.handleRequest(intentMap);
Ce qui retourne
"outputContexts": [ { "name": "projects/MYAGENTNAME/agent/sessions/0b753e8e-b377-587b-3db6-3c8dc898879b/contexts/info_dialog_params_store", "lifespanCount": 1, "parameters": { "store": "", "store.original": "", "kpi": "counts", "date_or_period": "", "kpi.original": "trafico", "date_or_period.original": "" } }
Je suis sûr que je n'ai rien changé qui puisse affecter le bon fonctionnement de l'agent, à part quelques refactoring.
J'ai aussi essayé les fonctions bêta activées et désactivées car j'ai lu qu'il peut y avoir des problèmes avec les environnements, mais cela n'a rien changé.
Quelqu'un sait dans quelle direction je peux enquêter plus avant?
p>
3 Réponses :
En fait, je pourrais le réparer en suivant les étapes «magiques» suivantes:
info
: function info(agent) { store_context = agent.context.get('info_dialog_params_store'); }
J'ai eu le même problème, je l'ai résolu en mettant à jour dialogflow-completion dans package.json:
de "dialogflow-completion": "^ 0.5.0" à "dialogflow-completion": "^ 0.6.0"
Merci pour le conseil. À ce moment-là, cette version n'était pas disponible mais peut-être ont-ils corrigé quelque chose pour empêcher cette erreur de se produire.
J'ai résolu le problème en désactivant les "Fonctionnalités bêta" entrez la description de l'image ici