ИИ-радар, который ищет клиентов: главная проблема не поиск, а выдуманные цитаты
Система читает открытые площадки и приносит заявки. Самое опасное в ней не пропустить подходящую, а принести чужие слова, которых человек не писал. Разбираю, чем это лечится.
Можно ли искать клиентов автоматически с помощью ИИ?
Можно, и поиск здесь самая простая часть. Сложное — не дать модели пересказать чужой пост своими словами: она охотно выдаёт правдоподобную цитату, которой на странице не было. Лечится это не улучшением промпта, а проверкой: каждая сохранённая цитата сверяется с исходной страницей дословно, и несовпавшая не доходит до оператора.
Система читает открытые площадки, находит людей, которые прямо сейчас описывают свою проблему, и приносит их вам. Звучит как задача про парсинг. На практике парсинг — самая скучная её часть.
Где такие системы ломаются
Представьте карточку заявки: имя, площадка, ссылка и цитата — те слова, которыми человек описал задачу. Именно по цитате вы за две секунды решаете, стоит ли отвечать.
И именно цитату модель придумывает охотнее всего. Она прочитала длинный тред, поняла смысл и выдала сжатую формулировку — гладкую, убедительную и отсутствующую на странице. Не потому, что сломалась, а потому, что её об этом попросили: «извлеки запрос».
Последствия неприятные. Вы отвечаете человеку, ссылаясь на слова, которых он не писал. В лучшем случае это выглядит невнимательно, в худшем — как чужое письмо, отправленное не туда.
Чем это лечится
Не промптом. Сколько ни пиши «цитируй дословно», проверить это может только код.
В системе есть шаг, который берёт каждую сохранённую цитату и ищет её в тексте исходной страницы. Не похожую, а ту же самую. Не нашлась — карточка не уходит оператору.
Это дешёвая проверка с большим эффектом. Она превращает «модель обычно цитирует верно» в «в карточке либо настоящие слова человека, либо её нет». Разница между этими двумя состояниями и есть разница между инструментом, которому доверяешь, и инструментом, который перепроверяешь руками, то есть бесполезным.
Воронка из дешёвого в дорогое
Вторая вещь, которая определяет, живёт ли такая система, — деньги.
Если отправлять каждую найденную страницу в большую модель, счёт растёт быстрее, чем польза. Поэтому проверки выстроены лесенкой от дешёвых к дорогим: сначала грубый отсев по адресу и заголовку, потом быстрый поиск по ключевым словам, потом смысловая проверка эмбеддингами, и только то, что прошло всё это, попадает к модели.
Порядок здесь важнее состава. Каждая ступень отбрасывает большую часть потока за копейки, и самая дорогая проверка работает с остатком, а не со всем интернетом.
Движок и ниша — разные вещи
Третье решение видно не сразу, но без него система живёт в одной нише и умирает вместе с ней.
Внутри нет ни одного упоминания конкретной отрасли. Запросы, ключевые слова, фразы, по которым узнаётся покупатель, список площадок, пороги и профиль извлечения — всё это лежит в отдельном файле-наборе для своей ниши. Движок про них не знает.
Поэтому перевод радара на другую отрасль — это новый набор, а не новая система. Для меня это ещё и ответ на вопрос, можно ли такую вещь продавать: продаётся движок, настраивается набор.
Что забрать себе
Три правила, которые пригодятся в любой системе, где модель читает чужой текст.
Всё, что модель процитировала, проверяйте по источнику программно. Стройте проверки лесенкой, чтобы дорогая работала с остатком. И держите знание о предметной области в данных, а не в коде.
Такой радар уже работает, карточки и устройство показаны в кейсе. Нужна похожая система под вашу нишу — напишите.