Базовый RAG-компонент для локального семантического поиска на Python
На
Хабре представлен open-source модуль quad_rag_core — лёгкое Python-ядро для локального RAG и семантического поиска по папкам проекта. Поводом стала потребность в автономном поиске для работы с кодовой базой через LLM-агентов на фоне риска, что встроенный семантический поиск в инструментах вроде Kilo Code может стать платным.
Ключевая идея — RAG-компонент как watch-сервис с автоматическим жизненным циклом индекса: сервис создаёт коллекцию в Qdrant, сканирует файлы, а затем через watchdog ловит события ФС (создание/изменение/перемещение/удаление) и пересобирает только затронутые чанки. Состояние восстанавливается после перезапуска из метаданных, сохранённых прямо в Qdrant (специальная точка с фиксированным UUID).
- Ядро включает QdrantManager, RAGFileWatcher, PathWatcherManager; есть проверки конфликтов путей, чтобы не отслеживать вложенные папки одновременно.
- Локальные модели оформлены как Singleton: эмбеддинги на nomic-ai/nomic-embed-text-v2-moe (dual-prompt: passage/query), реранкинг на BAAI/bge-reranker-v2-m3; поддержаны CUDA и батчи (например, batch_size=32).
- PDF парсятся через 3 бэкенда с fallback (PyPDF2 → fitz → pdfplumber). В конфиге заданы параметры чанкинга и пороги (CHUNK_SIZE_WORDS=150, overlap=0.15, score threshold 0.150/0.35), а также отложенная обработка изменений (по умолчанию 0.5 с).
Автор протестировал ядро в двух обёртках (MCP-сервер для LLM и локальный web-интерфейс) и отмечает почти мгновенное обновление индекса. В качестве общего вывода фиксируется сдвиг роли разработчика в сторону управления «виртуальной фабрикой» AI-разработчиков и переход от CAD к AIAD.
Читайте также
Заглянуть под капот ИИ-агентов: новый инструмент раскрывает «магию» Claude Code
Запуск gpt-oss на 20B и 120B параметров на Core i9: сравнение инференса на CPU и GPU (RTX 4090)
Протокольные войны agentic-commerce приходят в e-commerce; Perplexity говорит, что реклама подрывает доверие к AI
Четыре проекта на Kwork, которые автор отклонил, и почему
Обновлённый Sonnet от Anthropic лучше использует компьютер — и временами проявляет экзистенциальную тревогу
- RAG как watch-сервис с инкрементальным обновлением индекса: Для локального семантического поиска по проекту полезна архитектура «watch-сервис»: система один раз сканирует папку, создаёт коллекцию в векторной БД и далее автоматически реагирует на события ФС (создание/изменение/перемещение/удаление). При изменении пересчитываются и переиндексируются только затронутые чанки, что снимает необходимость ручных full-reindex и снижает стоимость поддержания актуальности контекста.
[RAG / локальный поиск]
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться