diff --git a/README.md b/README.md index 5bf6aee..4ce14f4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Abstract autoresponder -Абстрактная реализация, которая позволяет создавать ботов. +Абстрактная реализация, которая позволяет создавать ботов. Боты позволяют автоматизировать взаимодействие с пользователем. +Боты позволяют автоматизировать общение с клиентами, отвечая по запрограммированию сценарию. ### Основные понятия @@ -7,7 +8,7 @@ Каждый юнит хранит в себе ключевые слова или регулярное выражение, ссылки на следующие Unit-ы, а так же значение приоритета и процент количества найденных ключевых слов к заданным ключевым словам. В данном модуле Unit является абстрактным классом, так как юнит по задумке это расширяемый класс, который может не только отдавать текстовые -сообщения, но и например сохранять пользовательскую информацию, и выполнять прочее функции. Примеры наследников +сообщения, но и, например, сохранять пользовательскую информацию, и выполнять прочие функции. Примеры наследников Unit можно найти в [этом репозитории](https://github.com/uPagge/social-bot). **Сценарий** - это связанные между собой юниты. @@ -26,16 +27,16 @@ Unit можно найти в [этом репозитории](https://github.c • Unit1 —> Unit4 —> Unit9; • Unit10. -Пользователь присылает боту свое первое сообщение, например «Привет». Если сообщение удовлетворяет регулярному +Пользователь присылает боту свое первое сообщение, например, «Привет». Если сообщение удовлетворяет регулярному выражению или содержит необходимое количество ключевых слов Unit1, то возвращается Unit1, то же самое относится к Unit10. Если оба юнита удовлетворяют запросу пользователя, то будет возвращен юнит с большим приоритетом (поле priority). Если -приоритеты равны, то рандомный Unit. В нашем примере, на первое сообщение, пользователь получил Unit1, поэтому следующее +приоритеты равны, то случайный Unit. В нашем примере, на первое сообщение, пользователь получил Unit1, поэтому следующее сообщение пользователя будет ассоциироваться с множеством: Unit2, Unit3 и Unit4. ### Програмная реализация -Данная библиотека заточена только на определениие того, какой Unit отдавать, необходимо создать наследника +Данная библиотека предназначена только на определение того, какой Unit отдавать, необходимо создать наследника класса `Unit` (самый простой вариант лежит в тестах). Следом создается объект класса `UnitPointerService`. Он отвечает за сохранение позиции пользователя в сценарии, простыми словами он сохраняет последний Unit, который был отправлен пользователю. @@ -47,6 +48,6 @@ Unit можно найти в [этом репозитории](https://github.c ### Программные особенности -1. Существует возможность отправлять дефолтный юнит, если не будет найден юнит удвлетворяющий сообщению пользователя ( -без ключевых слов, и т.п.). Для этого у объекта `AutoResponder` вызывается метод `setDefaultUnit`. +1. Существует возможность задать юнит, который будет возвращаться при отсутствии юнита, удвлетворяющего сообщению +пользователя (без ключевых слов, и т.п.). Для этого у объекта `AutoResponder` вызывается метод `setDefaultUnit`.