Родительское намерение совпадает во время заполнения слота последующего намерения - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть чат-бот для программирования уроков. Есть 2 намерения.

Intent_1 обучающие фразы:

  1. Я хочу выучить Python
  2. ищу Java тренировку около 3k за месяц

    ...

Мне нужно 3 обязательных параметра - прог. язык, время_период, стоимость. В этом намерении нет входных или выходных контекстов. Я не использовал заполнение слотов, так как есть другие похожие цели с такими же параметрами, которые могут быть активированы. Я активирую выходной контекст get_missing_parameters из webhook, если какой-либо из параметров отсутствует.

Код Webhook:

     let [language, time, cost] = [agent.parameters.language, agent.parameters.time, 
          agent.parameters.cost];

     if((!language) || (!time) || (!cost)){

     context = {'name': 'get_missing_parameters', 'lifespan': 5, 'parameters': {}};
     agent.setContext(context);
     }

     const missingParams = [];
     if(!language){missingParams.push('language');}
     if(!time){missingParams.push('time');}
     if(!cost){missingParams.push('approximate cost you are looking at');}

     if(missingParams.length == 1){agent.add(`Ok great, please tell me ${missingParams[0]}`);}
     else if(missingParams.length == 2){agent.add(`Please tell me ${missingParams[0]} and 
         ${missingParams[1]}`);}
     else if(missingParams.length == 3){agent.add(`Please tell me ${missingParams[0]}, 
         ${missingParams[1]} and ${missingParams[2]}`);}

  }

Итак, если пользователь вводит "Я хочу выучить python через 3 месяца ", агент ответит" Хорошо, пожалуйста, скажите мне примерную стоимость, которую вы просматриваете ".

Intent_2 имеет get_missing_parameters в качестве входного контекста, который запускается из приведенного выше кода, когда отсутствует хотя бы параметр 1.

Intent_2 должен собирать остальные параметры. Проблема в том, что для некоторых пользовательских вводов Intent_1 запускается, поскольку обучающие фразы очень похожи (даже несмотря на то, что Intent_2 имеет активный входной контекст).

Как убедиться, что только Intent_2 запущен на 100% времени?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...