Перенаправление автопилота на новое задание работает неправильно - PullRequest
0 голосов
/ 19 апреля 2019

Итак, я немного поработал с задачами автопилота здесь, начиная с патча, когда вам больше не нужно строить, и я видел это, когда добираюсь до второго перенаправления на другую задачу и когда эта задача слушает,он просто не слушает и возвращается к своей резервной задаче.

Я пытался не использовать функцию между перенаправлением и тому подобным, я использовал прямое сообщение для своей функции Twilio, и ни один изэто работает.У меня есть вопросник из двух вопросов, и полная метка - это перенаправление, и именно здесь мои задачи начинают терпеть неудачу.

 "actions": [
  {
   "say": {
    "speech": "I just have a few questions"
   }
  },
  {
   "collect": {
    "name": "questions",
    "questions": [
     {
      "question": "Is the weather nice today",
      "name": "q_1",
      "type": "Twilio.YES_NO",
     },
     {
      "question": "Do you like ice cream?",
      "name": "q_2",
      "type": "Twilio.YES_NO",
     }
    ],
    "on_complete": {
     "redirect": "MY FUNCTION LINK"
    }
   }
  }
 ]
}

Тогда функция вернет это в виде JSON:

responseObject = {
 "actions": [
  { 
   "redirect": "task://MY TASK" 
  }
 ]
};

Тогда задачи идут следующим образом:

{
 "actions": [
  {
   "say": "Would you like to be transfered over, or be called later?"
  },
  {
   "listen": {
    "tasks": [
     "transfer",
     "calllater"
    ]
   }
  }
 ]
}

Но задачи, которые при прослушивании никогда не завершаются, и мои журналы выглядят как задача, которая их вызывала, не существует.

Задача должна перейти к правильным задачам, перечисленным в списке, но она просто падает и возвращается к резервной задаче.Я должен понять, почему это не работает, пожалуйста, дайте мне знать.

1 Ответ

1 голос
/ 23 апреля 2019

Twilio разработчик евангелист здесь. ?

Я просто взял опубликованный вами код и настроил его, и он отлично работает. Позвольте мне рассказать вам, что я сделал.

Я создал долгожданное задание

// welcome task
{
    "actions": [
        {
            "say": {
                "speech": "I just have a few questions"
            }
        },
        {
            "collect": {
                "name": "questions",
                "questions": [
                    {
                        "question": "Do you like ice cream?",
                        "name": "q_2",
                        "type": "Twilio.YES_NO"
                    }
                ],
                "on_complete": {
                    "redirect": "https://picayune-snout.glitch.me/api/collect"
                }
            }
        }
    ]
}

Эта задача, аналогично вашему примеру, определяет конечную точку on_complete, которую я размещал на Glitch . Конечные точки отвечают JSON, который выглядит следующим образом.

module.exports = (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify(
    {
      "actions": [      
        {
            "say": {
                "speech": "Thanks for you information"
            }
        },
        { 
         "redirect": "task://continue" 
        }
      ]
    }
  ));
}

Затем я определил задачу продолжения, аналогичную вашей:

{
    "actions": [
        {
            "say": "Would you like to be transfered over, or be called later?"
        },
        {
            "listen": {
                "tasks": [
                    "transfer",
                    "calllater"
                ]
            }
        }
    ]
}

calllater и transfer используют только say, и все работает нормально. Важным моментом является то, что вы определяете образцы для этих двух задач, чтобы система могла их распознать. Также вам необходимо перестроить модель для Маршрутизатора естественных языков.

Samples for a task

Rebuild model dialog

Трудно сказать, что вы сделали не так. : /

...