Всем привет! Я Иван, продакт менеджер zool.ai в компании Programming Store. И я состою в айти-чате примерно на двести человек. Там постоянно что-то происходит: обсуждаем новости, спорим про технологии, делимся мемами и иногда кодом.
Сообщений так много, что новые участники просто теряются. Они пишут короткое интро о себе, и через пару минут его уже никто не видит.
В какой-то момент я задумался, можно ли помочь людям находить друг друга в этом шуме. Ведь у многих общие интересы, просто они не пересекаются.
Так появилась идея создать бота, который помогает знакомиться не случайно, а по интересам. В этой статье расскажу, как мы с командой его сделали.
От хаоса к смыслам
Если вы хоть раз администрировали чат или просто были участником большого сообщества, то представляете, как это выглядит. Поток сообщений не останавливается ни на минуту: шутки, стикеры, короткие реплики вроде «+1». А интро, где люди рассказывают о себе, быстро теряются в этом шуме и остаются без внимания.
Из тысячи сообщений осмысленных — единицы. Мы захотели это исправить и придумали, каким должен быть бот. Он должен уметь три вещи:
- Находить совпадения по интересам. Чтобы люди, близкие по взглядам или профессии, быстрее находили друг друга.
- Отсеивать шум. Выделять из всего потока только те сообщения, где человек рассказывает о себе.
- Делать точные мэтчи. Не просто «оба из IT», а, например, «оба увлекаются нейросетями и кино». То, с чего легко начать разговор.
Как мы подошли к решению
Мы поняли: если всё делать вручную, никто не справится. Сообщений слишком много, люди слишком разные. Поэтому система должна работать автоматически, но при этом давать возможность человеку вмешаться.
Так появились два главных принципа:
- Максимальная автоматизация. Бот сам фильтрует сообщения, находит интро и подбирает совпадения.
- Панель для модераторов. У модераторов есть панель, где можно проверить мэтчи, исправить ошибки и вручную соединить людей.
Для нас это был не просто очередной проект. Мы хотели проверить, можно ли доверить алгоритму самую человеческую задачу — знакомить людей.
Как работает бот
Когда бот попадает в чат, он не просто сидит и наблюдает. Сначала он «знакомится» с пространством: узнаёт, как называется чат, кто там пишет и что вообще происходит в беседе. После этого подключается к системе и готов к работе.
Шаг 1. Фильтруем шум
Сначала бот пытался обрабатывать все сообщения подряд. Но быстро стало ясно, что большая часть из них — стикеры, мемы или короткие реакции вроде «+1». Настоящих интро, где люди рассказывают о себе, оказалось меньше 20%. Мы научили бота различать смысловые сообщения и брать в работу только те, где есть хотя бы несколько предложений.
Шаг 2. Проверяем, что это действительно интро
Не каждое длинное сообщение самопрезентация. Кто-то просто пишет длинный комментарий. Поэтому бот проверяет, действительно ли человек рассказывает о себе: кто он, чем занимается, какие у него интересы. Если да — сообщение сохраняется и готовится к анализу. Всё остальное бот просто пропускает.
Шаг 3. Находим смысл
Чтобы сравнивать тексты между собой, бот переводит их в числовое представление. Это нужно, чтобы система понимала, насколько два сообщения похожи по идее, даже если слова разные. Так бот может определить, что «люблю машинное обучение» и «интересуюсь нейросетями» — это одно и то же направление.
Шаг 4. Сравниваем интро и подбираем совпадения
Каждый раз, когда появляется новое интро, бот сравнивает его со всеми, что были раньше. Если находит людей с близкими интересами, записывает их как потенциальный мэтч и сообщает об этом. Так появляются первые знакомства. Иногда с точностью до совпадения хобби.
Шаг 5. Когда алгоритму помогает человек
Не всё делает алгоритм. У модераторов есть панель управления, где можно посмотреть результаты, поправить совпадения или даже вручную соединить людей, если бот кого-то пропустил. Это помогает сохранять баланс между автоматикой и человеческим участием.
Что мы поняли, пока бот учился знакомить людей
Когда система заработала, всё выглядело просто: бот подключается, читает сообщения, находит совпадения. Но в реальности всё оказалось сложнее и интереснее.
- Без очередей и фоновых процессов никуда. Новые интро появляются каждую минуту, и каждое нужно сравнить со всеми, что уже есть в базе. Если делать это сразу, бот просто зависнет. Мы научили его обрабатывать задачи в фоне — теперь мэтчи появляются за пару секунд, даже при большой нагрузке.
- Важна надёжность. Иногда внешние сервисы недоступны, и бот может не успеть посчитать совпадение. Мы добавили механизм повторов, чтобы ни одна задача не терялась. Это мелочь, но без неё система перестала бы быть предсказуемой.
- Кеш и аккуратность.Мы сохранили все совпадения и сделали защиту от дубликатов. Если два человека уже были в мэтче, бот не соединяет их повторно.
- Доверие пользователей. Мы не сохраняем весь поток сообщений, только интро, которые прошли фильтр. Это снижает нагрузку и решает вопрос приватности. Люди видят, что их данные используются осознанно, и охотнее участвуют в проекте.
Что пришлось поменять
Когда мы запустили первую версию бота, всё работало… но не идеально. Некоторые вещи пришлось переделывать на ходу.
- Во-первых, убрали полное логирование сообщений. Оказалось, что хранить всё подряд не нужно — достаточно сохранять только интро, где люди действительно рассказывают о себе. Это сразу снизило нагрузку и сделало систему проще.
- Во-вторых, немного снизили чувствительность алгоритма. Раньше бот считал совпадением только почти идентичные тексты, но мы поняли, что это чересчур строго. После настройки порога точности с 0.85 до 0.75 мэтчей стало больше.
- И наконец, отказались от фильтра «стоп-слов». Он мешал интро, где люди писали на двух языках сразу — бот просто не понимал такие сообщения.
Что получилось в итоге
- Теперь мэтчи появляются уже через несколько секунд после публикации интро.
- Около 70% совпадений приводят к новым диалогам — люди действительно начинают общаться.
- А у админов наконец освободилось время. Им больше не нужно вручную подбирать, кто с кем подружится — бот делает это сам.
Результаты мы закрепили в картинках: наглядно видно, как бот работает и как менялась активность сообщества после запуска.
Что дальше
Наш MVP уже ожил и показывает, что идея работает. Теперь самое интересное — развивать бота и делать мэтчи ещё точнее. Мы собрали целый список идей.
- Темы мэтчей. Хотим, чтобы бот не просто знакомил людей, а сразу показывал, что их объединяет: карьера, хобби или технологии.
- Контекст общения. Пока бот анализирует только интро, но ведь люди раскрываются в разговорах. Если учитывать стиль общения, совпадения станут точнее и естественнее.
- Обратная связь. Когда мэтч «зашёл», бот должен это понимать и учитывать в будущем. Так он будет учиться на опыте самих пользователей.
- Событийные мэтчи. Например, найти собеседника, который тоже едет на ту же конференцию или живёт рядом. Так из чатов вырастают офлайн-знакомства.
- API для сообществ. Мы хотим, чтобы администраторы могли легко подключать бота в свои Telegram-чаты или корпоративные платформы.
- В будущем — перейти от «пары для диалога» к маленьким группам по интересам. Так в чатах будут появляться не только новые знакомства, но и микросообщества.
Мы продолжаем тестировать идеи и собирать кейсы. Делимся результатами и инструментами в Telegram-канале — AI из Гаража
Раньше люди просто листали чат, не зная, с кем заговорить. Теперь они встречаются не случайно, а по интересам. Бот помогает находить тех, кто на одной волне. Пара секунд — и «It’s a match!» ❤️
Мы убедились, что алгоритм может знакомить людей не хуже живого модератора. А вы доверили бы боту выбрать вам собеседника?