Как реализовать механизм динамического построения диалога (aiogram или telethon или pytelegrambotapi или любой другой фремфорк на питоне)?
Задача: диалог хранится в базе данных (т.е. он может меняться дизайнером) я достаю его из базы формирую граф переходов (текст диалога это вершина графа, кнопки - определяют переход к следующим вершинам). Вопрос как теперь на основе этого графа состояний во время работы бота динамически строить диалог. Нужна идея.
Как я это вижу: имея построенный граф, нужно динамически формировать код хендлена и регистрировать его. Вот в этом и загруз: Как сформировать динамический хендлер со своим кодом обработки, а потом зарегистрировать его? Есть подозрение что нужно использовать лямбда функции, но не понимаю пока как. Может кто подскажет?
Возможно есть уже готовые фреймфорки для изучения архитектуры (не важно на каком языке) буду благодарен.
В чём сложность имея готовый граф(а граф ли) просто ходить по нему? С регистрацией все просто вы же можете пронумеровать узлы графа ну так каждая кнопка будет содержать id перехода. Не могу понять где у вас сложность если честно.
При статическом диалоге, граф переходом известен заранее и запрограмировать его на этапе создания бота - тут все просто.
Не могу уложить в голове как построить обработчик событий когда боту становится известен диалог при срабатывании инициирующего события (например боту написали /start) бот загрузил из базы граф диалога текст, кнопки, если есть, и затем (как мне видится, могу и ошибаться) нужно регистрировать отдельные события для возможных переходов в соседние вершины (например на текущем шаге безусловный переход, а на следующем появляются три кнопки "Ок", "Пропустить", "Отмена" соответственно). Получается что "сейчас" мы перейдем в следующей вершине в любом случае, а на следующем шаге нужны три обработчика.
Возможно граф переходов в этом случает и не нужен, а есть более удобное решение.