c589a216be
Made-with: Cursor
63 lines
3.2 KiB
Markdown
63 lines
3.2 KiB
Markdown
# 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`
|