Несколько месяцев назад я отлаживал конвейер RAG для внутреннего инженерного репозитория. Разработчик напечатал: «Каков лимит времени ожидания в config_v2.py для рабочего пула № 4?» Система, опирающаяся на популярную базу данных управляемых векторов и современную...
Несколько месяцев назад я отлаживал конвейер RAG для внутреннего инженерного репозитория. Разработчик напечатал:
«Каков лимит времени ожидания в config_v2.py для рабочего пула № 4?»
Система, опирающаяся на популярную управляемую векторную базу данных и современные косинусные встраивания, уверенно извлекла пять абзацев, посвященных передовым практикам рабочих потоков, устойчивости микросервисов и шаблонам масштабирования пула потоков.
Он полностью пропустил однострочный комментарий в config_v2.py, где было определено WORKER_POOL_4_TIMEOUT = 45.
Почему? Потому что математически имя переменной и точное целое число не имеют высокого семантического сходства с абстрактным вопросом об архитектуре.
Той ночью я проверил законопроект об инфраструктуре. Мы платили сотни долларов в месяц за кластер векторных экземпляров, хранящих менее 80 мегабайт текста и кода. Мы добавили сетевые переходы, холодный запуск, ограничения скорости API и дополнительный уровень эксплуатационной сложности — только для того, чтобы ухудшить точность поиска того, что больше всего волнует инженеров: точных ключевых слов, кодов ошибок, номеров версий и путей к файлам.
Я решил снести его и построить заново, исходя из первых принципов.
Никаких облачных баз данных. Никаких тяжелых контейнеров. Просто SQLite FTS5