This commit is contained in:
parent
06729e031d
commit
c379904d26
@ -1,5 +1,3 @@
|
|||||||
Чтобы начать, выберете свой сборщик вкладку и добавьте зависимости в проект.
|
|
||||||
|
|
||||||
=== ":simple-apachemaven: Maven"
|
=== ":simple-apachemaven: Maven"
|
||||||
|
|
||||||
``` xml
|
``` xml
|
||||||
|
@ -1,10 +1,21 @@
|
|||||||
# Основная идея
|
# Основная идея
|
||||||
|
|
||||||
## Голосарий
|
Проект GodFather направлен на унификацию создания ботов для различных мессенджеров сетей.
|
||||||
|
|
||||||
## Юнит
|
## Юнит
|
||||||
|
|
||||||
|
Базовая сущность фреймворка. Юнит содержит в себе различные лямба выражения, которые встраиваются в процесс обработки сообщений. Именно в написании этих лямбд и заключается основная работа с библиотекой.
|
||||||
|
|
||||||
|
Есть несколько разных типов юнитов, подробнее о каждом читайте в отдельном разделе.
|
||||||
|
|
||||||
|
Юнит представляет собой некую конфигурацию, которая передается в обработчик юнита. У каждого типа юнита есть свой обработчик.
|
||||||
|
|
||||||
|
Юниты могут образовывать связный список, тем самым определяя дерево сценарий бота.
|
||||||
|
|
||||||
## Сценарий
|
## Сценарий
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Для понимания рассмотрим небольшой пример по схеме изображенной ниже. Так же небольшие примеры обработки есть в тестах.
|
Для понимания рассмотрим небольшой пример по схеме изображенной ниже. Так же небольшие примеры обработки есть в тестах.
|
||||||
|
|
||||||
![Типичный сценарий](img/scenario.png){ loading=lazy align=left }
|
![Типичный сценарий](img/scenario.png){ loading=lazy align=left }
|
||||||
@ -24,3 +35,25 @@
|
|||||||
В нашем примере, на первое сообщение, пользователь получил Unit1, поэтому следующее сообщение пользователя будет ассоциироваться с множеством: Unit2, Unit3 и Unit4.
|
В нашем примере, на первое сообщение, пользователь получил Unit1, поэтому следующее сообщение пользователя будет ассоциироваться с множеством: Unit2, Unit3 и Unit4.
|
||||||
|
|
||||||
## Механизм выбора юнита
|
## Механизм выбора юнита
|
||||||
|
|
||||||
|
Пока сценарий линейный никакой необходимости в определении юнита нет. Однако, когда у вас на одном уровне находится несколько юнитов, то возникает необходимость выбрать юнит для последующей обработки сообщений. (1)
|
||||||
|
{ .annotate }
|
||||||
|
|
||||||
|
1. Обратимся к предыдущей схеме сценария. Как выбрать какой юнит обработать после обработки Unit 1?
|
||||||
|
|
||||||
|
Юниты обладают триггерами, которые сигнализируют о том, что данный юнит может обработать запрос от пользователя.
|
||||||
|
|
||||||
|
Механизм выбора можно описать несколькими этапами:
|
||||||
|
|
||||||
|
* Сначала проверяются триггеры у всех юнитов.
|
||||||
|
* Все юниты, триггеры которых сработали, являются потенциальными кандидатами на обработку
|
||||||
|
* Из этих юнитов выбирается юнит с наибольшим приоритетом. Если у них одинаковый приоритет, то выбирается случайный юнит.
|
||||||
|
|
||||||
|
Но как выбираются первые юниты (1) для обработки? В начале сценария стоят main юниты. Именно main юниты участвуют в первом раунде выбора обработчика. Чтобы создать main юнит, необходимо в аннотации `@Unit` установить параметр `main = true`.
|
||||||
|
{ .annotate }
|
||||||
|
|
||||||
|
1. На схеме это Unit 1 и Unit 2
|
||||||
|
|
||||||
|
Также существуют так называемые глобальные юниты, которые участвуют в каждом раунде выбора. Чтобы создать глобальный unit, необходимо в аннотации `@Unit` установить параметр `global = true`.
|
||||||
|
|
||||||
|
|
||||||
|
0
documentation/spring/ru/docs/guides/cyclic.md
Normal file
0
documentation/spring/ru/docs/guides/cyclic.md
Normal file
@ -1,10 +0,0 @@
|
|||||||
# Hello Mutiny!
|
|
||||||
|
|
||||||
Once you made Mutiny available to your classpath, you can start writing code.
|
|
||||||
Let's start with this simple program:
|
|
||||||
|
|
||||||
## Test
|
|
||||||
|
|
||||||
### Test 2
|
|
||||||
|
|
||||||
## Test 3
|
|
2
documentation/spring/ru/docs/guides/security.md
Normal file
2
documentation/spring/ru/docs/guides/security.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Безопасность
|
||||||
|
|
@ -1,10 +1,11 @@
|
|||||||
---
|
---
|
||||||
hide:
|
hide:
|
||||||
- comments
|
- comments
|
||||||
|
- navigation
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Фреймворк для создания Telegram ботов
|
# GodFather Bot - Фреймворк для создания Telegram ботов
|
||||||
|
|
||||||
Данный фреймворк обладает мощным API для создания диалоговых Telegram ботов.
|
Данный фреймворк обладает мощным API для создания диалоговых Telegram ботов.
|
||||||
|
|
||||||
@ -30,4 +31,6 @@ public class GeneralMenu implements UnitConfiguration {
|
|||||||
|
|
||||||
## Добавляем зависимости
|
## Добавляем зависимости
|
||||||
|
|
||||||
|
Чтобы начать, выберете свой сборщик вкладку и добавьте зависимости в проект.
|
||||||
|
|
||||||
--8<-- ".dependencies.md"
|
--8<-- ".dependencies.md"
|
@ -2,6 +2,8 @@
|
|||||||
description: Спонсорская поддержка делает проект устойчивым, так как она окупает время сопровождающих этого проекта.
|
description: Спонсорская поддержка делает проект устойчивым, так как она окупает время сопровождающих этого проекта.
|
||||||
hide:
|
hide:
|
||||||
- comments
|
- comments
|
||||||
|
- navigation
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# :heart:{ .heart } Поддержать разработку
|
# :heart:{ .heart } Поддержать разработку
|
||||||
|
@ -10,16 +10,20 @@ copyright: Copyright © 2018 - 2023 Struchkov Mark
|
|||||||
nav:
|
nav:
|
||||||
- О проекте:
|
- О проекте:
|
||||||
- index.md
|
- index.md
|
||||||
|
- Конфигурация:
|
||||||
- Hello World!: getting-started/hello-godfather.md
|
- Hello World!: getting-started/hello-godfather.md
|
||||||
- Поддержать разработку: support-development.md
|
|
||||||
- ChangeLog:
|
|
||||||
- changelog/index.md
|
|
||||||
- Архитектура:
|
|
||||||
- Основная идея: architecture/general.md
|
|
||||||
- Юниты:
|
- Юниты:
|
||||||
- architecture/unit.md
|
- architecture/unit.md
|
||||||
- architecture/unit/answer-text.md
|
- architecture/unit/answer-text.md
|
||||||
- architecture/unit/answer-check.md
|
- architecture/unit/answer-check.md
|
||||||
|
- Гайды:
|
||||||
|
- Безопасность: guides/security.md
|
||||||
|
- Циклическая зависимость: guides/cyclic.md
|
||||||
|
- Архитектура:
|
||||||
|
- Основная идея: architecture/general.md
|
||||||
|
- ChangeLog: changelog/index.md
|
||||||
|
- Поддержать: support-development.md
|
||||||
|
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
name: material
|
name: material
|
||||||
|
Loading…
Reference in New Issue
Block a user