Обновить

Вилка для макаронного монстра: делаю открытый конструктор нодовых редакторов

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели12K
Всего голосов 5: ↑4 и ↓1+4
Комментарии7

Комментарии 7

Ну, в определенной тусовке это так :)

Всё таки не очень понял - а проигрыватель самих нодов генерируется под конкретный проект? Я примерно такую схему делал для генерации разных "мастеров" (последовательных слайдов с вводом параметров на каждом листе и маршрутизацией в виде графа переходов). Там помимо сгенерированной схемы и наборов форм в виде (json+html+css) имеется и единый класс js, который все это проигрывает в виде диалогового окна. А как у вас реализовано? Можно поподробнее? Идея интересная, но если она изначально мне не подходит, то увы, проще как вы говорите - быть не ленивым и написать свое

Плеер единый, не генерится под проект. Ноды — декларативные манифесты, маршрут — это .orp (json/yaml), и всё это интерпретирует один DAG-исполнитель: топосорт, разрешение зависимостей, прокидывание данных между нодами. Паттерн ровно ваш — данные отдельно, интерпретатор один.

Но про совместимость с вашим кейсом: у вас граф — это переходы между экранами визарда (control-flow, сбор ввода по шагам). У меня граф — поток данных между моделями и инструментами (data-flow). Если вам нужен генератор пошаговых мастеров с формами — SnarkRoute не оно, проще своё.

У меня граф — поток данных между моделями и инструментами (data-flow).

Типа легковесный аналог Apache Airflow (там тоже на DAG-ах pipeline-ы обработки)? Или что специализированное?

Т.е. можно запрограммировать сложные обработки как в Airflow (например работу с LLM, RAG etc)?

DAG-ядро общее с Airflow — топосорт, зависимости, прокидывание данных между шагами. Но «лёгкий Airflow» — неточно, цели расходятся.

Airflow ты программируешь: произвольный Python в операторах плюс шедулинг, ретраи, бэкфилл, распределённое исполнение. SnarkRoute декларативный — маршрут это описание (.orp), которое соединяет готовые ноды, а не код. Произвольную логику внутри шага написать нельзя, и это сознательное ограничение: маршрут можно отдать другому человеку, не передавая ему исполняемый код. Расписаний и распределёнки в текущей версии тоже нет — это про ad-hoc запуск маршрута локально, а не про прод-оркестрацию.

По существу вопроса: вызовы LLM — да, это прямой кейс, ноды зовут модели через провайдеров, цепочки строятся. А RAG и «сложные обработки как в Airflow» — ровно настолько, насколько выражаются доступными нодами; произвольный retrieval, эмбеддинги и кастомную логику кодом — нет, кода в нодах нет принципиально.

Грубо: нужен программируемый оркестратор с шедулингом — это Airflow, не я. Нужен переносимый декларативный медиа-маршрут, которым делишься как файлом, — сюда.

Да я как то и не говорю, что хочу интегрировать. Мне нужнее скорее понимание именно как структурного решения, которое можно сравнительно просто интегрировать в разные проекты. Спасибо за ответ. Буду иметь ввиду

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации