Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Конструктор ботов

Визуальный no-code редактор Telegram-ботов с настоящим RAG, мульти-провайдерным LLM и живым превью прямо в браузере.

Перетащили блоки → соединили стрелками → протестировали в чате справа → опубликовали. Без единой строки кода.

Python FastAPI React TypeScript PostgreSQL RabbitMQ Docker


Что это

Инструмент для сборки Telegram-ботов из визуальных блоков: триггеры, сообщения, условия, база знаний (RAG), обращение к LLM, работа с переменными — всё соединяется стрелками на бесконечном канвасе, как в n8n или Zapier, но заточено под ботов с диалоговой памятью и поиском по документам.

Ключевая идея — флоу реально исполняется на сервере, а не симулируется в браузере: тот же код, что гоняет тестовый чат в редакторе, потом обслуживает боевой трафик из Telegram.

Скриншоты

Редактор сценариев Нодовый граф, живой тест-чат справа, блок мигает зелёным во время исполнения.

Редактор сценариев

Настройка блока «Нейросеть» Модель, системный промпт с автоподстановкой RAG-контекста, быстрая вставка переменных одним кликом.

Инспектор блока LLM

Переменные диалога Создали переменную → перетащили на нужный блок как вход или выход → она сама подставляется в текст через {имя}.

Панель переменных

Живой прогон в чате Диалог реально проходит через сервер: RAG ищет по базе знаний, LLM отвечает, переменные подставляются на лету.

Тестовый чат

Возможности

  • 🧩 26 типов блоков по категориям — Триггеры (/start, расписание, реакция), Действия (сообщение, инлайн-кнопки, вопрос с сохранением ответа), Логика (условие, роутер, цикл, состояние), Интеллект (RAG, LLM, извлечение сущностей), Данные (Postgres, Google Sheets, HTTP), Сервис (аналитика, i18n).
  • 📚 Настоящий RAG-конвейер: загрузка PDF/DOCX/TXT/MD/URL → чанкинг с перекрытием → эмбеддинги → поиск по pgvector с порогом релевантности и опциональным cross-encoder реранком.
  • 🧠 Мульти-провайдерный LLM-роутинг: OpenAI, Anthropic и локальные модели через Ollama (CPU-friendly, без платного API-ключа) — переключаются одним полем в узле.
  • 🔤 Переменные диалога с drag&drop: боковая панель переменных, перетаскивание на вход/выход блока прямо на канвасе, быстрая вставка {имя} в любое текстовое поле.
  • 💬 Живой превью-чат: тот же серверный исполнитель флоу, что и в проде, стримит события через SSE — видно, какой блок сейчас активен и что он читает/пишет из памяти диалога.
  • 📡 Три канала выдачи: тестовый чат в редакторе, embeddable веб-виджет для сайта, боевой Telegram через long polling.
  • ⚙️ Асинхронная архитектура: FastAPI отдаёт лёгкие запросы, тяжёлую работу (RAG-ингест, генерация, доставка событий) разгребают воркеры через RabbitMQ — API никогда не блокируется на медленной модели.

Архитектура

flowchart LR
    subgraph Browser["Браузер"]
        FE["React + Vite\nредактор флоу"]
    end

    subgraph Stack["docker compose"]
        API["FastAPI\nauth · CRUD · SSE"]
        WORKER["worker\ningest · search · run"]
        POLLER["poller\nTelegram long polling"]
        PG[("PostgreSQL\n+ pgvector")]
        MQ[["RabbitMQ"]]
        OLLAMA["Ollama\nлокальные LLM"]
    end

    TG(("Telegram API"))

    FE -- "REST + SSE" --> API
    API -- "run/ingest/search jobs" --> MQ
    MQ --> WORKER
    WORKER -- "события по run_id" --> MQ
    MQ -- "SSE relay" --> API
    API --> PG
    WORKER --> PG
    WORKER -.-> OLLAMA
    POLLER --> MQ
    POLLER <--> TG
Loading

Подробности решений по стеку — в docs/BACKEND_PLAN.md.

Быстрый старт

git clone <repo-url> && cd aif-chat
docker compose up -d

Поднимает всё одной командой: Postgres+pgvector, RabbitMQ, API, worker, Telegram-поллер, Ollama (сам скачивает лёгкую модель llama3.2:1b) и фронтенд.

Первый email+пароль, которым вы залогинитесь, автоматически станет новым аккаунтом.

Технологии

Слой Стек
Frontend React 19, TypeScript, Vite, React Router — канвас на чистых pointer events, без графовых библиотек
Backend Python 3.12, FastAPI (async), SQLAlchemy 2 (async), Pydantic
База данных PostgreSQL 16 + pgvector — метаданные и векторы в одном месте
Очередь/шина событий RabbitMQ — джобы на ingest/search/run + SSE-relay через topic exchange
RAG Явный конвейер без LangChain/LlamaIndex: чанкинг с tiktoken, эмбеддинги (OpenAI / bge-m3 / e5), cross-encoder реранк
LLM OpenAI, Anthropic, локальные модели через Ollama
Инфраструктура Docker Compose, health-checked зависимости, fail-fast старт при недоступности БД/брокера

Структура репозитория

├── frontend/    React + TypeScript — редактор флоу, список ботов, встраиваемый виджет
├── backend/     FastAPI — API, RAG-конвейер, LLM-роутинг, исполнитель флоу, Telegram-поллер
├── docs/        архитектурные решения и скриншоты
└── docker-compose.yml

About

Telegram and embedded bot builder

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages