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