Перейти к содержимому
Кейс · Сеть студий красоты, Санкт-ПетербургAI-ассистент в Telegram · RAG + multi-LLM · YClients tools

AI-агент для автоматизации консультаций и записи в сети студий красоты NailLounge

AI-ассистент в Telegram закрывает 70–80% типовых обращений клиентов мгновенно: отвечает на вопросы по услугам и ценам, бронирует визиты в YClients, шлёт напоминания и эскалирует сложные случаи живому администратору.

Итог: Администраторы освободились от 6–8 часов рутинной переписки в день; время ответа клиенту в пиковые часы упало с 15–40 минут до <3 секунд; запись через AI занимает 60–90 секунд против 5 минут диалога с человеком.

70–80%

обращений закрывает AI без эскалации

<3 сек

время первого ответа клиенту

~10×

снижение LLM-costs за счёт роутинга

100%

покрытие напоминаниями за 24 и 2 часа

Исходная задача

С чем пришёл клиент

Администраторы NailLounge тратили 60–70% рабочего времени на переписку с клиентами: одни и те же вопросы про цены, расписание мастеров, переносы записей. На реальную работу с клиентом в зале времени не оставалось.

В пиковые часы клиент ждал ответа 15–40 минут — часть отваливалась и уходила к конкурентам, у которых есть онлайн-запись или живой чат с быстрым ответом.

Нужен был AI, который снимает рутину без потери качества: говорит точными ценами и расписанием из YClients, не выдумывает, эскалирует сложные случаи живому администратору, и стоимость работы должна разумно масштабироваться с нагрузкой.

Подход

Как мы это решали

Шаг 01

AI-ассистент в нескольких точках входа Telegram

Единый агент доступен в личном чате бота @NailLoungeBot, в бизнес-чатах салонов и в Telegram Mini App. Унифицированный адаптер каналов передаёт сообщения в общий формат — оркестратор не различает источник, клиент получает одинаковый опыт независимо от точки входа.

Шаг 02

Оркестратор с state-machine диалога

Сердце агента: хранит контекст (idle → consultation → booking → confirmation → done), маршрутизирует каждое сообщение по сложности, отслеживает confidence-уровень ответа и решает — отвечать самому, вызвать инструмент или эскалировать живому оператору.

Шаг 03

Multi-LLM роутинг с cost optimization

Простые FAQ идут в GPT-4o-mini или Claude Haiku (~$0.001 за диалог), booking-сценарии с tools — в GPT-4o или Claude Sonnet (~$0.02), классификация интента — в локальную Mistral 7B на собственном GPU. Снижение costs ~10× против варианта «всё в Sonnet», без падения качества пользовательского опыта.

Шаг 04

RAG над знаниями салона

Векторный индекс на pgvector с BGE-M3 эмбеддингами поверх услуг, цен, описаний, политики отмены, профилей мастеров. Salon-aware фильтрация — клиент студии на Маяковской никогда не получит цены студии на Комендантском. Модель отвечает строго из подтверждённой базы и физически не может выдумать цену.

Шаг 05

Безопасный tool-слой к YClients

Функции find_services, find_masters, find_slots, create_booking, cancel_booking, notify_admin — каждая обёрнута zod-валидацией входов и стандартизированным envelope { ok, data, audit } для полной прослеживаемости. Write-операции (бронь, отмена) требуют двухступенчатого подтверждения от пользователя — модель не создаёт запись без явного «да».

Шаг 06

Эскалация в человека с готовым summary

При confidence <0.7 или явной просьбе клиента агент молча передаёт диалог администратору с готовым саммари: тема, тон, история сообщений, причина эскалации. Админ открывает чат уже в курсе — без потери контекста и без необходимости переспрашивать.

Шаг 07

Reminders за 24 ч и 2 ч до визита

Отдельный воркер на cron берёт из YClients предстоящие визиты и шлёт personalized-напоминания тоном бренда. Если клиент отвечает «не приду» — агент автоматически отменяет запись в YClients и предлагает другую дату. 100% покрытие напоминаниями вместо ручного обзвона с пропусками.

Шаг 08

Self-learning через few-shot evolution

Удачные диалоги (закончились бронированием с положительной оценкой) автоматически попадают в датасет примеров для системного промпта. Неудачные — в issue tracker с причиной. Раз в 2 недели обновляются эмбеддинги RAG. Качество растёт без классического fine-tune — стоимость прогона остаётся стоимостью одного промпта.

Стек

На чём собрано

Runtime и архитектура

  • · Node.js 22 + TypeScript strict
  • · Микросервисная архитектура: 5 сервисов (channels, orchestrator, RAG, tools, reminders)
  • · Docker + docker-compose для dev, Coolify для прод

LLM-стек

  • · OpenAI SDK (GPT-4o, GPT-4o-mini)
  • · Anthropic SDK (Claude Sonnet 4.5, Claude Haiku 4.5)
  • · Google Gemini API
  • · Локальная Mistral 7B через llama.cpp на собственном GPU
  • · Кастомный router-слой с failover и cost-aware маршрутизацией

RAG и поиск

  • · pgvector (Postgres extension) для векторного индекса
  • · BGE-M3 для мультиязычных эмбеддингов
  • · Кастомный chunking с учётом структуры документов салона
  • · Re-ranking через cross-encoder для top-K результатов

Каналы

  • · grammY (Telegram Bot API, long polling)
  • · Telegram Mini App для in-app сценариев
  • · HTTPS webhook на Express для прочих интеграций

Интеграции

  • · YClients API — read + write (услуги, мастера, слоты, бронь, отмена)
  • · Yandex.Метрика для event tracking диалогов и конверсий
  • · Twilio как SMS-fallback при недоступности Telegram

Observability и безопасность

  • · OpenTelemetry для distributed tracing
  • · Prometheus + Grafana для метрик и дашбордов
  • · Sentry для ошибок и алертов
  • · PII-стиральная машина: телефоны/имена/email маскируются перед отправкой в LLM
  • · Tool-allowlist + confirmation gates на write-операции
  • · Rate limiting per user и per salon

Вопросы, которые чаще всего задают по проекту

Коротко по техническим и продуктовым решениям NailLounge.