# RAG, минимальный стек и отладка MCP ## Что такое RAG **RAG (Retrieval-Augmented Generation)** — подход, при котором модель отвечает не только из «общих» весов, а **сначала находит релевантные фрагменты в ваших данных** (документы, база знаний, код), подмешивает их в контекст и уже тогда формулирует ответ. ## Из чего состоит RAG-стек 1. **Документы** — `md` / `pdf` / `txt`, wiki, выгрузки и т.д. 2. **Chunking** — разбиение текста на фрагменты фиксированного размера с перекрытием. 3. **Embeddings** — векторное представление каждого фрагмента. 4. **Vector DB** — хранение векторов и поиск ближайших соседей по запросу. 5. **Retriever** — например MCP-инструмент `search_docs`: достаёт релевантный контекст по вопросу пользователя. 6. **LLM** — генерирует ответ с учётом найденного контекста (и при желании с явными ссылками на источники). Плюсы такого контура: - ответы опираются на **ваши** материалы; - обычно **меньше голых галлюцинаций** по фактам из документации; - проще **проверять происхождение** ответа (по найденным чанкам и источникам). ## Минимальная локальная конфигурация (этот репозиторий) Рекомендуемая база: - Embeddings: `nomic-embed-text` (через Ollama) - Vector DB: Qdrant - Retrieval tool: MCP `search_docs` Готовый пример скриптов и compose: каталог [rag-mcp-starter/](rag-mcp-starter/). Минимальная схема: 1. Сложить документы (`md`/`txt`/`pdf`). 2. Разбить на чанки (`chunk_size ~1000`, overlap `~120`). 3. Сделать embeddings. 4. Записать в Qdrant. 5. Поднять MCP-инструмент `search_docs`. 6. Вызывать его из OpenClaude. Быстрый сценарий «с нуля за 30 минут» на Ubuntu: [quickstart-30min.md](quickstart-30min.md). Интеграция с Git и индексация репозитория как базы знаний: [openclaude-with-repositories.md](openclaude-with-repositories.md). ## Чек-лист, если MCP «не виден» 1. MCP-сервер стартует вручную из каталога starter: ```bash cd docs/rag-mcp-starter python mcp_server.py ``` 2. Зависимости установлены: ```bash python -c "import fastmcp, qdrant_client, requests; print('ok')" ``` 3. Пути в `~/.claude/settings.json` корректны (`command`, `args`). 4. Qdrant доступен: `curl http://127.0.0.1:6333/collections` 5. Ollama доступен: `curl http://127.0.0.1:11434/api/tags`