ИИ для сайта

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

Эдгар Косулин 7 мин чтения

Серия «ИИ-консультант на сайте» · часть 6 из 6

Содержание

29 октября вечером мы проверяли демо нашего ИИ-консультанта на живом магазине. Это сайт, который мы разрабатывали для клиента: в карте сайта 1 736 адресов, почти все карточки товаров. Демо прочитало 300 страниц за 2 минуты 43 секунды, и мы задали боту семь вопросов, какие задал бы покупатель.

Адрес, часы работы и график на праздники бот назвал верно. А на вопрос «А на 1000 руб заказать можно?» ответил, что в прайсе много позиций дешевле 1 000 ₽, «так что собрать заказ на такую сумму вполне реально», а есть ли минимальная сумма, он точно не знает. На странице «О нас» при этом прямо написано: «Заказы до 10 тыс. рублей не принимаются». Мимо прошли ещё два вопроса: про доставку по России и про то, есть ли на сайте страница «О нас». Сама страница была прочитана.

Первая мысль была неприятная: так придётся чинить бота под каждый сайт. Разобрались, и оказалось наоборот: так ломается любой магазин с большим каталогом, и причина одна для всех.

Как бот ищет ответ на сайте

ИИ-консультант не держит весь сайт в голове. Он режет страницы на фрагменты по несколько абзацев, и на каждый вопрос покупателя ищет среди них подходящие. В ответ идут только найденные фрагменты. На этом магазине из 300 страниц вышло 833 фрагмента.

Ищет он обычно по смыслу. Это называется векторным поиском: каждый фрагмент превращается в набор чисел, который описывает его смысл, и бот берёт фрагменты, близкие по смыслу к вопросу. Слова при этом могут не совпадать: на вопрос «сколько везти до Казани» найдётся абзац про сроки доставки, где Казань не упомянута. Для сайта услуг с парой десятков страниц это работает хорошо.

Почему условия тонут в каталоге

В магазине сотни карточек товаров, и в каждой цена в рублях. Для векторного поиска любая такая карточка похожа на вопрос «можно заказать на 1000 руб» сильнее, чем одна фраза на «О нас». Нужный фрагмент оказался на 200–400-м месте из 833 и до бота просто не дошёл. Он честно ответил по тому, что ему принесли: по ценам из прайса.

Так же утонули доставка и сама страница «О нас». Это не особенность одного сайта. Чем больше в магазине похожих карточек, тем глубже в выдаче окажутся условия, о которых спрашивают чаще всего.

Ещё две находки при разборе

Пока искали причину, нашли две проблемы на нашей стороне.

304 фрагмента из 833 были мусором. В разметке сайта стоят обработчики Alpine.js вида @click="… => …". Они сбивали наш разбор HTML, и хвост кода вместе с классами оформления уходил в текст страницы. Больше трети базы знаний бота занимали строки, которые покупатель никогда не видел.

Весь потолок демо ушёл на один раздел. Демо читает не больше 300 страниц и брало их в порядке «сначала короткие адреса». В итоге 172 карточки пришлись на самый большой раздел, а из нескольких крупных разделов не попало ни одной страницы. На вопрос о товаре из такого раздела бот ответить не смог бы.

Почему у других сайтов бот отвечает хорошо

У сайтов, где наш бот отвечает уверенно, заполнены два поля в кабинете: «О компании» и «Правила компании». Это короткий текст и список утверждений вроде «Доставка по городу бесплатна при заказе от 50 000 ₽». Бот держит их в каждом разговоре, без всякого поиска, поэтому условия не могут утонуть. Заполнены эти поля вручную.

У демо и у только что подключённого сайта эти поля пустые. Вся надежда на поиск, а поиск на каталоге, как видно выше, промахивается.

Что мы поменяли в боте

Исправляли в движке, а не под этот магазин, чтобы правки достались всем сайтам.

  • Поиск по словам рядом с поиском по смыслу. К найденному по смыслу бот добавляет до трёх фрагментов, в которых есть слова вопроса. Число из вопроса весит меньше слов: «1000» в вопросе это сумма покупателя, а на сайте такое число найдётся в сотне цен.
  • Условия выписываются сами. После первого чтения сайта модель один раз пробегает главную, «О нас», доставку, оплату и контакты и заполняет «О компании» и «Правила компании». Только пустые поля: то, что владелец написал сам, не трогается. Кабинет просит проверить, что получилось. Цены в правила не попадают, они меняются и остаются в страницах.
  • Код фреймворков в текст не попадает. Атрибуты Alpine, Vue и Livewire снимаются до разбора страницы.
  • Демо читает разделы по очереди. По одной карточке из каждого раздела каталога по кругу, а не подряд из одного.
  • Карточка называется по товару. Если у страницы нет заголовка h1, её имя берётся из заголовка в начале текста, а не из общего <title>.

На этом магазине модель выписала в правила «Минимальный заказ - 10 000 рублей», «Доставка возможна по России», адрес, часы и телефоны. После повторного чтения мусора в базе не осталось, а из каждого раздела попало от 21 до 28 карточек.

Что показал замер

Мы прогнали один и тот же набор базовых вопросов по пяти сайтам, включая этот магазин, до правок и после, по три раза на каждый вопрос.

Что включено Верных ответов
как было 54 из 69
только поиск по словам 55 из 69
все правки вместе 64 из 69

По общему счёту один поиск по словам почти ничего не дал, но именно он починил минимальный заказ и доставку на этом магазине и ещё на одном сайте. Остальной прирост дали условия в полях: с ними бот отвечает верно, даже когда поиск принёс не ту страницу. На самом магазине стало 25 верных ответов из 27 вместо 19. Медиана времени ответа упала с 11,3 до 5,4 секунды: боту реже приходится искать по второму и третьему разу.

Что мы не чинили: это дело сайта

Три вещи на этом магазине бот исправить не может, их правят на сайте.

Страницы разделов без текста. В HTML страницы раздела нет сетки товаров, только заголовок. Бот читает HTML и видит почти пустую страницу.

Битые адреса в карте сайта. Часть адресов из sitemap.xml отдаёт 404. Карта говорит боту и поисковикам, что читать на сайте, и битый адрес в ней ведёт в пустоту.

Один <title> на все карточки. Если у тысячи товаров одинаковый заголовок окна, различить их по нему нельзя ни боту, ни поисковику. Об этом же мы писали в статье о том, как сделать сайт видимым для нейросетей.

Что проверить на своём сайте

Эти советы работают с любым ИИ-консультантом, не только с нашим.

  • Условия текстом и словами покупателя. Минимальный заказ, доставка, оплата, часы и адрес должны быть написаны так, как о них спросят: «минимальный заказ», «доставка по России», а не только «работаем с оптовыми клиентами».
  • На отдельной неглубокой странице. «Доставка и оплата» по адресу вида /dostavka, а не абзац в середине истории компании и не вкладка в карточке товара.
  • Не только на картинке. Условие на баннере для бота не существует. Подробнее о том, что подготовить до подключения, в статье о подключении ИИ-консультанта.
  • Карта сайта без 404 и одинаковых заголовков. Откройте sitemap.xml, проверьте десяток адресов из разных разделов и посмотрите заголовки окон у пары карточек.
  • Пять-семь базовых вопросов до запуска. Минимальный заказ, доставка в другой город, оплата, часы, адрес, «есть ли у вас X». Если бот ответил мимо, а условие на сайте есть, дело почти всегда в том, что поиск его не нашёл.
  • Условия в настройках бота. Если у сервиса есть поле для фактов о компании, которые бот знает всегда, впишите туда главное. Это надёжнее любого поиска.

Как бот работает с каталогом, ценами и наличием, мы разбирали во второй части серии.

Как это устроено на Siteko. В кабинете ИИ-консультанта, в разделе «Настройки бота», есть поля «О компании» и «Правила компании»: бот знает их в каждом разговоре. После первого чтения сайта модель заполняет пустые поля сама, с главной, «О нас», доставки, оплаты и контактов, и кабинет просит проверить результат. Проверьте и допишите то, чего нет на сайте. Кнопка «Показать промпт» там же покажет, что бот получит в итоге.

Если бот уже стоит и отвечает мимо, начните с одного вопроса: написано ли это условие на сайте текстом и на какой странице. Если написано, впишите его в правила бота, и ответ станет верным со следующего вопроса.

Серия

ИИ-консультант на сайте

  1. 1. Чат-бот для сайта: ИИ, сценарии или живой оператор
  2. 2. Чат-бот для интернет-магазина: подбор товаров, цены и наличие
  3. 3. Бесплатный чат-бот для сайта: какие бывают и где подвох
  4. 4. Как подключить ИИ-консультанта на сайт: пошагово
  5. 5. Разработка чат-бота для сайта или готовый сервис
  6. 6. Чат-бот не находит ответ, который есть на сайте: почему условия магазина тонут в каталоге

Интернет-магазин

Поделиться: Telegram ВКонтакте

Новые статьи и разборы — в канале Siteko: Telegram MAX

Подписчикам: +30 дней к пробному хостингу, клиентам: +150 ₽ на баланс

Пошаговые инструкции по нашим услугам — в базе знаний

Ещё по теме

ИИ для сайта 6 мин чтения

llms.txt: что это за файл и нужен ли он вашему сайту

Что такое файл llms.txt, чем он отличается от robots.txt и sitemap.xml, как выглядит внутри, что изменилось в версии 2 и работает ли он на самом деле, с честным ответом про поддержку у Google, OpenAI и Anthropic.

«Нейросети без магии», часть 3

ИИ для сайта 7 мин чтения

Как сделать сайт видимым для нейросетей

Как нейросети узнают про сайты, какие боты за это отвечают, как проверить, не закрыты ли они в robots.txt, почему сайт на JavaScript для них пустой и что можно сделать, не обещая себе гарантий.

«Нейросети без магии», часть 2

ИИ для сайта 7 мин чтения

Сайт сделала нейросеть: что получается на самом деле

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

«Нейросети без магии», часть 1