Я хочу сделать чат-бота по типа: ключевое слово-ответ. Я понимаю, как его реализовать, но структуризация вводит меня в ступор. Для полного понимания приведу пример: человек хочет написать сообщение и ему предлагается 3 варианта (что-то вроде меню). После отправки одного из 3 слов, человека переносит на соответствующую ветку уже с 8 вариантами и так до тех пор, пока человек не найдет нужную для него информацию.
Мне не совсем понятно, как можно компактно уложить ключевые слова и соответствующие им ответы, а также как добавить "уровни", чтобы человек смог свободно перемещаться по ветви. Хотелось бы услышать вашего мнения по этому поводу
Делал как-то текстовый квест и эта задача очень схожа. У чат-бота должен быть граф (карта), по которому человек должен будет перемещаться отвечая по одному из вариантов.
Такую карту я сделал следующим образом:
Пример:
$map = [
'start' => [
[
'word' => ['старт', 'начало'], // Переход на обучение
'newPoint' => 'begin',
],
[
'word' => ['пропустить'], // Пропустить обучение
'newPoint' => 'books', // Переход на выбор книг
]
],
'begin' => [...], // Описание ветки обучения
'books' => [
[
'word' => ['найти', 'поиск'], // Переход на поиск книг. Можно сделать обработку, чтобы искать книгу по названию: найти <название книги>
'newPoint' => 'find',
],
[
'word' => ['обучение', 'помощь'], // Перейти к обучению
'newPoint' => 'begin',
]
],
'find' => [...] // Логика поиска книг
]
В этом примере следующая логика:
человек может написать 'старт' или 'начало', чтобы перейти на обучение. И может написать 'пропустить', чтобы пропустить обучение и перейти на поиск книг
на поиске книг человек может написать 'обучение', 'помощь', чтобы перейти на обучение. Также может написать 'найти', 'поиск', чтобы искать книги
Т.е. вся работа будет заключаться в описании карты переходов и хранение текущего положения человек на этой карте. По параметрам текущего положения нужно обрабатывать ответы человеку, что отправлять.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть таблица, которая имеет столбцы number и balanceЯ хочу вывести данные, хранящиеся в них на страницу
Как через PHP сравнить текст и ответ от сервера и вывести указанное значение? Нужно, чтобы сервер сравнил переменную с отображаемым Пользуюсь...