Свой AI-помощник вместо Replain: единый чат на всех лендингах и сайте

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

В итоге появился свой помощник. Теперь на всех шести лендингах и на krivoshein.site стоит один AI-чат: он знает, на какой странице человек находится, отвечает по теме и умеет оставлять заявку сразу в MAX-канал.

Зачем вообще менять

Replain решал базовую задачу: дать человеку возможность написать. На практике мешало несколько вещей:

  • виджет ничего не знал про конкретный лендинг;
  • заявки жили в отдельной системе;
  • не было нормальной связи с тарифами и услугами;
  • на мобильном он часто мешал;
  • приходилось поддерживать два разных канала общения.

Нужен был один помощник, который понимает контекст и сразу работает с уже существующей инфраструктурой.

Что получилось

Помощник собран на базе уже существующего Python-бэкенда (тот же, что обслуживает бота в MAX). Сверху добавлен лёгкий JS-виджет.

Основные возможности:

  • понимает, на каком лендинге открыт (bots, vps, direct, wordpress, landing, ai-ready или основной сайт);
  • приветствует и отвечает по теме страницы;
  • знает актуальные тарифы из llms.txt;
  • умеет оставлять заявку: она приходит в MAX-канал;
  • поддерживает русский и английский;
  • подстраивается под светлую и тёмную тему;
  • на мобильном старается не мешать: скрывает нижние CTA, когда открыт, корректно работает с клавиатурой.

Как устроена подача знаний

Основной источник правды: llms.txt. На главном сайте лежит полный вариант, на каждом лендинге: более короткий и заточенный под услугу.

Виджет при открытии запрашивает bootstrap с указанием текущего host. Бэкенд подмешивает нужный контекст в system prompt. Поэтому на bots.krivoshein.site помощник говорит про ботов, а на vps: про серверы.

Мобильный UX

Самое больное место оказалось на телефоне. Когда появляется клавиатура, места катастрофически мало.

Что сделано:

  • на мобильном убраны quick-replies, чтобы освободить пространство;
  • при открытии панели скрывается нижняя полоса кнопок (.mobile-cta-bar);
  • используется visualViewport, чтобы панель корректно сжималась под клавиатуру;
  • поле ввода старается оставаться видимым.

Идеально ещё не везде, но уже можно нормально писать, а не ловить поле где-то за клавиатурой.

AI-помощник на мобильном: открытый чат поверх лендинга
Ответ AI-помощника по теме страницы на телефоне

Защита от спама

Раз виджет теперь торчит и на публичном GitHub Pages, добавлены простые ограничения:

  • rate-limit по IP;
  • не больше 10 заявок с одного IP в сутки;
  • honeypot-поле;
  • CORS только на свои домены.

Для обычного человека лимиты с большим запасом. Для того, кто захочет долбить API, уже неприятно.

Где сейчас стоит

Replain со всех этих мест убран.

Что ещё можно улучшить

Пока живой список:

  • ещё чуть дожать мобильный UX формы заявки;
  • сделать ответы на главном сайте живее (меньше шаблонов на простые реплики);
  • добавить кликабельные ссылки в ответах, если где-то ещё остались plain-text URL;
  • продумать единый способ обновления версии виджета (скрипт уже есть на сервере).

Вывод

Свой помощник оказался удобнее чужого виджета. Главное: он сидит на той же инфраструктуре, что и MAX-бот, знает контекст страницы и не плодит лишние системы.

Пока это рабочий MVP. Дальше: тесты на реальных обращениях и подчистка мелочей.

Источники и ссылки


Комментарии загружаются…