Перейти к содержимому
Олимжон Ахмаджонов
Все работы

Кейс

AI-аналитик как SaaS: вопросы к базе данных и документам на обычном языке

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

Клиент
Собственный SaaS-продукт (Узбекистан и СНГ)
Роль
Основатель-инженер — исследование, архитектура, full stack, эксплуатация
Сроки
Исследование → MVP в продакшене
Стек
PythonFastAPIPostgreSQL + pgvectorsqlglotOpenAI / AnthropicaiogramReactTypeScriptVega-Lite

Задача

Малый и средний бизнес в регионе хранит данные в базах, учётных выгрузках и таблицах, но у него нет ни аналитика, ни BI-системы. Обычные чат-боты либо не могут добраться до данных, либо выдумывают цифры.

Продукт должен был отвечать на реальные вопросы по реальным данным — безопасно: AI никогда не должен иметь возможности изменить или слить базу клиента, а арендаторы не должны видеть данные друг друга.

Подход и архитектура

  • Начал с исследования рынка и конкурентов, видения, архитектуры, дорожной карты и этапов M0–M8 — девятнадцать проектных документов до первого коммита.
  • Движок не зависит от канала: он выдаёт типизированные события ответа из ограниченного цикла инструментов (выполнить SQL, описать схему, найти в знаниях, построить график) — у веб-приложения и Telegram-бота один «мозг».
  • SQL-шлюз разбирает каждый сгенерированный запрос — только SELECT, разрешённые функции, лимиты строк — и выполняет его в read-only транзакции с таймаутами и circuit breaker.
  • Семантический слой: схема считывается, LLM предлагает бизнес-описания, владелец их подтверждает; проверенные запросы переиспользуются через векторное сходство. Вопросы по документам — гибридный векторный и полнотекстовый поиск со ссылками на источники.

Результат

  • MVP в продакшене с непрерывной поставкой: каждый push в main проходит линтеры, тесты, оценку качества и деплой с проверкой здоровья.
  • Ответ приходит карточкой: переформулированный вопрос, таблица, график, подсказки следующих вопросов и панель «как посчитано».
  • Веб-приложение, Telegram-бот и вход через Telegram Mini App работают на одном бэкенде.

Что обеспечило надёжность

  • Изоляция арендаторов через row-level security на каждой таблице; учётные данные источников зашифрованы AES-GCM; пароли на argon2 и rate limiting.
  • Корпус из 49 SQL-инъекций, которые должны быть заблокированы все, иначе merge не пройдёт, и порог качества ответов не ниже 90%.
  • 160+ тестов, сквозные проверки в headless-браузере, ежедневные бэкапы базы и инструкция по эксплуатации.

Похожая задача?

Расскажите о ней — честно оценю объём, подход и то, каким может быть первый этап.

Обсудить проект

Расскажите о задаче — достаточно нескольких предложений.

Отвечаю в течение 1–2 рабочих дней. Или напишите напрямую: oakhmadjonov.uz@gmail.com