ИИ-агенты

Как обучить ИИ-агента на своей базе знаний

Обучить ИИ-агента — значит разобрать материалы на отдельные темы «вопрос — полный ответ», убрать смысловые дубли и дальше пополнять базу вопросами, на которые агент не ответил. Загрузка сайта одним куском обучением не считается: агент отвечает только тем, что в базе знаний уже лежит.

15 мин чтения Дмитрий Киселев, основатель ЭТОБОТ и ЭТОЧАТБОТ

Вопрос «как обучить ИИ-агента» звучит так, будто есть кнопка «загрузить сайт». Кнопка есть, обучение начинается после неё. Ниже — как материалы превращаются в темы, почему дубли опаснее пробелов, что при разборе теряется и как принимать результат.

Короткий ответ

  1. Обучение — разбор, а не загрузка. Страница или файл делится на части, из каждой части извлекаются темы вида «вопрос — полный ответ». Одна страница сайта обычно даёт не одну тему, а несколько.
  2. Дубли снимаются дважды: по словам и по смыслу. Сначала сравниваются формулировки вопросов, потом — их векторы. Иначе один и тот же факт, записанный разными словами, ложится в базу дважды и начинает сам себе противоречить.
  3. Переобучение меняет темы источника, а не всю базу. Страница изменилась — её прежние темы снимаются, новые встают на их место. Темы, написанные руками, остаются.
  4. После запуска работает накопитель неотвеченных вопросов. Туда попадает каждый вопрос, где агент не уверен или зовёт человека. База знаний пополняется из накопителя, а не из головы.
  5. Цена: разработка от 20 000 ₽, поддержка от 5 000 ₽ в месяц. Работа самого агента считается по расходу токенов. Точная смета — после разбора задачи и до начала работ.

Что значит «обучить ИИ-агента»: темы, а не текст

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

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

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

Как идёт разбор у нас:

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

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

Пять источников знаний и что из каждого выйдет

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

ИсточникЧто из него выйдетКак обновлять
Страница сайта по ссылкетемы по тексту страницы; обход ограничен и по числу страниц, и по временипереобучить источник — его темы заменяются
Файл PDF, DOCX или TXTтемы по тексту файла; таблицы разваливаются, картинки теряютсязагрузить новую версию файла и переобучить его
Текст, написанный рукамиодна-две точные темы с формулировкой, которую агент не меняетправкой темы; при переобучении сайта не стирается
Ответ оператора из диалогаготовая тема из живого ответа человекаотправить в базу кнопкой в диалоге
Накопитель неотвеченныхсписок вопросов без ответов — заготовки для новых темразбирать раз в неделю после запуска

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

Почему две темы об одном факте хуже одной

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

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

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

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

Следствие для заказчика: один факт — одно место. Если прайс есть файлом, те же цены со страницы сайта собирать не надо.

Переобучение по сайту: меняются темы источника, а не вся база

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

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

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

База знаний по ссылке и из документов: что берётся, что теряется

Сбор по ссылке выглядит просто: даёте адрес, движок ходит по сайту сам. Внутри HTML превращается в текст, меню, подвал и баннеры выбрасываются, страницы-дубли снимаются, ссылки обходятся по весу — сначала «Цены», «Услуги», «Контакты», «Вопросы и ответы». Обход ограничен и по числу страниц, и по времени: иначе движок уйдёт в архив новостей и не вернётся. Большой каталог целиком не попадёт, и это правильно: тысяча карточек товара — задача для запроса в вашу систему.

Что теряется, и здесь важно не обманываться:

  • Картинки. Прайс картинкой текстом не станет, сканированный PDF без текстового слоя даст пустоту.
  • Таблицы. Из HTML и DOCX таблица извлекается текстом и теряет связь строки со столбцом. Сложную таблицу надёжнее переписать руками.
  • Закрытые разделы. Всё, что за авторизацией, движок не видит.
  • Изменчивые данные. Наличие, статус заказа, свободные слоты устареют к вечеру. Это работа инструмента: агент запрашивает систему и отвечает тем, что она вернула.
  • Произвольная ссылка на Instagram*. Спарсить профиль по ссылке нельзя, Instagram* закрывает такое чтение. Берётся только подключённый к боту аккаунт через официальный API.

Накопитель неотвеченных вопросов — главный инструмент после запуска

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

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

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

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

Как принимать обучение: 30 живых вопросов и слепое сравнение

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

  1. Собрать корпус из 30 настоящих вопросов из журнала: многоходовые диалоги с историей, короткие продолжения вроде «да» или «второй вариант», случаи, где агент ушёл в «не знаю», и обычные вопросы. Половина — с историей: работа с контекстом ломается первой.
  2. Прогнать корпус без записи в диалоги, чтобы клиенты ничего не получили.
  3. Сравнить ответы до и после правки слепо, порядок случайный.

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

И отдельно про «не знаю». Честный отказ — хороший результат приёмки, а не брак. Если в базе про интеграцию с amoCRM не сказано ничего, «не знаю» — единственный ответ, который не придётся потом отзывать; всё остальное агент придумает.

Чего делать не надо

  • Не считать обучение разовой работой. Залить сайт и забыть — способ получить агента, который уверенно рассказывает прошлогодние цены.
  • Не класть в базу изменчивые данные. Наличие, сроки доставки, статус заказа, свободное время — только запросом в систему.
  • Не отдавать агенту формулировки, которые нельзя перефразировать. Юридические тексты, дозировки, условия возврата выдаёт сценарий готовым текстом.
  • Не обучать по чужому сайту. Чужие условия в своей базе — прямой путь к обещанию, которого вы не выполните.
  • Не запускать агента без правила «зову человека». Иначе клиент быстрее доходит до места, где ему никто не отвечает: вопросы приходят и поздним вечером, и в выходные, когда оператора рядом нет, а агент как раз в этот момент упирается в границу базы знаний.
  • Не начинать с ИИ-агента, если материалов нет. Если условия существуют только в голове владельца, сначала их надо записать текстом.
  • Не заказывать агента при единицах обращений в неделю. Меню из пяти кнопок или простой автоответчик в Telegram закроют задачу, а разбор материалов и наблюдение не окупятся. Разница между конструктором и разработкой разобрана в статье про то, сколько стоит разработка чат-бота.

Ограничения каналов, которые база знаний не отменяет

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

КаналКто делает первый шагЧто это значит для обученного агента
Telegramчеловек нажимает «Запустить»без точки входа базе знаний не с кем разговаривать; рассылки по базе телефонов нет
ВКонтактесообщество пишет первым тому, кто разрешил сообщения, бессрочноможно вернуться к старому диалогу, никакого окна 24 часа у ВК нет
МАКСчеловек сам начинает диалогнужна верификация профиля и доверенный российский корневой сертификат
Instagram*комментарий, реакция на сторис или кодовое слово в личных сообщенияхпервый директ уходит как Private Reply, попытка одна

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

В МАКС своё: бота заводит организация, ИП или самозанятый — резидент РФ, профиль проходит верификацию, она занимает несколько рабочих дней. Это единственный срок, который мы называем, и он от нас не зависит.

Сколько стоит обучение ИИ-агента

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

  • Разработка — от 20 000 ₽. Разбор материалов, сборка базы знаний, промпт, подключение канала, правило передачи разговора человеку. Точная цифра называется после разбора задачи и до начала работ.
  • Поддержка — от 5 000 ₽ в месяц. Разбор накопителя, переобучение изменившихся источников, правки промпта с замером — что ещё входит в поддержку бота, разобрано построчно.
  • Работа агента — по расходу токенов. Сколько агент потратил на ответы, столько его работа и стоила; фиксированной ставки за месяц нет. База влияет на расход напрямую: чем больше кусков подмешано к вопросу, тем дороже ответ. Неизменное начало запроса при этом кэшируется, поэтому промпт и правила держат в стабильной части, а не тасуют при каждом обращении.
  • Оплата зарубежных ИИ-сервисов. Часть моделей российской картой не оплачивается; помогаем провести оплату иностранными картами. В разработку и поддержку эти деньги не входят.

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

Что запомнить

  1. Условия, которые существуют только в голове владельца, обучением не станут: сначала их записывают текстом, потом отдают на разбор.
  2. Прайс файлом и те же цены страницей сайта — заготовка противоречия: в базе один факт должен лежать один раз.
  3. Изменчивые данные — наличие, свободные слоты, статус заказа — в базу не кладут вообще: их берут запросом в вашу систему.
  4. Обновился сайт — переобучают затронутый источник, а не всё целиком: полная пересборка стирает ручные правки и темы из живых диалогов.
  5. После запуска работа не кончается: накопитель неотвеченных разбирают раз в неделю, а любую правку промпта проверяют слепым сравнением на живых вопросах.
  6. Цены: разработка от 20 000 ₽, поддержка от 5 000 ₽ в месяц, работа агента — по расходу токенов. Точная смета — после разбора задачи и до начала работ.

Нужен разбор конкретной базы знаний — напишите в нашем боте в Telegram: посмотрим сайт и документы и скажем, чего в базе знаний не хватит. Другие разборы собраны в разделе ИИ-агенты и нейросети в ботах.

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

Как обучить ИИ-агента на своих данных?

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

Что такое база знаний для чат-бота?

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

Как создать чат-бота с нейросетью?

Понадобятся четыре вещи: материалы для базы знаний, системный промпт с правилами общения, подключённый канал и правило передачи разговора человеку. Разработка у нас стоит от 20 000 ₽, поддержка — от 5 000 ₽ в месяц, работа агента считается по расходу токенов. Сроков не обещаем: они зависят от скорости, с которой приходят материалы и доступы.

Нужно ли переобучать ИИ-агента после изменений на сайте?

Да, но только изменившийся источник. Переобучение страницы снимает её прежние темы и ставит новые, остальная база не трогается; темы, добавленные руками, остаются. Полная пересборка базы стирает ручные правки и темы из живых диалогов, поэтому «обучить заново» — плохой способ обновить цены. В поддержку от 5 000 ₽ в месяц переобучение входит.

Что делать, если ИИ-агент отвечает неправильно?

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

Можно ли обучить ИИ-агента по ссылке на Instagram*?

Нет. Произвольную ссылку на профиль спарсить нельзя — Instagram* закрывает такое чтение. Работать можно только с аккаунтом, подключённым к боту через официальный API. Там же действуют ограничения канала: написать человеку первым нельзя, легальные входы — ответ на комментарий, реакция на сторис и кодовое слово в личных сообщениях.

Сколько стоит обучение ИИ-агента?

Отдельной цены за обучение нет: разбор материалов и сборка базы знаний входят в разработку от 20 000 ₽, а разбор неотвеченных вопросов и переобучение источников — в поддержку от 5 000 ₽ в месяц. Работа самого агента считается по расходу токенов, и объём базы на него влияет напрямую. Точная смета — после разбора задачи.

Нужен бот, который делает это у вас?

Читать дальше