26 lines
1.6 KiB
Markdown
26 lines
1.6 KiB
Markdown
|
# Основная идея
|
|||
|
|
|||
|
## Голосарий
|
|||
|
|
|||
|
## Юнит
|
|||
|
|
|||
|
## Сценарий
|
|||
|
Для понимания рассмотрим небольшой пример по схеме изображенной ниже. Так же небольшие примеры обработки есть в тестах.
|
|||
|
|
|||
|
![Типичный сценарий](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.
|
|||
|
|
|||
|
## Механизм выбора юнита
|