arti_djeims
@arti_djeims

Как сделать последовательный Бот на JS?

Есть код который сробатывает при опредленных введеных словах:

var message = 'хочу заказать пиццу';
  
   if(message.indexOf('пиццу') + 1) { //если в предложении есть слово "пиццу"
      alert('с чем пиццу хотите?');
   }


В данном примере когда человек вводит любое предложение которое имеет в себе слово "пиццу" то тогда Бот задаст следующий вопрос, "с чем пиццу хотите?" и как теперь сделать так что бы мы могли выбрать пиццу по такому же принцепу по поиску названия пицци в предложении, к примеру, "я хочу Гавайскую пиццу" и бот найдет слово "Гавайскую" то тогда бот спросит следующий вопрос, какого размера и т.д.

var message = 'я хочу Гавайскую';
  
   if(message.indexOf('пиццу') + 1) { //если в предложении есть слово "Гавайскую"
      alert('Какого размера должна быть ваша пицца?');
   }


Так вот, как сделать так что бы была именно цепочка вопросов, что бы на первых этапах когда мы пишем что хотим пиццу, что бы названия пицц на том этапе еще не читались, а только после того как ответим на тот вопрос то тогда можем переходить к следующему, как реализовать такой код? Буду благодарен за вашу помощь!
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 3
Вопрос размытый какой-то.
Логичный ответ на ваш вопрос, сделать просто вложенное условие в ваш if(message.indexOf('пиццу') + 1).
Предварительно получать список пицц по ajax и потом по регулярному выражению вычленять название пиццы.
Ответ написан
Комментировать
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Согласен с предыдущим постом.
А так только такой получится) https://jsfiddle.net/sdhqkpxn/4/
Ответ написан
Комментировать
begemot_sun
@begemot_sun
Программист в душе.
Запомните, у вашего бота всегда должно быть состояние. Относительно которог бот будет ожидать каких-то ответов.
Сперва, нарисуйте диагрумму диалога, какие возомжные вопросы и какие ответы и какие следующие вопросы после ответов вы будете задавать.
А дальше, куча IF/THEN/ELSE в коде (это если тупо в лоб), либо некий DSL чтобы все это было просто поддерживать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы