Архитектура Wikilect Flow

Эта страница показывает архитектуру на уровне, который нужен для запуска и эксплуатации:

  • какие есть сервисы,
  • за что каждый отвечает,
  • как проходит запрос от канала до результата.

Архитектура в одном абзаце

Wikilect Flow состоит из API-сервиса (Flow Executor), UI-конструктора (Frontend), асинхронного слоя (Celery + Valkey) и хранилищ (PostgreSQL + S3-compatible Object Storage).
Каналы (Telegram, Webhook, JS-widget) отправляют запрос в backend, backend запускает flow и возвращает либо готовый ответ, либо pending-статус с идентификатором выполнения.

Из чего состоит система

Слой Что делает Ключевые точки
Flow Executor (Backend API) Хранит flow, запускает выполнение, отдает API интеграций /flows, /execute, /results, /components, /webhook/*, /telegram/*, /api/chat/*
Frontend (UI конструктора) Создание/редактирование flow, настройка интеграций, просмотр запусков Web UI
Worker/Queue Асинхронное выполнение и плановые задачи celery_worker, celery_beat, valkey
Storage Хранение конфигураций, запусков и файлов PostgreSQL, S3-compatible Object Storage
Каналы интеграции Входящие события от внешних систем и пользователей Telegram, Webhook, JS-widget

Как проходит один запрос

  1. Канал интеграции отправляет запрос в backend.
  2. Backend формирует content + context и создает execution.
  3. Выполнение идет синхронно или через очередь Celery.
  4. Flow обрабатывается компонентами из app/agents/component.
  5. Клиент получает:
  6. финальный content/context, или
  7. 202 pending + executionId/executionKey для последующего получения результата.

Каналы интеграции

  • Telegram: входящие обновления -> /webhook/telegram/{bot_token}.
  • Webhook: внешние HTTP-вызовы -> /webhook/{tenant_id}/{webhook_id}.
  • JS-widget: чат-виджет сайта -> /api/chat/*.

Почему архитектура простая в эксплуатации

  • Ясное разделение ролей: UI, API, очередь, хранилища.
  • Масштабирование по слоям: можно отдельно увеличивать API/Worker/DB.
  • Единая flow-логика для разных каналов без дублирования бизнес-правил.

Где смотреть детали