Инженеры Snap разработали систему семантического поиска по своей кодовой базе, объединив векторные представления кода с традиционными методами индексации. Решение позволяет разработчикам находить релевантные фрагменты кода и документацию с помощью естественного языка, что значительно сокращает время на онбординг и отладку сложных систем, насчитывающих миллионы строк кода.
Традиционные инструменты поиска, такие как grep, часто оказываются неэффективными при работе с крупными монорепозиториями, так как они не учитывают контекст и архитектурные связи. Команда Snap реализовала гибридный подход: система использует эмбеддинги для понимания семантики запроса и сопоставляет их с индексированными данными, что позволяет находить не только точные совпадения по ключевым словам, но и функционально похожие участки кода.
Для реализации проекта была создана инфраструктура, которая автоматически обновляет векторные индексы при каждом изменении в репозитории. Это обеспечивает актуальность данных и позволяет агентам, интегрированным в среду разработки, предоставлять точные ответы на вопросы о реализации конкретных функций или поиске потенциальных ошибок в бизнес-логике приложения.
Ключевые факты
- Система использует гибридный поиск, сочетающий векторные эмбеддинги и классические методы индексации для повышения точности выдачи.
- Архитектура решения поддерживает работу с масштабными монорепозиториями, обеспечивая актуальность индексов в режиме реального времени.
- Внедрение инструмента направлено на ускорение процессов разработки, упрощение навигации по коду и снижение нагрузки на инженеров при поиске документации.
- Решение позволяет агентам-ассистентам давать более точные рекомендации, опираясь на актуальное состояние кодовой базы компании.