telegram-bot/documentation/spring/ru/docs/architecture/general.md

26 lines
1.6 KiB
Markdown
Raw Normal View History

2023-03-14 02:11:04 +03:00
# Основная идея
## Голосарий
## Юнит
## Сценарий
Для понимания рассмотрим небольшой пример по схеме изображенной ниже. Так же небольшие примеры обработки есть в тестах.
![Типичный сценарий](img/scenario.png){ loading=lazy align=left }
Сценариями в данном случае являются:
* Unit1 —> Unit2 —> Unit5 —> Unit7 —> Unit9
* Unit1 —> Unit2 —> Unit6 —> Unit8;
* Unit1 —> Unit3 —> Unit6 —> Unit8;
* Unit1 —> Unit4 —> Unit9;
* Unit10.
Пользователь присылает боту свое первое сообщение, например, «Привет». Если сообщение удовлетворяет регулярному выражению или содержит необходимое количество ключевых слов Unit1, то возвращается Unit1, то же самое относится к Unit10.
Если оба юнита удовлетворяют запросу пользователя, то будет возвращен юнит с большим приоритетом (поле priority). Если приоритеты равны, то случайный Unit.
В нашем примере, на первое сообщение, пользователь получил Unit1, поэтому следующее сообщение пользователя будет ассоциироваться с множеством: Unit2, Unit3 и Unit4.
## Механизм выбора юнита