Инженеры Snap разработали систему семантического поиска по своей кодовой базе, объединив векторные представления кода с традиционными методами индексации. Решение позволяет разработчикам находить релевантные фрагменты кода и документацию с помощью естественного языка, что значительно сокращает время на онбординг и отладку сложных систем, насчитывающих миллионы строк кода.

Традиционные инструменты поиска, такие как grep, часто оказываются неэффективными при работе с крупными монорепозиториями, так как они не учитывают контекст и архитектурные связи. Команда Snap реализовала гибридный подход: система использует эмбеддинги для понимания семантики запроса и сопоставляет их с индексированными данными, что позволяет находить не только точные совпадения по ключевым словам, но и функционально похожие участки кода.

Для реализации проекта была создана инфраструктура, которая автоматически обновляет векторные индексы при каждом изменении в репозитории. Это обеспечивает актуальность данных и позволяет агентам, интегрированным в среду разработки, предоставлять точные ответы на вопросы о реализации конкретных функций или поиске потенциальных ошибок в бизнес-логике приложения.

Ключевые факты

  • Система использует гибридный поиск, сочетающий векторные эмбеддинги и классические методы индексации для повышения точности выдачи.
  • Архитектура решения поддерживает работу с масштабными монорепозиториями, обеспечивая актуальность индексов в режиме реального времени.
  • Внедрение инструмента направлено на ускорение процессов разработки, упрощение навигации по коду и снижение нагрузки на инженеров при поиске документации.
  • Решение позволяет агентам-ассистентам давать более точные рекомендации, опираясь на актуальное состояние кодовой базы компании.