ИИ-ассистент магазина: как ограничить ответы данными каталога и заказов
+7 (800) 444-11-27
Позвоните — обсудим ваш проект
Сергей CCO FITTIN
Сергей CCO FITTIN
Напишите мне в Telegram
Обсудить проект
ИИ-ассистент магазина: как ограничить ответы данными каталога и заказов

ИИ-ассистент магазина: как ограничить ответы данными каталога и заказов


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

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

Ассистент, который отвечает только по данным магазина

Определение на техническом языке

Ассистент магазина с ограниченными ответами — диалоговый интерфейс над языковой моделью (LLM, large language model), где формулировку даёт модель, а факты приходят из трёх источников магазина: каталога, базы знаний и системы заказов. Модель получает вопрос покупателя вместе с найденными фрагментами этих источников и отвечает только по ним. Когда поиск ничего не нашёл, ответ не формулируется: вопрос уходит оператору или закрывается заранее утверждённой формулировкой отказа. Такой подход в индустрии называют ответом по найденным документам, или RAG.

Бизнес-перевод: три границы ответа

Для бизнеса ограничение раскладывается на три границы, и каждая задаётся отдельно:

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

Границы проверяются независимо друг от друга: тематическую закрывает классификатор вопроса, фактическую задаёт состав переданного контекста вместе с проверкой ответа, субъектную держит авторизация в системе заказов.

Эффект ограничения ответов для бизнеса

Ограничение источников меняет не только тон переписки с покупателем, но и экономику поддержки.

Меньше ошибочных обещаний покупателю

Неверно названная цена и подтверждённое наличие отсутствующего товара возвращаются в магазин отменой, возвратом или претензией. Когда ответ строится из полей каталога, этот класс ошибок сжимается до случаев, когда данные неверны в самом каталоге. Такая задача управляема: её закрывают регламентом обновления данных, а не настройкой модели.

Разгрузка первой линии поддержки

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

Ограничения ассистента на данных магазина

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

Архитектура: каталог, база знаний и система заказов

Каталог как источник истины по товарам

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

База знаний для условий и правил

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

Система заказов как источник по сделке

Статус, состав, сумма, трек-номер и дата отправки берутся из системы заказов по идентификатору покупателя. Эти данные не индексируются и не хранятся в поисковом слое ассистента: они запрашиваются на каждый вопрос и не сохраняются после диалога.

Маршрутизация вопроса к источнику

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

Маршрут вопроса и поведение ассистента, когда данных нет

Тип вопроса Источник ответа Если данных нет
Цена, наличие, свойства товара Каталог и учётная система «Уточняется» и переход в карточку товара, без утверждения
Доставка, оплата, возврат, гарантия База знаний магазина Передача оператору, без обобщений «обычно так»
Статус и состав заказа Система заказов по токену покупателя Запрос подтверждения личности, при неудаче — оператор
Подбор и сравнение товаров Каталог с фильтрами по категории и свойствам Уточняющий вопрос, затем выборка из каталога
Темы вне магазина Источника нет Отказ по утверждённой формулировке

Актуальность цен и наличия

Разделение поискового индекса и точечных запросов

Цена и остаток — самые короткоживущие данные магазина. Если они попадают в поисковый индекс вместе с описанием, ассистент начинает отвечать срезом суточной давности. Рабочее разделение выглядит так: индекс хранит описательную часть и идентификатор товара, а цена, остаток и срок доставки запрашиваются точечно по идентификатору в момент формулировки ответа.

Метка времени и порог давности

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

Проверяемый пример ответа про цену

Вопрос «сколько стоит и есть ли в наличии» закрывается ответом из четырёх элементов: цена, статус наличия, время получения данных, переход в карточку товара. Статусы наличия удобно держать в канонических значениях — «в наличии», «нет в наличии», «предзаказ», «под заказ». Эти значения входят в перечень поля доступности товара в разметке schema.org ItemAvailability.

Когда остаток не подтверждён, в ответе остаётся формулировка «наличие уточняется» вместо «есть». Разница в одном слове определяет, появится ли у покупателя повод для претензии.

Доступ к статусу заказа

Подтверждение личности покупателя

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

Границы выдаваемых полей

Список полей, которые ассистент имеет право назвать, фиксируется до запуска. Разумная граница делится на три части:

  • Можно назвать — статус, дата отправки, трек-номер, состав и сумма заказа, способ получения.
  • Нельзя назвать — платёжные реквизиты, полные данные получателя, адрес, если заказ оформлен на другого человека.
  • Только с подтверждением — отмена, смена адреса, оформление возврата: по умолчанию ассистент работает в режиме чтения.

Запрос к системе заказов идёт от имени покупателя, с его токеном доступа, а не сервисным ключом с правом читать все заказы. Это ограничивает последствия внедрения инструкций в данные — класса атак, который описан в OWASP Top 10 для приложений на больших языковых моделях под названием prompt injection. Даже если текст в описании товара или в отзыве попросит показать заказы другого покупателя, технической возможности их получить у ассистента не остаётся.

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

Передача оператору

Условия немедленной передачи

Передача человеку описывается правилами, а не настроением модели. Диалог уходит оператору, когда срабатывает любое из условий:

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

Контекст, который передаётся оператору

Переключение без контекста обесценивает работу ассистента: покупатель пересказывает историю заново. Оператору передаются:

  • Переписка целиком — с отметкой, какое правило сработало на передачу.
  • Тип вопроса — результат классификатора, по которому выбирался источник.
  • Результаты поиска — какие источники опрошены и что в них найдено или не найдено.
  • Подтверждённый заказ — номер и статус, если личность покупателя подтверждена.
  • Черновик ответа — заготовка, которую оператор правит, а не пишет с нуля.

Срок, за который ответит оператор, ассистент не называет, пока очередь обращений не контролируется. Вместо срока он сообщает режим работы поддержки и номер обращения.

Ложные ответы: источники и ограничители

Пять типов ложных ответов

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

Типы ложных ответов ассистента и ограничители под каждый тип

Тип ложного ответа Как выглядит в диалоге Ограничитель
Выдуманное свойство товара В ответе появляется состав, размер или совместимость, которых нет в карточке Передача модели только полей каталога, проверка свойств ответа по контексту
Устаревшая цена или наличие Названа цена прошлой недели или остаток до последней продажи Точечный запрос в момент ответа, метка времени, порог давности
Данные чужого заказа Статус выдан по одному номеру заказа, без подтверждения личности Запрос от имени покупателя, одноразовый код, режим чтения
Обещание вне правил магазина «Вернём деньги в любом случае», «доставим бесплатно», «продлим гарантию» Условия только из базы знаний, список запрещённых формулировок
Исполнение инструкции из данных Ассистент следует тексту, который кто-то оставил в отзыве или описании товара Разделение данных и инструкций, белый список доступных действий

Ограничители на стороне кода, а не только инструкции

Фраза в системном сообщении «отвечай только по переданным данным» — необходимый, но слабый ограничитель: модель способна её нарушить. Устойчивая часть ограничений живёт в коде сервиса:

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

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

Тестовый набор вопросов и оценка качества

Состав тестового набора

Набор собирается до запуска и остаётся главным инструментом приёмки. В него входят:

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

Каждому вопросу ставится эталонный ответ и признак, что считать ошибкой. По нашей практике рабочий минимум — 150–200 вопросов: меньший набор не покрывает статусы заказа и отказные сценарии.

Регулярность проверки набора

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

Метрики, которые считаются автоматически

Качество измеряется шестью показателями с понятной реакцией на отклонение.

Метрики качества ответов и реакция на отклонение

Показатель Что считаем Реакция на отклонение
Доля ответов, подтверждённых источником Сколько ответов содержат только факты из переданного контекста Падение — разобрать полноту поиска и проверку ответа
Доля верных отказов Сколько вопросов без данных закрыты отказом, а не догадкой Падение — поднять требование к уверенности поиска
Доля ложных отказов Сколько вопросов с данными в источниках закрыты отказом Рост — расширить индекс, добавить синонимы и артикулы
Доля диалогов без оператора Сколько обращений закрылись без передачи человеку Рост одновременно с падением точности — тревожный признак
Доля ответов на устаревших данных Сколько ответов опирались на значения старше порога давности Любое значение выше нуля — разбирать обновление данных
Повторные обращения за сутки Сколько покупателей вернулись с тем же вопросом в течение дня Рост — ответ формально верен, но непонятен покупателю

Выборочная проверка диалогов руками

Автоматические показатели не видят уместность и интонацию. Раз в неделю выборка диалогов читается руками: два проверяющих независимо отмечают ошибки, спорные случаи разбираются отдельно и дополняют тестовый набор. Выборку смещают в сторону диалогов с передачей оператору и с низкой оценкой покупателя.

Чек-лист внедрения

Перед запуском стоит получить «да» на десять вопросов:

  • У каждого поля каталога есть один владелец, и цена не дублируется в тексте карточки?
  • Цена, остаток и срок доставки запрашиваются в момент ответа, а не берутся из поискового индекса?
  • Для каждой категории товаров задан порог давности данных?
  • У документов базы знаний есть дата обновления и срок действия?
  • Карта маршрутов «тип вопроса — источник» описана и покрыта тестами?
  • Доступ к заказу открывается только после подтверждения личности покупателя?
  • Запрос к заказам идёт с токеном покупателя, а не сервисным ключом на все заказы?
  • Список полей заказа, которые ассистент называет, зафиксирован письменно?
  • Условия передачи оператору описаны и проверены на тестовом наборе?
  • Метрики считаются с первого дня, и у них есть ответственный в команде?

Итог

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

Границы ассистента и способ проверки каждой из них

Что ограничиваем Чем ограничиваем Как проверяем
Тему разговора Классификатор вопроса и шаблон отказа Доли верных и ложных отказов на тестовом наборе
Факты в ответе Поиск по источникам и проверка ответа перед отправкой Доля ответов, подтверждённых источником
Свежесть цифр Точечный запрос и порог давности Доля ответов на данных старше порога
Доступ к заказу Подтверждение личности и токен покупателя Отдельные проверки на чужой заказ в наборе
Действия ассистента Белый список методов и режим чтения по умолчанию Разбор диалогов, где ассистент вызывал действия

Обсудить задачу

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

Частые вопросы

Чем ИИ-ассистент магазина отличается от чат-бота со сценариями?

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

Как ассистент получает актуальные цены и остатки из учётной системы?

Описательная часть товара — название, свойства, текст карточки — попадает в поисковый индекс и обновляется по расписанию. Цена, остаток и срок доставки в индекс не кладутся: ассистент запрашивает их точечно по идентификатору товара в момент формулировки ответа. Если прямой запрос недоступен, в ответе остаётся время, на которое получены данные, и предложение открыть карточку товара. Для каждой категории задаётся порог давности: значения старше порога не используются как утверждение.

Как ассистент узнаёт статус заказа покупателя?

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

Почему ИИ-ассистент выдумывает характеристики товара?

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

Сколько вопросов нужно в тестовом наборе перед запуском ассистента?

По нашей практике рабочий минимум — 150–200 вопросов с эталонными ответами. Меньший набор не покрывает все статусы заказа, отказные сценарии и вопросы с внедрённой в текст инструкцией. Состав важнее объёма: нужны вопросы с однозначным ответом из каталога, вопросы про условия магазина, вопросы про заказ в каждом статусе, вопросы вне тематики с ожидаемым отказом и вопросы про отсутствующий товар. Каждому вопросу ставится эталон и признак, что считать ошибкой.

Можно ли отказаться от операторов поддержки после внедрения ассистента?

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

Какие данные нельзя передавать ИИ-ассистенту магазина?

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

ДАВАЙТЕ ОБСУДИМ
ВАШ ПРОЕКТ

Мобильное приложение