Code-RAG — это open-source фреймворк для создания Q&A систем над кодовыми базами. Загрузите ссылку на GitHub репозиторий, и сервис позволит вам задавать вопросы о коде, его структуре и даже генерировать новый код на основе контекста.
- Импорт репозиториев: Укажите URL любого публичного GitHub репозитория для начала анализа.
- Умный парсинг и чанкинг: Автоматическое распознавание языков программирования (
.py,.cpp,.js,.java,.go,.mdи др.) и разделение файлов на осмысленные чанки (функции, классы) с сохранением метаданных. - Векторизация: Создание векторных представлений (embeddings) для кода и их хранение в векторной базе данных.
- Гибкий Q&A:
- Вопросы на естественном языке: Получайте объяснения по архитектуре, логике работы компонентов и связям между файлами.
- Генерация кода: Просите систему написать юнит-тесты, дополнить существующую функцию или исправить баг.
- Продвинутый RAG-пайплайн: Включает в себя модули, такие как
Reranker,RAG_FusionиQuery_Rewriterдля повышения релевантности ответов. - Поддержка любых LLM: Интеграция с моделями через
OpenAI-совместимый API.
- Бэкенд: Python
- Обработка данных и RAG: LangChain / LangGraph / Tree-sitter
- Векторная БД: QDrant
- LLM: Любая модель с OpenAI API (Gemini, Qwen3, etc.)
- Веб-интерфейс (UI): Gradio
На время тестирования решение доступно по ссылке: http://138.124.66.50:8501
Вы можете использовать готовый Docker-Compose файл, либо установить все зависимости вручную.
Прежде всего необходимо склонировать репозиторий:
git clone https://github.com/Alex777Russia/mlsd-code-rag.gitПоложить в файл docker/.env свой API ключ Openrouter/Jina (в текущей версии используется Openrouter), пример можно посмотреть - здесь.
Установка зависимостей:
bash docker/build.shЗапуск приложения:
bash docker/run.shВ конце нужно открыть приложение в браузере по ссылке:
http://0.0.0.0:8501
Чтобы остановить приложение:
bash docker/stop.sh
Положить в файл .env свой API ключ Openrouter/Jina (в текущей версии используется Openrouter), пример можно посмотреть - здесь.
Установка uv:
curl -LsSf https://astral.sh/uv/install.sh | shУстановка зависимостей:
uv syncЗатем необходимо загрузить образ базы данных Qdrant:
docker pull qdrant/qdrantЗатем нужно в отдельном терменале запустить сервер с Qdrant:
docker run -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage qdrant/qdrantИ затем запустить приложение:
uv run python app.pyВ конце нужно открыть приложение в браузере по ссылке:
http://0.0.0.0:8501
Чтобы остановить приложение нужно остановить нажать CTLR + C и остановить контейнер с Qdrant:
docker stop <qdrant_container_id> (id можно посмотреть с помощью команды docker ps)
- [ 01/2026 ] MVP 1.0: Базовый пайплайн: загрузка, парсинг, векторизация и Q&A для одного репозитория.
- [ TODO ] Реализация модуля
Reranker. - [ TODO ] Реализация
RAG_Fusionдля более точного поиска. - [ TODO ] Реализация
Query_Rewriterдля поддержки диалогового режима. - [ TODO ] Разработка простого UI на Streamlit/Gradio.
- [ TODO] Поддержка инкрементального обновления индекса.
Мы приветствуем любой вклад! Если вы хотите улучшить проект, пожалуйста, создайте Issue для обсуждения или Pull Request с вашими изменениями.
Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.