Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Всем привет! Вот и настал тот день, когда мне приспичило сделать своего чат-бота с ИИ. И не просто чат-бота а целый конструктор чатботов с ИИ ассистентом.

Недавно на бесплатном мастер-классе от известной учебной платформы проходили реализацию чат-бота в Telegram с использованием ИИ. Бот строился на базе no-code платформы Salebot. Это платформа с множеством функций, где действительно можно достаточно быстро собрать своего бота. В целом она неплохая: низкий порог вхождения, небольшая стоимость (около 2 т.р./месяц), удобный интерфейс.

Однако, как и у всех подобных систем, есть минусы: результат не всегда прогнозируемый, иногда ошибки появлялись и исчезали сами по себе. После многократной переделки процесса и поиска багов меня посетила идея: сделать свой конструктор чат-ботов.

Конечно, спроектировать и разработать конструктор — это не бином Ньютона, и опыт разработки подобных систем у меня был в прошлом. Но, к сожалению, свободного времени, как раньше, у меня нет, а ум требует творить. Подобная система с минимальным функционалом — это примерно не менее 60 часов работы. Что ж, вызов принят. Ну, начнём.

Проектирование

Начну я с упрощённой модели работы конструктора Salebot. Предположим, что схема состоит из функциональных блоков, которые связаны между собой.

Сценарий — это последовательность функциональных блоков. Каждый блок содержит:

  1. Уникальный номер (ID).
  2. Код выполнения на языке Python. На мой взгляд, это самый подходящий скриптовой язык для таких задач: низкий порог входа, простота и огромное комьюнити.
  3. Логика переходов. В коде я буду обозначать условные и безусловные переходы к другим блокам, а также вывод меню.
  4. Хранение контекста. Значения, которые мы собираем у пользователей, будем хранить в отдельном справочнике Key -> Parameter. Для сохранения и получения буду использовать методы вида SetParam(..) и GetParam(..).
Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Базово разделю свой конструктор на серверную (Backend) и фронтовую (Frontend) части. Начнём с серверной части, стек — Python.

Детально заострять ваше внимание на самом процессе проработки архитектуры не буду, так как это происходило по большей части в голове. В качестве результата я сформировал подробный промт для построения подобной системы, который и стал фундаментом.

# Промт для разработки конструктора Telegram-бота Напиши Telegram-бота с использованием следующего ключа: `82******:**********************nE8` Бот должен последовательно собирать у пользователя: - ФИО - Возраст - Рост - Вес После сбора всех данных — вывести сводку с полученными значениями. --- ## Техническое задание: Chatbot Manager Engine ### 1. Общее описание Необходимо спроектировать и реализовать backend-приложение «Менеджер чат-бота». **Ключевая особенность**: Логика диалога (сценарий) не зашита в коде, а хранится в базе данных в виде Python-скриптов и выполняется динамически. Система должна быть модульной (поддержка Telegram, VK и др.), но на этапе MVP требуется полная реализация **только для Telegram**. --- ### 2. Стек технологий - **Язык**: Python 3.10+ (обязательны Type Hints) - **Telegram API**: `aiogram 3.x` - **База данных**: SQLite (`bot.db`) с возможностью миграции на PostgreSQL - **ORM**: SQLAlchemy 2.0+ (стиль Declarative Base) - **Настройки**: Переменные окружения (`.env`, `pydantic-settings`)

Полный текст промта тут не поместился и я его выложил в Git:

Архитектура и База Данных

Архитектура получилась следующая:

Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.
Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.
Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

ER Диаграмма

Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Для реализации гибкости нам нужны 4 основные таблицы. Вот как они выглядят в SQLAlchemy:

Table: blocks (Сценарий)

ПолеОписаниеidInteger (PK) — Уникальный ID блока.nameString — Служебное название.script_codeText — Python-код, выполняемый в этом блоке.is_startBoolean — Флаг стартового блока.

Table: user_sessions (Состояние)

ПолеОписаниеuser_idString — ID пользователя (внешний).current_block_idInteger (FK) — Ссылка на текущий блок.updated_atDateTime — Время последнего действия.

Table: trace (Логирование / История)

Важно: Хранит полную историю запросов и ответов для отладки.

ПолеОписаниеblock_idInteger (FK) — В каком блоке находился юзер.directionString — 'inbound' (от юзера) или 'outbound' (от бота).contentText — Текст сообщения.

Ядро системы (Core Engine)

Класс ChatbotEngine отвечает за выполнение сценария. Это сердце нашего конструктора.

Контекст исполнения (exec sandbox):Внутри скрипта, лежащего в БД, доступны следующие "магические" функции:

  • input_text: Текст сообщения от пользователя.
  • event: Тип события ('message' — ответ пользователя, 'enter' — вход в блок).
  • set_param(key, value) / get_param(key): Работа с памятью.
  • send_message(text): Отправка ответа + логирование в trace.
  • go_to(block_id): Переход на другой блок.

Пример "Seed" сценария для инициализации:

# Блок 1 (Start) if event == 'enter': send_message("Привет! Как тебя зовут?") elif event == 'message': set_param('name', input_text) go_to(2)

Запуск генератора кода и первые результаты

Теперь осталось дело за малым — выбрать систему для "вайб кодинга". В этот раз решил попробовать новомодный инструмент Antigravity. Вы можете использовать уже проверенный Cursor.

Пока у нашего бота нет веб-интерфейса, корректировать логику приходится прямо в БД. Запускаем HeidiSQL, открываем нашу таблицу. Как мы видим, AI справился очень неплохо.
Пока у нашего бота нет веб-интерфейса, корректировать логику приходится прямо в БД. Запускаем HeidiSQL, открываем нашу таблицу. Как мы видим, AI справился очень неплохо.
Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Добавление умных ассистентов (GigaChat)

Простой линейный бот — это скучно. Подключим к нему "мозги". Я разработал архитектуру подключаемых модулей. Ниже представлен код модуля интеграции с GigaChat.

import requests import uuid import time from datetime import datetime class GigaChatAssistant: def __init__(self, auth_key, system_prompt=None): self.auth_key = auth_key self.access_token = None self.token_expires_at = None self.chat_url = 'https://gigachat.devices.sberbank.ru/api/v1/chat/completions' self.conversation_history = [] if system_prompt: self.conversation_history.append({ 'role': 'system', 'content': system_prompt }) def get_access_token(self): # Логика получения и обновления токена # ... (сокращено для статьи) pass def ask_gigachat(self, question, model="GigaChat"): token = self.get_access_token() if not token: return None self.conversation_history.append({'role': 'user', 'content': question}) headers = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json' } # ... отправка запроса ... return answer

Генератор справился с требованиями. Я добавил этот код в проект, создал стартовый блок с вызовом модуля, и бот "ожил".

Реализация интерфейса конструктора

Бэкенд готов, но править скрипты в базе данных — удовольствие сомнительное. Для полноценного продукта нужен UI. Я сгенерировал фронтенд (административную панель) со следующими возможностями:

Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.
Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.
  • User Management: Управление пользователями, просмотр trace-логов, поиск по имени (формат @Example).
  • Visual Flow Editor: Визуальное отображение блоков, drag-and-drop.
  • Code Editor: Редактирование Python-кода блока в браузере с подсветкой синтаксиса, форматированием и кнопкой тестирования.
  • Trace & Debug: "Режим бога" — возможность просмотра переменных сессии и принудительного изменения текущего блока пользователя.
Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Запуск

Как я завайбил на Antigravity свой low-code конструктор чат-ботов с блэкджеком и AI-ассистентом: от идеи до реализации.

Результат и выводы

В итоге получился полностью рабочий MVP конструктора. Сам процесс создания получился интересным и увлекательным. Никакой рутины — только реализация идеи. Инструменты AI-генерации кода позволили пропустить этап написания бойлерплейта и сосредоточиться на архитектуре.

Запуск бота

Планы по развитию:

  • Ролевой доступ к админке.
  • Мультисценарность (несколько ботов в одной БД).
  • Интеграция VK и YandexGPT.
  • RAG для работы с документами.
  • Омниканальность (склеивание профилей по телефону).
Начать дискуссию