Как я ИИ продавца делал

 Публичный пост
6 мая 2025  989

Как только я узнал о GPT 3.5, я сразу поехал кукухой на тему ИИ. Я понял, что эта технология изменит наш мир в самое ближайшее время. И так уж вышло, что за 17 лет моей работы в ИТ, я поработал не только как тех лид всех видов, но и в продажах.

Много лет продаж на Upwork меня влюбили в эту сферу в целом, а значит пора было объединить то, что я умею, люблю и AI.

Я как фанатик свято уверовал, что даже несмотря на то, что 3.5 постоянно тупит, его заносит не туда, рано или поздно все заработает как надо.

И тут один мой товарищ как раз поделился, что они к себе в контору хотели бы ИИ продавца, чтобы переписки вел и с CRM работал - тягал сделки по воронке, заполнял карточку сделок и создавал задачу на менеджеров. Я сразу ухватился за эту возможность и пообещав, что через 3 месяца что-то будет, побежал воплощать проект в жизнь. Я отнесся к нему как проектику на 3 месяца, который я сделаю из говна и палок по стартаперским заветам, продам десятку клиентов и в целом все. Как же я ошибался.

Ребята у себя использовали amoCRM и поэтому я начал сразу с них. Пошел читать документацию и атаковать поддержку, чтобы сделали мне виджет, который я уже буду программировать. Я не буду вдаваться в ту боль, которую я испытал пока пытался сделать интеграции для TG, WA, Имейл, Инста, Авито и своего онлайн чата на сайт. Не буду говорить сколько седых волос у меня добавилось, пока я научил свой сервис внедряться в чаты amoCRM, чтобы вся переписка была там с учетом возможных приложенных файлов. Сколько я мучал поддержку, чтобы они сказали почему в документации JSON такой, а на деле совсем другой. Были также моменты с OpenAI Assistants API, но это все лирика. Я справился с техническими трудностями и наступил момент, когда из моего кабинета донесся крик “ОН ЖИВОЙ”. Я специально постарался оставить в памяти этот момент, когда впервые я получил ответ от ИИ в переписке в ТГ, а в АМО в этот момент создалась сделка, чат и контакт.

Когда 3 месяца прошли, я пришел к своему товарищу и такой “Гена, на”. На что он мне рассказал грустную историю, что начальство решил это направление сократить, его вообще переводят на другую должность и кароче соррян.

ЛЮДА, ЕП ТВАЮ МЕДЬ!
ЛЮДА, ЕП ТВАЮ МЕДЬ!

Ладно. Продукт же есть? Значит надо его продавать. Хоть он и сырой, хоть он и глючит, но надо. Где то я отыскал Антона. Антон продает запчасти для техники Apple и ему очень было надо, чтобы продавец определял во время переписки чего хочет клиент и ходил в Мой Склад, брал оттуда нужные товары и возвращался с ценами и наличием. Так началась следующая итерация разработки. Так как я не был уверен в результате, то денег с Антона не взял, а просто договорились, что заплатит он по факту, когда все заработает. Ну ок.

Спустя лето я пришел к Антону со словами “Гена, на”. Антон посмотрел, попробовал, помял, пожевал, порастягивал то, что получилось и сказал “куда слать бабки?”.

Параллельно я взял программиста в команду и мы внедрили Битрикс.

Чувствовал я себя вот так.
Чувствовал я себя вот так.

А потом пришли они…

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

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

одному

слову

за

раз.

А еще OpenAI сука не работает как надо, то глючит, то API падает, то в принципе нельзя отменить Job в статусе In progress, потому что если попытаться это сделать у них все падает и ответ не приходит вообще. Я танцевал брейк с бубном, попутно переходя на вог, а потом еще немного контемпа вместе с народными танцами Кабардино Балкарской Республики.

Той осенью начался кошмар бесконечных допилов. Тот подход из говна и палок начал о себе давать знать. Антон решил подключить еще 6 ботов на разные источники. Хаос кратно вырос.

Я в тот момент пошел учиться в Нечто к М. Дашкиеву и мне выдали десятку предпринимателей, которые меня постоянно пушили идти туда, куда страшно (мой перфекционист ИТшник плакал), а именно к поискам новых Антонов. Сливаться атмосфера и характер в целом не позволяют, поэтому пришлось пойти и выступить в Business Booster у Высоцкого. И О БОГИ! Оттуда пришло аж 5 или 6 клиентов. Самых разных. Из разных ниш, с абсолютно разными задачами. Да кто я такой, чтобы отказываться?! БОЛЬШЕ ХАОСА БОГУ ХАОСА! В этот раз я взял со всех предоплату и впервые мы вышли в плюс.

Спустя пару месяцев, оно все хоть и со скрипом, но работало. Проблемы с ассистентами OpenAI меня вгоняли в депрессию, поэтому было принято стойкое решение переписать ЯДРО и переписать системные промпты в XML формат, чтобы добавить больше структуры.

Я потратил недельку и… 70% ошибок пропало. Тут я уже не постеснялся рефактора и полностью переделал сами принципы обработки сообщений, очередей, контекста ИИ и прочего. А еще добавил альтернативу OpenAI - Anthropic с его Claude.

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

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

Чем больше условий в промте, тем непредсказуемее ведет себя нейросеть. Представим международное агентство недвижимости. У них есть скрипт продаж, вопросы в котором должны идти по очереди, но в зависимости от ответа могут быть ответвления. Например если бюджет лида меньше X, то мы ему предлагаем рассрочку, а если больше, то идем к следующему вопросу. Но при этом лид может не указать валюту, а это значит, что ее надо уточнить. А если на английском пишет, то мы ему кидаем презентацию на английском. А если вообще уходит от ответа на вопрос про бюджет, то переспрашиваем, потому что это квалифицирующий вопрос. А еще надо определить насколько лид горячий по ABC. Ну и еще + 50 правил, ведь чем комплекснее отдел продаж, тем больше там веселых моментов.

И несмотря на большое контекстное окно ИИ не обязан выполнять ВСЕ инструкции. А МНЕ НАДО ЧТОБЫ ВСЕ!

image.png
image.png

Следующие три месяца я бился с инструкциями. Крутил их и так и этак. Но, ИИ есть ИИ. Клиенты ругались, а я “плакал” в душе, потому что не могу решить задачку. А потом щелчок и мысль как молния “Пора делать рефактор!”. Задача состояла в том, чтобы уменьшить промт до минимума, при этом не потерять в качестве. Ответ очевидный на самом деле - динамический промтинг под каждый шаг скрипта продаж. Плюс этот подход позволял быть еще больше про продажи. Потому что нормальные продажи всегда подразумевают скрипт продаж, с ветками, обработкой возражений и прочим. Делать прямо конструктор это фу, поэтому решил работать с тем что есть.

Там параллельно были еще продажи, клиенты, команда, но пост не об этом.

Через 2 недели я получил вот это:

Вся суть в том, что есть шаги, есть критерии завершенности шага. И переход происходит либо когда критерий выполнен, либо когда было совершено заданное количество попыток. Причем каждая попытка должна была эволюционировать в плане вопросов, которые задает продавец, потому что если он просто будет спамить одним и тем же вопросом - это будет кринж. И что самое важное, что теперь у каждого шага есть свои правила, а это значит, что промт постоянно меняется и если у нас задача узнать бюджет, бот не будет знать о том, что нужно спросить на Пхукете лид сейчас или нет. Такой подход снизил количество дурмана на 99.5%. Там же появилась возможность анализировать каждый шаг и его конверсию, что гораздо круче, чем просто анализ воронки.

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

Сейчас мы находимся в этой точке. Я чувствую, что на текущий момент удалось достигнуть цели и сделать именно цифрового менеджера отдела продаж.

Я верю, что ИИ это теперь наше настоящее и его влияние будет распространяться и дальше. Я искренне люблю делать то, что делаю и казалось бы еще никогда моя профессия не приносила мне такого удовольствия. Мне нравится решать задачи, с которыми почти или вообще никто не сталкивался. Нравится быть первым в решении этих задач. И впереди нас ждет чудный новый мир искусственного интеллекта.

Какие выводы еще можно сделать?

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

Если хотите пообщаться на эту тему, то пишите в тгшечку: https://t.me/vladislavumnov

Если хотите меня почитать, то вот вам канал: https://t.me/vladislav_umnov

Если хотите больше узнать про продукт: https://lampabot.ru - сайт старый и не совсем актуальный, но через недельку будет уже новый.

24 комментария 👇

Очень интересно! Я для себя нечто подобное сделал, конечно сильно проще, т.к. у меня вполне конкретные требования.
А вот я подумал, если у клиента обширная база знаний, то каким образом реализован у вас RAG? Через ручную разбивку, классификацию знаний? Например есть pdf на несколько сотен страниц, можно ли "обучить" ИИ продавца всему что там написано?

  Развернуть 1 комментарий

@rooty,

Например есть pdf на несколько сотен страниц, можно ли "обучить" ИИ продавца всему что там написано?

Конечно можно, только нужно сначала перевести pdf в текст, а дальше уже работать с текстом как в обычном RAG

  Развернуть 1 комментарий
  Развернуть 1 комментарий

@rooty, Сейчас есть векторная бд. Документ разбивается на смысловые блоки, токенизируется и далее выявляется запрос в тексте и на основе запроса добавляется инфа в промпт

  Развернуть 1 комментарий

@vladislavumnov, спасибо. А вот как раз разбиение на блоки, как происходит? Вручную или смело можно скормить большую доку, и он сам разобьет? Если сам, то каким образом?

  Развернуть 1 комментарий

@rooty, Текст скармливается ии с просьбой разбить на смысловые блоки.

  Развернуть 1 комментарий

@vladislavumnov, а если текст + ответ больше чем context window? Или таких кейсов не было?

  Развернуть 1 комментарий

@rooty, Таких кейсов не было. Но я бы в таком случае просто документ бы разбил на несколько документов.

  Развернуть 1 комментарий

@rooty, можно почитать про RAG в интернете. Как раз разбиение документа на блоки относится к RAG.

  Развернуть 1 комментарий

Вопрос - а что твой ИИ делает?

Конкретно, какие действия? Ведёт общение с клиентом, или просто предзаполняет карточки?

Есть статистики по продажам?

  Развернуть 1 комментарий

@vladislavumnov,

Слу, реально интересно. Что там у тебя под капотом?

  Развернуть 1 комментарий

А на каком этапе вы внедрили structured output и разбили общение между ботом и человеком на несколько промптов? По ощущениям, это могло бы сэкономить вам много времени и сил

  Развернуть 1 комментарий

@timurkhakhalev, Structured output был сразу. Причем там сразу много агентов, каждый из которых трудится над чем то своим.
Промпты тоже были динамическими, но недостаточно. Разбить их еще на более мелкие части сразу не додумались к сожалению, да и не знали, что нейросеть плохо работает с большим количеством условий. Наоборот, думали, что чем четче пропишем каждый аспект, тем лучше будет результат.

  Развернуть 1 комментарий

@vladislavumnov, понял, всё приходит с опытом, конечно! Вы добавляли evaluations? Если да, то какие и каким образом оцениваете ответы llm?

  Развернуть 1 комментарий

@timurkhakhalev, У нас был агент который проверял ответы на соответствие с правилами и переписывал ответ, если он неверный. Но в текущей итерации убрали его, так как все и так ок стало.

  Развернуть 1 комментарий
Daniel Khaliulin Technical Product Manager 7 мая в 06:19

Спасибо за классный пост!

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

  Развернуть 1 комментарий

@dennykhaliulin, Редко такое переживание возникает. Но мы просто делали упор на то, что мы Ит компания, которая сделала сотню+ проектов и мы точно знаем как работать безопасностью. Шифруем данные и тд.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@fonbrot, Мы не передаем какие-то супер чувствительные данные.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Классный рассказ.
Интересно, если делать каждый шаг изолированным от общего набора возможных инструкций - не всплывает ли где-то тот самый кринж, когда например клиент в первом же сообщении уже сказал что был на пхукете, не дожидаясь вопроса, а потом мы его об этом отдельно спросим? Или может есть более жизненный пример.
Все таки хочется чтобы ai был достаточно интеллектуальным, а не превращать все в набор if-else

  Развернуть 1 комментарий

@Ivkin, У него есть вся переписка и отдельный ии увидит, что это шаг уже отработан и переведет к следующему

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб