Правильный способ установки контекста в javascript для диалогового процесса - PullRequest
0 голосов
/ 24 февраля 2020

Я изо всех сил пытался установить выходной контекст в javascript для webhook диалогового потока, и, хотя я пробовал множество примеров, я обнаружил, что «DialableFarze» в DialogFlow я получаю «Не удалось разобрать». Это последняя попытка:

const app = dialogflow({debug: true});
...
app.intent('YesNo', (conv) => {
  if (numberOfRounds < 5){
    conv.ask("Ny fråga?");
    ++numberOfRounds;
    conv.setContext({
      "name": 'yesnoexpected',
      "lifespan": 1,
      "parameters":{"param": "param value"}
    });
  } else {

Я уверен, что ошибка связана с объектом контекста, потому что, если я удаляю его, ошибки синтаксического анализа не возникает, хотя, конечно, функциональность не такая, как задумано. Но где ошибка?

1 Ответ

3 голосов
/ 24 февраля 2020

Вы устанавливаете контекст, используя нотацию JSON, но это не поддерживается действиями в библиотеке Google. Если вы хотите установить контекст в веб-крюке, вы должны использовать для этого Javascript объектов, например:

conv.contexts.set("ContextName", 5, {contextString: "Value", contextNumber: 1});

, а затем вы можете параметры из предыдущего контекста установить следующим образом:

const context = conv.contexts.get("ContextName");
const parameter = context.parameters.contextString;
...