RAG по коду¶
Fluxion индексирует ваш код в векторную базу и подмешивает релевантные фрагменты в промпт при ответах.
В приложении¶
Страница «Проект»:
- Нажмите Выбрать… и укажите папку проекта (запоминается между запусками).
- Нажмите Проиндексировать — под кнопкой появится «RAG: N чанков в индексе», в логе — прогресс. Первая индексация скачивает модель эмбеддингов.
- Переключитесь на «Чат» — вопросы о коде автоматически пойдут по маршруту
rag(в ответе видна метка источников).
Состояние индекса всегда видно на странице «Проект» и в диагностике (кнопка «Состояние» внизу справа, строка «Индекс проекта (RAG)»).
Как это работает¶
- AST-aware чанкинг — tree-sitter разбивает файлы на семантические единицы (функции, классы), а не по символам
- Эмбеддинги — BAAI/bge-m3 переводит чанки в векторы
- ChromaDB — локальное векторное хранилище (
data/chroma) - Маршрутизация — Router решает, нужен ли RAG для конкретного запроса (или форсируется через
/rag on)
Индексация¶
Индексируется вся директория рекурсивно. Повторный /index обновляет индекс.
Поиск без генерации¶
Вернёт релевантные чанки из индекса напрямую — без обращения к LLM.
Управление аугментацией¶
❯ /rag on # форсировать RAG для всех запросов
❯ /rag off # вернуть авто-маршрутизацию Router'а
❯ /rag clear # очистить индекс
Превью маршрутизации¶
Команда /route показывает, какой маршрут выберет Router, без генерации:
Конфигурация¶
rag:
embedding_model: BAAI/bge-m3 # модель эмбеддингов
embedding_device: cpu # cpu / cuda
chroma_dir: data/chroma # путь к хранилищу
top_k: 8 # число источников в промпте
API¶
Индексация доступна через REST:
curl -X POST http://localhost:8765/api/rag/index \
-H "Content-Type: application/json" \
-d '{"path": "."}'
Подробнее — в API reference.