# Гайд по RAG и MCP: как соединить ИИ с вашими данными и инструментами

Источник: https://www.youtube.com/watch?v=I7_WXKhyGms
Канал: freeCodeCamp.org
Опубликовано: 22.01.2026

---

Этот практический курс от freeCodeCamp.org посвящен созданию интегрированных ИИ-систем, выходящих за рамки простых чат-ботов. В центре внимания две ключевые технологии: **RAG** (Retrieval-Augmented Generation — генерация с дополненной выборкой) и **MCP** (Model Context Protocol). Ведущий курса объясняет, как RAG позволяет моделям работать с вашими частными данными, а MCP — координировать действия между различными программными компонентами.

## 🧠 Основы RAG: Когда «памяти» модели недостаточно
[[JUMP:00:00]]

Большие языковые модели (LLM), такие как ChatGPT, ограничены данными, на которых они обучались. Если спросить модель о внутреннем регламенте вашей компании, она либо выдаст общую информацию, либо начнет галлюцинировать [01:56]. Простейший способ решить это вручную: скопировать нужный документ и вставить его в промпт. Это и есть суть RAG в миниатюре [02:37].

Полноценная RAG-система автоматизирует этот процесс и состоит из трех этапов:

1.  **Retrieval (Поиск):** Система сама находит релевантные фрагменты в базе документов.
2.  **Augmentation (Дополнение):** Найденная информация добавляется в запрос к ИИ.
3.  **Generation (Генерация):** Модель выдает точный ответ, опираясь на предоставленный контекст [02:50].

### Когда использовать RAG, а когда — Fine-tuning?
Многие ошибочно полагают, что для «обучения» модели новым знаниям нужно дообучение (Fine-tuning). Ведущий приводит четкое разграничение:

*   **Fine-tuning** идеален для изменения стиля общения, тона или следования специфическому формату (например, заставить бота говорить как шотландский CEO) [07:08].
*   **RAG** необходим для работы с динамическими фактами. Дообучение слишком дорогое, медленное и не дает ссылок на источники. RAG же позволяет обновлять информацию мгновенно, просто добавив новый файл в базу [07:49].

## 🔍 Механика поиска: От ключевых слов к смыслам
[[JUMP:08:27]]

Чтобы система нашла нужный документ, используются два подхода: ключевой поиск и семантический поиск.

### Традиционный поиск (Keyword Search)
Самые популярные методы здесь — **TF-IDF** и **BM25** [10:37]. Они подсчитывают частоту слов в документах.

*   **Плюс:** Точно находит конкретные термины (например, артикул товара).
*   **Минус:** Полный провал, если пользователь использует синонимы. Если в документе написано «reimbursement» (возмещение), а пользователь ищет «allowance» (выплата), классический поиск ничего не найдет [16:16].

### Семантический поиск и эмбеддинги
Семантический поиск понимает смысл. Это становится возможным благодаря **эмбеддингам** — преобразованию текста в математические векторы (наборы чисел) в многомерном пространстве [17:22]. 

Для этого используются специализированные модели, такие как `all-miniLM-L6-v2`. В отличие от гигантской GPT-4 с её 1,8 трлн параметров, эта модель имеет всего 22 млн параметров и весит около 90 МБ [19:35]. Это позволяет запускать её локально на ноутбуке для мгновенного превращения текстов в координаты. Похожие по смыслу фразы («собаки в офисе» и «домашние животные на работе») в этом пространстве будут находиться близко друг к другу [25:15].

## 🗄️ Векторные базы данных и искусство чанкинга
[[JUMP:30:58]]

Когда документов тысячи, сравнивать запрос с каждым из них слишком долго. **Векторные базы данных** (Chroma, Pinecone, Weaviate) решают эту проблему с помощью индексации, например алгоритма **HNSW** [32:59]. Он организует векторы в «соседства», позволяя искать только среди похожих объектов [34:29].

### Проблема «длинных документов» (Chunking)
Нельзя загрузить 50-страничный справочник целиком: ответ будет слишком размытым [40:06]. Документы нужно разбивать на части — **чанки**.

*   **Оптимальный размер:** 200–500 символов [43:42].
*   **Наложение (Overlap):** Конец одного чанка должен дублировать начало следующего (обычно на 50–100 символов), чтобы не потерять контекст на месте разрыва предложения [41:25].

## 🛠️ MCP: Универсальный разъем для ИИ
[[JUMP:59:40]]

**Model Context Protocol (MCP)** — это новый открытый стандарт, предложенный для решения проблемы «зоопарка» API. Раньше для каждого сервиса (Google Drive, Slack, GitHub) приходилось писать уникальный код интеграции [1:07:08]. MCP унифицирует это взаимодействие.

### Архитектура MCP
Система работает по принципу «клиент-сервер»:

1.  **MCP Server:** Предоставляет ресурсы (данные), инструменты (функции, которые можно вызвать) и промпты (шаблоны запросов) [1:13:22].
2.  **MCP Client:** Это может быть IDE (Cursor, VS Code) или ИИ-агент, который подключается к серверу [1:08:01].
3.  **Транспорт:** Обмен данными идет через JSON-RPC по протоколам HTTP или Standard IO [1:18:46].

### Почему это важно для агентов?
ИИ-агенты — это скрипты, которые могут «думать» и принимать решения в цикле [1:03:41]. MCP дает им «руки» для взаимодействия с внешним миром. Например, агент через MCP-сервер Stripe может анализировать транзакции, а через сервер GitHub — изучать историю коммитов, объединяя эту информацию для решения бизнес-задач [1:08:54].

## 🚀 Продакшн: Кэширование и мониторинг
[[JUMP:52:54]]

RAG-системы в реальных условиях могут работать медленно (до 1 секунды на запрос). Чтобы этого избежать, ведущий рекомендует внедрять кэширование на четырех уровнях:

1.  **Query Cache:** Сохранение пар «вопрос-ответ».
2.  **Embedding Cache:** Чтобы не пересчитывать векторы для одних и тех же слов.
3.  **Vector Search Cache:** Результаты поиска в базе.
4.  **LLM Response Cache:** Самый дорогой и эффективный уровень [54:37].

Для мониторинга используются классические IT-инструменты: Prometheus для метрик, Grafana для дашбордов и ELK-стек для логов [58:44]. Важно отслеживать не только общую скорость, но и специфические метрики, такие как качество выборки (retrieval quality) [56:08].

---