Перейти к содержанию

RAG по коду

Fluxion индексирует ваш код в векторную базу и подмешивает релевантные фрагменты в промпт при ответах.

В приложении

Страница «Проект»:

  1. Нажмите Выбрать… и укажите папку проекта (запоминается между запусками).
  2. Нажмите Проиндексировать — под кнопкой появится «RAG: N чанков в индексе», в логе — прогресс. Первая индексация скачивает модель эмбеддингов.
  3. Переключитесь на «Чат» — вопросы о коде автоматически пойдут по маршруту rag (в ответе видна метка источников).

Состояние индекса всегда видно на странице «Проект» и в диагностике (кнопка «Состояние» внизу справа, строка «Индекс проекта (RAG)»).

Как это работает

  1. AST-aware чанкинг — tree-sitter разбивает файлы на семантические единицы (функции, классы), а не по символам
  2. Эмбеддинги — BAAI/bge-m3 переводит чанки в векторы
  3. ChromaDB — локальное векторное хранилище (data/chroma)
  4. Маршрутизация — Router решает, нужен ли RAG для конкретного запроса (или форсируется через /rag on)

Индексация

❯ /index .
Searching... Indexing: .
Indexed 247 chunks from .

Индексируется вся директория рекурсивно. Повторный /index обновляет индекс.

Поиск без генерации

❯ /search parse config

Вернёт релевантные чанки из индекса напрямую — без обращения к LLM.

Управление аугментацией

❯ /rag on      # форсировать RAG для всех запросов
❯ /rag off     # вернуть авто-маршрутизацию Router'а
❯ /rag clear   # очистить индекс

Превью маршрутизации

Команда /route показывает, какой маршрут выберет Router, без генерации:

❯ /route how does router classify queries
[strategy=rag]

Конфигурация

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.