Семантический поиск людей по интересам, навыкам и роду деятельности — система понимает смысл запроса, а не только ключевые слова
iBrave — платформа для боевых видов спорта с тысячами зарегистрированных пользователей: спортсменов, тренеров, менеджеров, организаторов мероприятий и экспертов индустрии. Платформе требовался умный поиск людей по интересам — готовых решений под эту задачу на рынке не существовало. Мы разработали систему с нуля: от архитектуры до деплоя, полностью под специфику платформы и русскоязычную аудиторию.
Стандартный текстовый поиск не справлялся с задачей поиска людей на растущей платформе:
Обычный поиск находил только точные совпадения слов. Запрос «боксёр» не находил профили с «боксом» или «boxing»
«Программист» и «разработчик» — для системы это разные люди. Пользователи не находили релевантных специалистов
Пользователи хотели искать людей в своём городе, но совмещать текстовый поиск с географией было неудобно
С ростом базы профилей поиск замедлялся. Нужно было решение, которое масштабируется на десятки тысяч анкет
Пользователи получали список из сотен профилей без понимания кто из них действительно подходит под запрос
Система не различала «тренер по боксу» и «тренер по фитнесу» — оба попадали в выдачу по слову «тренер»
Создать интеллектуальную систему поиска людей, которая:
Спроектировали и разработали с нуля двухслойную систему семантического поиска. Выбрали русскоязычную языковую модель FRIDA и векторную базу FAISS, собрали собственную базу знаний с тематическими синонимами. Система понимает смысл текста и находит релевантных людей даже по косвенным признакам.
Для коротких точных запросов используется лемматизация через pymorphy3 — «боксёра» превращается в «боксёр». Быстро находит профили с точным вхождением слов.
Запрос преобразуется в числовой вектор через модель FRIDA (ai-forever). FAISS за миллисекунды находит профили с похожим смыслом среди тысяч анкет.
Создали словарь тематических терминов с синонимами (бокс, MMA, IT, маркетинг). Система расширяет запрос перед поиском и точнее определяет категорию.
Система извлекает город из текста запроса автоматически. Люди из указанного города идут первыми в выдаче, остальные — после.
Популярные запросы кешируются в Redis. Повторные поиски отдаются мгновенно без повторных вычислений векторов.
Поиск развёрнут как отдельный Docker-контейнер с собственным API. Легко масштабируется и обновляется независимо от основной платформы.
FRIDA (ai-forever)
FAISS (Meta)
Redis
Python / Flask
Docker
pymorphy3
время ответа на запрос
точнее результаты поиска
синонимов в базе знаний
профилей в индексе
рост использования поиска
работа без простоев
Разработанный с нуля семантический поиск кардинально изменил пользовательский опыт на платформе. Теперь спортсмены находят тренеров, менеджеры — спортсменов, а организаторы — всех участников индустрии. Кастомное решение учитывает специфику русского языка и тематику боевых видов спорта — такого не даст ни одна готовая система.
Раньше пользователи жаловались что не могут найти нужных людей. Теперь поиск понимает что имеет в виду человек — вводишь «боец MMA Астана» и получаешь именно бойцов из Астаны, а не всех подряд с этими словами в профиле. Это совсем другой уровень.
Свяжитесь удобным способом или оставьте заявку — ответим в течение рабочего дня.