Перейти к содержимому
llmagentLLM-Агент Документация

Каталог

Как подключить YML-фид к агенту llmagent, что бот берёт из него, как устроен поиск по товарам и как товары попадают в ответы.

Каталог подключает бота к вашему ассортименту: клиент спрашивает «есть ли у вас …» — бот находит подходящие позиции и отвечает с названием, ценой, наличием и ссылкой на товар. Источник каталога — YML-фид: та же выгрузка, которую сайты готовят для Яндекс Маркета.

Раздел «Каталог» находится в кабинете app.llmagent.ru. Каталог привязан к боту: одна ссылка на фид на бота. Объём базы знаний каталог не расходует — он хранится отдельно.

Порядок шагов выведен из разбора реальной ошибки, и он важнее любой настройки:

  1. Точный артикул. Если в запросе есть код товара, он решает всё.
  2. Раздел задаёт множество. Слова вроде «что есть для сада» сначала превращаются в раздел каталога, и дальше бот ищет внутри него. Это принципиально: у трети товаров раздела слова из названия раздела в названии товара нет — включая самые дорогие позиции.
  3. Фильтры и сортировку считает сам каталог. «Самый дорогой в разделе» берётся сортировкой по всему разделу, а не выбором максимума из десятка найденных по названию.
  4. Название решает порядок внутри отобранного. Ищется по смыслу: «канцелярия» находит «Канцелярские товары», хотя слово в слово они не совпадают.

Если раздел из запроса узнать не удалось, бот не подменяет его тихо всем каталогом — иначе «самый дорогой в Грунтах» превратился бы в уверенный ответ не на тот вопрос.

Когда бот отвечает клиенту, он получает из каталога обычно 10 позиций, а при необходимости — до 20: название, цена, описание, производитель, артикул, категория, наличие, характеристики и ссылка. По умолчанию бот предлагает только товары в наличии — то, что помечено в фиде как отсутствующее, клиенту не показывается. В чатах сотрудников бот обращается к каталогу столько раз, сколько нужно для ответа.

Каталог начинает работать не весь сразу. Сначала в кабинет попадают сами товары — и тут же работают разделы, фильтр по цене, точный артикул и просмотр раздела. Поиск по смыслу дозревает следом.

Повторная синхронизация неизменившегося фида проходит почти вхолостую: обновляются только те товары, что поменялись, пропавшие снимаются, остальные не трогаются. Наполовину обновлённый каталог не «сломан» — у части товаров новая цена, у части старая, ровно как на витрине магазина в момент выгрузки.

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

  1. Подготовьте YML-фид и убедитесь, что он доступен по прямой ссылке без авторизации.
  2. В разделе «Каталог» вставьте ссылку и подключите каталог. Ссылка сразу проверяется: если фид недоступен, кабинет об этом скажет.
  3. Проверьте результат: в шапке раздела появятся число товаров и время обновления, слева — «Разделы» со счётчиками, справа — поиск с фильтрами по наличию и цене. Кабинет ищет ровно так же, как бот, — это честный способ проверить, что он найдёт клиенту.

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

Поле фидаКак используется
nameНазвание; главное поле поиска. Для товаров, описанных в фиде как vendor.model, название собирается из typePrefix + vendor + model
priceЦена; участвует в фильтрах и сортировке
descriptionОписание: HTML-разметка вычищается
vendor, vendorCodeПроизводитель и артикул; точный артикул — самый сильный сигнал
urlСсылка на товар в ответе бота; UTM-метки автоматически убираются
categoryId + <categories>Категория и всё дерево родителей — по ним работает отбор по разделу
availableНаличие; товары не в наличии бот клиенту не предлагает
paramunit)Характеристики; показываются в карточке товара и участвуют в поиске
disabled="true"Такие товары в каталог не попадают вовсе

Изображения из фида не используются — бот работает с текстовыми данными.

Неудачная синхронизация не портит рабочий каталог: бот продолжает отвечать по последней удачной версии. Кабинет покажет конкретную причину под заголовком «Фид не прочитан» — не удалось загрузить, каталог пуст и так далее.

Если чтение оборвалось и раздел завис на сообщении «Каталог обрабатывается», кабинет сам заменит его на понятную ошибку — вместо того чтобы вечно показывать обработку.

  • Название — главное поле. «Смеситель для кухни Vidima Uno, хром» найдётся по десятку формулировок; артикул вместо названия — только по артикулу.
  • Заполняйте vendorCode. Запрос по артикулу — самый точный сценарий.
  • Стройте дерево категорий через parentId. На нём держится отбор по разделу — самый важный шаг поиска. Категории-«солянки» без родителей эту связь теряют.
  • Выносите свойства в param. Размер, цвет, материал, мощность как характеристики ищутся и аккуратно показываются в карточке.
  • Следите за available. Товары не в наличии бот клиенту не предложит — фид со стёртым наличием равносилен пустому каталогу.