Сегодня я расскажу о сервисе, который писал с помощью ИИ ассистента последние 2 месяца.
Текст ниже, по сути - это текстовик к видео ниже. Лучше смотреть видео, поскольку текстовик очень сильно сокращен. Но если удобнее читать, то запасайтесь попкорном. Интересно будет только тем, кто интересуется ИТ.
Что примечательно, делал я это в режиме вайб кодинга. Большую часть кода писал ИИ агент, а я только создавал архитектуру и следил, чтобы он не наделал кучу ошибок.
Вообще, это очень хорошая тема, начать делать реальный продукт, чтобы разобраться, как работает инструмент. И в данном примере я написал сервис на Laravel, с которым раньше конкретно “руками” не работал.
Начинал его писать изначально, как сервис “менеджер на чатах” мне в помощь, но как-то очень быстро получилось накидать столько функционала, что именно ИИ составляющая в этом сервисе не то, чтобы совсем затерялась, но стала лишь одной из фишечек. А сам процесс написания сервиса как-то затянул, что я стал заказчиком и владельцем продукта в одном лице.
Не так давно я очень плотно работал с большим количеством разработчиков.
И у меня есть знакомые программисты - настолько пробитые на программировании, что никогда не оценивали рентабельность временных вложений. Я сейчас про то, что если какую-то задачу нужно решить один раз… и в ручном режиме она займет, скажем, 2 часа… но это рутинные операции, вроде скопировать/вставить, переименовать или еще что-либо подобное. А в противовес написать обработчик, который сделает все тоже самое, но его написание может занять 3..4 часа, то они без колебаний выберут второй вариант.
Тут у меня получилась очень похожая история. А началось все с решения собственной проблемы, которая заключалась в следующем. С начала осени я занялся ручным трудом. А точнее: монтажом шкафчиков для санузлов, экранов под ванную комнату, а других подобных изделий.
И почти всех новых клиентов я получал из Авито. Написал там объявление, приложил примеры работ, настроил рекламу и начал общаться с людьми в чатах.
Через недели три меня стала очень сильно раздражать необходимость печатать одно и то же.
При этом основной раздражающий факт что тратится много времени на объяснения людям, которые не удосужились прочитать текст объявления. Посмотрели на картинку и сразу начали задавать вопросы.
Кроме того, на время монтажа я полностью “выпадал из общения”. Невозможно находиться на монтаже и одновременно переписываться с клиентами. Вернее, можно, но это значит, что регулярно надо отвлекаться и тратить время на переключение.
Монтаж одного предмета у меня сейчас от 3.5 до 5 часов. Плюс дорога. В дни, когда у меня два предмета, в течение 8..10 часов я не мог отвлекаться на диалоги.
На фотке я вроде бодрячком, но на самом деле после 8 часов монтажа подряд плюс дорога. А еще разгрузка и загрузка весьма тяжелого инструмента добавляет, в результате вечером я ака "выжатый лимон".
Мало того, что за это время не сильно пообщаешься, но и даже если кому-то обещаешь что-то сделать, то потом в куче чатов сложно найти, кому и когда что ты обещал.
И вот, первый месяц я разбирался с этой основной задачей. Изучал способы формирования контекста для ИИ бота, сравнивал разные модели, разные промты. Сейчас не буду грузить особенностями преобразований диалогов в векторы а покажу, что итоге получилось.
А получился в итоге сервис, в котором мне стало реально удобно. В том числе с телефона. Это по сути очень “легкая” CRM, в которой есть только то, что мне нужно.
При этом, что характерно, наиболее сильные решениями оказался не ИИ чат бот, а простые программируемые способы сокращения времени. Хотя использование ИИ тут играет не последнюю роль в формировании удобства.
Этот сервис, который я писал для себя, может подойти для любого спеца, который сам отвечает клиентам в Авито.
Я должен общаться в большом количестве чатов, а затем еще следить, с кем о чем договорились, когда куда к кому ехать, что отложено и т.п.
При этом какие-то чаты мне явно неинтересны, а в стандартном приложении авито я даже не могу его скрыть.
На картинке выше основная сводная информация. На этой панели назначенные даты монтажей. Из них я могу провалиться в соответствующий чат.
Следующий важный блок - это количество активных чатов. В моем случае, чат - по сути это лид, и для меня он успешен, когда для него создается событие монтаж. Т.е. это ситуация, когда мы с клиентом уже все согласовали, договорились: он купил материалы и мы назначили дату и время моего визита.
В этом случае от меня остается только получить от него контакты, за день созвониться и подтвердить явку ну и выполнить, собственно, работу.
Чаты, по которым я считаю, что от меня уже все зависящее для продажи сделано или клиент явно ведет себя так, что ясно, что сделки не будет, я просто деактивирую чат и продолжаю работать со списком “активных чатов”.
Еще чуть выше я вывел динамику создания чатов. В общем, чуть позже хочу сделать аналитику, чтобы можно было понимать, какая конверсия из чатов в монтажи или сколько, например, клиентов отваливается после первых сообщений.
Также можно будет сравнить при наборе статистики, насколько чаще отваливаются клиенты при ответах моего ИИ ассистента.
Это основная панель. Дальше настройки.
Тут есть заготовки сообщений. Особая прелесть этих заготовок в том, что я могу в одном сообщении использовать сколько хочу заготовок и при этом все равно их отредактировать перед отправкой. Это дает огромную гибкость в отличии от стандартных возможностей на Авито.
В основных настройках запрятаны настройки для ИИ ассистента.
Тут включение/отключение бота. Например, утром я еще сам отвечаю, затем собрался ехать на монтаж - включил бота. Ложусь спать - опять включил бота.
Это удобно. Я знаю, что клиенты всегда получат ответ быстро. От меня или от бота.
Возможно, чуть позднее сделаю такую штуку, как расписание. Например, правило, чтобы бот включался и отвечал на сообщения с 22 до 7 утра. Это все несложно.
Далее, можно указать модель, которая работает в сервисе. Вывод в настройки позволяет проводить эксперименты “на лету” и можно переключать разные модели. Все ради баланса и поиска баланса “подешевле” и “качество ответов”.
Еще ниже - системный промт. Этот промт вынесен отдельно, т.к. если я разверну этот же сервис для кого-то другого, то надо будет поменять его и базу FAQ.
Для ответа ИИ ассистент использует этот системный промт, а все остальное собирает из следующих блоков:
- история конкретного чата;
- явное указание последнего сообщения;
- предварительный анализ с помощью ИИ, что хочет человек в данный момент;
- результаты поиска по векторной базе по уже состоявшимся диалогам
Обладая этими инструкциями и контекстом, то, что бот сейчас отвечает, мне нравится.
Т.к. бот может в некоторых нестандартных ситуациях отвечать если не ахинею, то городить знатную чушь. Поэтому, при подключении меня в диалог, можно будет мягко сообщить, где бот наврал.
В любом случае, основную задачу: выцепить из клиента исходные данные для начала диалога и проконсультировать по порядку работ, бот выполняет на ура.
Чуть позднее дам боту еще в контексте доступные даты для монтажа и записью на монтаж тоже будет заниматься он. Это по настройкам.
Монтажи по сути дублируют то, что я уже показывал в Сводной информации. Единственная разница, что тут можно отредактировать запись. Например, поменять дату или просто удалить отмененную запись.
Чаты по умолчанию фильтруются таким образом, что тут только активные. В списке я вижу время и дату последнего сообщения, а также от кого оно было. В фильтре можно при желании отключить активность и воспользоваться поиском. Тут правда работает только по имени пользователей.
Но в любом случае, основные возможности как раз находятся в просмотре чата детально.
Сверху блок с информацией о чате - его id в системе Авито и с датой последнего сообщения. Это я сделал, чтобы убрать по умолчанию время каждого сообщения из таблицы сообщений ниже.
Нужно было, чтобы этот диалог комфортно можно было просматривать с телефона.
Теперь элементы управления.
Первая кнопка, Анализ - еще один ИИ инструмент. Потрясающая штука. Часто бывает, что к емким диалогам в несколько десятков сообщений нужно возвращаться спустя несколько дней и даже недель. При этом размеры объекта и другую информацию, которую клиент мог дать, нужно искать по всему чату.
В нормальном режиме, когда работает менеджер и заполняет карточку общения с клиентом, он должен сразу такие ключевые данные заносить в структурированном виде. На практике этого не так просто добиться от сотрудников.
Но с этой волшебной кнопкой мне это не надо. ИИ анализирует весь диалог и выдергивает данные в структурированном виде:
- размеры;
- предметы;
- адрес или район объекта;
- контактные данные;
- собранные корзины для клиента.
Также на основании последних 5 сообщений определяет текущее состояние дел и делает краткое резюме.
С этим инструментом, есть нюанс. Учитывая, что в истории диалога могут быть персональные данные, необходимо пользоваться моделью, которую можно развернуть локально.
Далее едем, кнопка “Картинки” выкачивает изображения, которые были приложены в процессе общения и формирует галерею. Обычно изображения все относятся к объекту и их удобнее смотреть сразу в одном месте, а не разбросанными по всему чату.
Следующая красная кнопка позволяет убрать активность чата. Если я считаю, что сам уже ничего не сделаю, то деактивирую чат и он пропадает из списка моих рабочих чатов. Однако, система настроена таким образом, что если вдруг клиент мне напишет, то чат опять становится активным. Деактивация производится только вручную.
Обновить - эту кнопку я уберу. Она изначально работала на обновление истории диалога из Авито. Сейчас автоматика настроена так, что в ней нет надобности и все обновляется автоматически.
А вот управление отправкой сообщения заслуживает отдельного внимания. Я уже показывал в самом начале шаблоны ответов. Сейчас покажу, как ими можно пользоваться. Внизу есть выпадающий список, в котором находятся названия. По клику на какой-либо пункт, текст добавляется к черновику ответа.
В некоторых случаях мне может понадобиться несколько шаблонов ответа, которые я хочу отправить в одном сообщении.
Также удобно то, что шаблон после применения можно подправить. Т.е. это не жесткая отправка текста, а имеется возможность отправлять шаблон.
В меню еще осталась группа системных страниц. Обычному пользователю в ней немного нужды, но мне для диагностики возможных неполадок сервиса, она очень помогает. Также тут содержится визуальный инструмент тестирования, как бот будет отвечать на вопросы.
Задаем вопрос, например “Хочу заказать экран в ванную. Можете сделать?”
Для меня это выглядит странным. Ведь они пишут именно по этому объявлению. При этом в тексте у меня все указано, и цены и фото с примерами работ и даже что нужно для того, чтобы все посчитать. Однако, бОльшая часть диалогов… и это именно то, что мне не нравится в этой менеджерской работе, начинается именно так.
Соответственно, если отвечает мой ИИ ассистент, то у него есть несколько вполне четко прописанных инструкций в виде целей, которые он должен выполнить:
- проконсультировать клиента по порядку работ;
- получить от него входную информацию;
- дать ориентир по стоимости для его случая;
Это очень важно, чтобы я когда уже дойду до диалога, мог бы иметь дело с конкретикой. Что мы делаем? какие размеры? Понимает ли клиент, что значит цена, указанная в объявлении и т.п.
Изменение роли Владельца продукта
В общем, основная мысль, которую я хотел бы донести сегодня - это изменение роли Владельца продукта. Буквально еще 2 года назад, это был человек, который на границе бизнеса и разработки. Который в состоянии понять, что нужно бизнесу, что нужно клиенту и как должен выглядеть продукт. Он должен обладать базовой технической экспертизой и понимать, какие существуют технические ограничения для решения той или иной задачи.
И как результат, должен сам принимать непростые решения, в поисках баланса, скорости создания продукта, стоимости разработки и поддержки и в реализуемом функционале цифрового продукта.
И вот важный момент. Если раньше такому человеку нужна была обязательно команда. То сейчас, при наличии хорошего технического бэкграунда и умения формулировать четко свое ТЗ ИИ ассистенту, такие продукты можно создавать и без команды.
Моя основная ценность, как спеца в роли владельца продукта в прошлом была еще в том, что MVP я мог накидать сам очень быстро чтобы показать, как оно будет работать и даже использовать на небольших объемах.
Но сейчас, с возможностями современных LLM моделей, я могу в одно лицо создать масштабируемое решение задеплоить на сервере, покрыть тестами.
Получается, что для людей, которые программировали в прошлом, но потом ушли в управление и которые имеют сильные навыки построения архитектуры, процесс создания крутых продуктов упростился и ускорился в разы…
С нового года буду возвращаться в ИТ скорее всего именно в этой роли: владелец продукта, способный сам запилить и поддерживать этот продукт.
Так что если вы все еще сами не используете агентов, то очень рекомендую найти все же время и поковыряться с ними. Их использование имеет огромное количество ограничений и сложностей, когда речь идет о разработке больших продуктов.
На базе полученного за эти 2 месяца опыта считаю, что вот такого, чтобы “любой джун” на базе промт инжиниринга построил что-то серьезное… нет… до этого еще далеко.