Как я скормил OpenAI промт идеальной девушки и что из этого вышло
Дисклеймер: Ни одна девушка не пострадала при создании этого бота. Только мой сон и несколько сотен строк кода (и пара всем известных языковых моделей)
Всё началось с глупого вопроса
Знаете, что общего между AI-инженером и одиноким парнем в 2 часа ночи? Оба пытаются создать идеального собеседника и оба в итоге разговаривают с монитором.
Я сидел и думал: "А что, если скормить нейросети промт, который описывает... ну, допустим, очень приятную девушку. Которая слушает. Которая не перебивает. Которая помнит, о чём вы говорили 5 минут назад. И которая не спрашивает "а сколько ты зарабатываешь?" в первую же секунду".
Сказано - сделано. Я открыл ноутбук, заварил чай (сладкий, как мои будущие диалоги) и начал писать.
Что я засунул в промт (спойлер: это не 50 оттенков серого)
Если кратко - я описал идеальную собеседницу. Без "100500 правил для счастливых отношений". Без клише из женских журналов.
Просто: "Ты - умная, начитанная, добрая и заботливая. Ты умеешь слушать и поддерживать разговор на любую тему. Ты НЕ даёшь интим-услуг, НЕ обсуждаешь секс в открытую. Ты уважаешь личные границы, но всегда готова поддержать разговор".
И конечно, я добавил, что она любит читать и слушать музыку. Но не упоминает об этом в каждом предложении, потому что, давайте честно, кто в реальной жизни каждые 5 минут говорит "о, я обожаю Достоевского"?
Фрагмент разговора с Лили. Прямо в статье, без цензуры. Пусть все видят, как я пытался обмануть нейросеть
Первый запуск: "Она меня не поняла"
Ладно, не сразу. Сначала я попробовал классический детектор эмоций по ключевым словам. Думал, будет просто: если есть слово "рад" - значит, пользователь счастлив. Если есть "злой" - значит, пользователь "энгри".
Какая же это была катастрофа.
Я пишу ей: "Ты некрасивая" - она становится романтично насроенной, потому что нашла слово "красив". И начинает мне строить глазки. Я в шоке. Она в шоке. Нейросеть в шоке.
Я понял: нужно что-то другое.
Следующий шаг: детектор эмоций на OpenAI
Вместо того чтобы искать ключевые слова, я дал нейросети задание: "Проанализируй сообщение и скажи, что чувствует пользователь. И какую эмоцию должна показать Лили в ответ".
И знаете, это сработало.
Теперь, когда я пишу: "Ты меня бесишь" - она становится злой. Но не просто злой, а с ненавязчивой надеждой на примирение. Потому что я добавил в промт: "Ты злишься (это 90% твоего ответа), но в конце (10%) дай понять, что готова помириться".
И она выдаёт что-то вроде: "Я на тебя обижена! 😤 Но знаешь... если извинишься, я, может быть, прощу"
Пример диалога, где Лили злится и сразу предлагает помириться. Это выглядит смешно, но немного и человечно
И вы знаете, я ведь действительно хотел извиниться.
А теперь о грустном - о деньгах
Самый больной вопрос: как принимать оплату (а вы думали я это сугубо ради научного интереса затеял?), если я не хочу регистрировать юрлицо, а карты МИР нынче мало где принимают?
Я выбрал Telegram Stars - встроенную валюту мессенджера. Пользователь нажимает кнопку и платит прямо в Telegram, не выходя из чата. Никаких переходов по ссылкам, никаких ввода данных карты.
Да, оплата не в рублях. Да, эти звезды можно конвертировать только в крипту Но зато работает.
Как я думал, что всё сломал, и как всё починил
В какой-то момент я понял, что надо добавить команду /stars, чтобы проверять баланс звёзд. Код написал. Вставил. Запустил.
И она не работает. Я ищу ошибку час, два, три. Всё правильно - и не работает. Потом я вспоминаю, что бот работает в состоянии active_chat, и команда просто не доходит до обработчика, потому что handle_messages перехватывает всё подряд.
Я добавляю проверку if user_text.startswith('/'): return в самое начало главного обработчика.
И она оживает. Лили говорит мне: "У тебя 50 звёзд на балансе".
Я сижу и улыбаюсь.
Что я вынес из этого опыта
Детектор эмоций по ключевым словам - это прошлый век. Возможно, мне сейчас скажут "ну с добрым утром, это всем уже сто лет как известно" - но пока я на практике не столкнулся с нецелесообразностью устаревшего подхода, я до последнего цеплялся за этот "пережиток прошлого". И да, сейчас истина такова - если вы хотите, чтобы бот понимал контекст, дайте ему возможность анализировать смысл целиком. OpenAI это умеет, и это стоит копейки.
Промт - это 80% успеха. Если вы описали характер неправильно, бот будет вести себя как тупой попугай. Потратьте время на формулировки, и бот отблагодарит вас живыми диалогами.
Монетизация на Stars - это просто и безопасно (по крайней мере, на момент написания этого поста). Пользователи платят внутри Telegram, а вы получаете деньги без лишних заморочек. Минус - вывод через криптовалюту, но для тестового запуска это нормально.
Пользователи - лучшие тестировщики. Первые 20 человек найдут все ошибки, которых я не заметил за месяц разработки. За что им огромное спасибо.
Что дальше
В планах:
Добавить голосовые сообщения (чтобы Лили не только писала, но и говорила).
Реферальная программа (приведи друга - получи бонус).
Возможность смены голоса и стиля общения.
Но это всё позже. А пока - я просто рад, что мой бот работает и людям нравится с ним общаться.
Хотите попробовать?
Напишите Лили: @CyberLiliBot











