AISellerBot — AI-продавец для интернет-магазинов
Мультитенантная SaaS-платформа: встраиваемый виджет на Preact, FastAPI-бэкенд, RAG по каталогу 134K+ товаров с GigaChat и pgvector.
Задача клиента
RAG-агент с 10 инструментами
ReAct-цикл, семантический кэш, гибридный поиск
Агент работает по схеме «рассуждение, действие, наблюдение»: на каждом шаге выбирает нужный инструмент, получает данные и формирует ответ. Перед обращением к модели проверяется семантический кэш частых вопросов, длинная история диалога сворачивается в краткое резюме, а ответ проходит постобработку перед отправкой покупателю.
Встраиваемый виджет на Preact
Изоляция в Shadow DOM, WebSocket, группы проектов
Один скрипт монтирует чат в изолированный Shadow DOM любого сайта и читает настройки из атрибутов тега. Внутри – пузырь-иконка, панель диалога, карусель карточек товаров и согласие на обработку данных. Связь идёт по WebSocket с авто-переподключением и очередью сообщений на время потери сети.
Multi-tenant архитектура
Тенант, участники, проекты и группы проектов
Три уровня изоляции данных. Тенант – расчётная единица с тарифом. Участник может состоять в нескольких тенантах с разными ролями. Проект – отдельная витрина-магазин внутри тенанта, а группа проектов объединяет несколько витрин под одного бота. Доступ к данным проверяется на каждом запросе, чужие записи не видны.
Загрузка каталога и базы знаний
6 форматов фидов, краулер сайта, документы
Каталог подключается из товарных фидов или собирается прямо с сайта, если фида нет: парсер извлекает данные из разметки страницы. Поддержаны популярные форматы выгрузок и обмен с 1С. База знаний наполняется обходом информационных страниц сайта и загрузкой документов, при синхронизации меняются только изменившиеся записи.
Встраиваемый виджет
Настраиваемое поведение
Каждый аспект бота конфигурируется через admin-панель
Проактивные триггеры
По URL, времени на странице, попытке ухода, сигналу корзины или простою
A/B-эксперименты
Стабильное разделение посетителей по группам
Профили посетителей
Долгая память по каждому посетителю проекта
Шаблоны поведения
Пресеты под вертикаль: товары, услуги, B2B
Передача оператору
Эскалация в очередь обращений: взять, отпустить, закрыть
Свои промпты
Тон, факты и примеры ответов под магазин – в базе
Архитектура
Виджет на сайте клиента: чат с подбором товара
Preact 10 в shadow-root, не конфликтует с CSS магазина. ProductCarousel рендерит карточки из каталога, handoff на оператора через needs_human=TRUE.
Inbox оператора: handoff от бота
Бот ставит needs_human=TRUE по escalation_rules (жалоба, цена, юр. вопрос, требование контакта). Оператор делает claim, отвечает, release/close.
| Пользователь | Последнее сообщение | Канал | Сентимент | Ждёт | Действие |
|---|---|---|---|---|---|
| Гость #21408 | Спасибо, оформляю! | site | positive | 12 мин | бот |
| Гость #21407 | У вас на сайте 2 190, а тут — почему? | site | neutral | 3 мин | |
| Гость #21396 | Перезвоните пожалуйста, +7 905 *** | VK | neutral | 1 мин | |
| Гость #21391 | Брак, банка вскрыта | TG | negative | 8 мин | |
| Гость #21384 | Можно ли смешать VGT и Текс? | site | neutral | 20 мин | бот |
Аналитика диалогов и интентов
Метрики из ai_queries: диалоги, leads из create_lead, время ответа, доля автоматизации. Топ-интенты обновляются каждый час.
Технический стек
Результаты
"AI-консультант, который держит весь каталог в векторном индексе, отвечает за секунды и работает 24/7 без выходных. В демо это уже рабочий прототип, а не слайд с обещаниями"