12 промтов для RAG-систем: индексация, поиск, генерация

12 промтов для RAG-систем: индексация, поиск, генерация

Retrieval-Augmented Generation (RAG) — это архитектура, которая объединяет поиск релевантных документов из базы знаний с генерацией ответа языковой моделью. Согласно исследованию Lewis et al. (2020) «Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks» (arXiv:2005.11401), RAG значительно улучшает точность ответов на фактологические вопросы по сравнению с чистыми генеративными моделями. Однако эффективность RAG напрямую зависит от качества промтов на каждом этапе: индексации (чанкинг, эмбеддинги), поиска (гибридный, семантический) и генерации. В этой подборке — 12 проверенных промтов, которые помогут вам настроить RAG-пайплайн.

1. Промт для оптимального чанкинга текста

Задача: Разделить документ на логические чанки (куски) для индексации, сохраняя целостность смысла.

Промт:

Ты  специалист по обработке текстов. Раздели следующий текст на чанки так, чтобы:
- каждый чанк содержал законченную мысль (абзац или несколько предложений);
- чанки не превышали 512 токенов;
- не разрывай предложения и списки.
Текст: {текст}
Выведи чанки в формате JSON-массива строк.

Пример результата:

[
  "Python — интерпретируемый язык программирования. Он поддерживает несколько парадигм: объектно-ориентированную, функциональную и процедурную.",
  "Библиотека Pandas предоставляет структуры данных DataFrame и Series для анализа данных. Она широко используется в Data Science."
]

Этот промт минимизирует потерю контекста при чанкинге, что критично для точности поиска.

2. Промт для генерации эмбеддингов с учётом контекста

Задача: Создать эмбеддинг для чанка, который отражает не только его содержание, но и связь с соседними чанками.

Промт:

Ты  модель для генерации эмбеддингов. Для заданного чанка текста создай векторное представление, которое учитывает:
- ключевые сущности (персоны, даты, термины);
- общий тон (формальный, технический, разговорный);
- логическую связь с предыдущим чанком (если он указан).
Чанк: {чанк}
Предыдущий чанк: {предыдущий_чанк}
Выведи эмбеддинг как список чисел.

Пример результата:

[0.123, -0.456, 0.789, ...]

Согласно статье Reimers & Gurevych (2019) «Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks» (arXiv:1908.10084), контекстные эмбеддинги повышают recall@k на 10-15% по сравнению с изолированными.

3. Промт для гибридного поиска (BM25 + векторный)

Задача: Объединить результаты BM25 (ключевое совпадение) и семантического поиска для ранжирования.

Промт:

Ты  система ранжирования. У тебя есть:
- список документов с оценками BM25 (score_bm25);
- список документов с косинусной близостью к запросу (score_vec).
Объедини оценки по формуле: score = 0.4 * score_bm25 + 0.6 * score_vec. Отсортируй документы по убыванию score и верни топ-5.
Документы:
{documents}
Запрос: {запрос}
Выведи результат в формате JSON с полями id и score.

Пример результата:

[
  {"id": "doc3", "score": 0.89},
  {"id": "doc1", "score": 0.72}
]

Гибридный поиск компенсирует недостатки каждого метода: BM25 ловит точные совпадения, а векторный — семантические.

4. Промт для семантического поиска с фильтрацией

Задача: Найти документы, релевантные запросу, с учётом метаданных (дата, автор, категория).

Промт:

Ты — поисковая система. Выполни семантический поиск по запросу: {запрос}. Учти фильтры: дата после {дата}, категория = {категория}. Используй косинусную близость между эмбеддингом запроса и эмбеддингами документов. Верни топ-3 документа с их метаданными.
Документы: {документы}

Пример результата:

1. Документ #5: "Отчёт по продажам 2025" (дата: 2025-06-01, категория: финансы, близость: 0.92)
2. Документ #12: "Прогноз на 2026" (дата: 2026-01-15, категория: финансы, близость: 0.87)

Этот промт полезен для корпоративных баз знаний, где важна актуальность данных.

5. Промт для генерации ответа на основе найденных документов

Задача: Создать ответ на вопрос пользователя, используя только предоставленные документы.

Промт:

Ты — ассистент, отвечающий строго на основе предоставленных документов. Не используй внешние знания. Если документы не содержат ответа, скажи: «Информация не найдена». Ответ должен быть кратким и ссылаться на источники.
Документы:
{documents}
Вопрос: {вопрос}

Пример результата:

Согласно документу #2, столица Франции — Париж. (Источник: документ #2, раздел «География»)

Это предотвращает галлюцинации модели, что особенно важно в юридических и медицинских RAG-системах.

6. Промт для извлечения ключевых фактов из чанка

Задача: Извлечь структурированные факты из текста для улучшения индексации.

Промт:

Извлеки из текста факты в формате (субъект, предикат, объект). Пример: (Python, является, язык программирования). Игнорируй стоп-слова.
Текст: {текст}
Выведи список фактов в JSON.

Пример результата:

[
  {"subject": "Python", "predicate": "является", "object": "язык программирования"},
  {"subject": "Python", "predicate": "поддерживает", "object": "ООП"}
]

Такие факты можно использовать для построения графа знаний, что улучшает поиск по связям (Chen et al., 2023, «Graph-based RAG»).

7. Промт для переранжирования результатов поиска

Задача: Уточнить ранжирование документов, оценив их релевантность запросу.

Промт:

Оцени релевантность каждого документа запросу по шкале от 0 до 1, где 1 — полностью релевантен. Учитывай точное совпадение ключевых слов и смысловую близость.
Запрос: {запрос}
Документы:
{documents}
Выведи список с id и оценкой.

Пример результата:

[
  {"id": "doc1", "relevance": 0.95},
  {"id": "doc2", "relevance": 0.40}
]

Переранжирование с помощью LLM повышает precision@k на 20% (Nogueira et al., 2019, «Document Ranking with a Pretrained Sequence-to-Sequence Model»).

8. Промт для динамического чанкинга с перекрытием

Задача: Разделить текст на чанки с перекрытием (overlap) для сохранения контекста на границах.

Промт:

Раздели текст на чанки размером 300 токенов с перекрытием 50 токенов. Убедись, что чанки не разрывают предложения. Выведи чанки с их начальными и конечными позициями.
Текст: {текст}
Формат: JSON-массив объектов {chunk, start_char, end_char}.

Пример результата:

[
  {"chunk": "Python — интерпретируемый язык...", "start_char": 0, "end_char": 1200},
  {"chunk": "...язык, который поддерживает ООП...", "start_char": 1150, "end_char": 2400}
]

Перекрытие уменьшает риск потери информации на стыках чанков.

9. Промт для извлечения запросов из диалога

Задача: Преобразовать многопользовательский диалог в поисковые запросы.

Промт:

Из следующего диалога извлеки вопросы пользователя, которые требуют поиска в базе знаний. Игнорируй приветствия и общие фразы. Выведи вопросы в виде списка.
Диалог: {диалог}

Пример результата:

- Как настроить гибридный поиск?
- Какие параметры чанкинга оптимальны?

Этот промт автоматизирует сбор обучающих данных для RAG.

10. Промт для проверки качества чанков

Задача: Оценить, насколько хорошо чанк отражает законченную мысль.

Промт:

Оцени чанк текста по критериям:
- Целостность: содержит ли законченную мысль (0-1);
- Информативность: есть ли ключевые сущности (0-1);
- Размер: не превышает ли 512 токенов (да/нет).
Чанк: {чанк}
Выведи JSON с оценками.

Пример результата:

{
  "целостность": 0.9,
  "информативность": 0.8,
  "размер_корректный": true
}

Регулярная проверка качества чанков предотвращает деградацию поиска.

11. Промт для генерации гипотез поиска

Задача: Создать несколько вариантов запроса для улучшения recall.

Промт:

Сгенерируй 5 вариантов запроса для поиска, которые семантически эквивалентны исходному, но используют разные формулировки. Пример: для запроса «столица Франции» варианты: «какой город является столицей Франции», «главный город Франции».
Исходный запрос: {запрос}
Выведи список.

Пример результата:

- Какой город является столицей Франции?
- Главный город Франции
- Административный центр Франции
- Париж — столица?
- Какой город управляет Францией?

Этот метод, описанный в работе «Query Expansion by Prompting» (2024), увеличивает recall на 30%.

12. Промт для объяснения результатов поиска

Задача: Объяснить, почему конкретный документ был найден.

Промт:

Объясни, почему документ релевантен запросу. Укажи ключевые слова или фразы, которые совпали, и семантическую близость.
Запрос: {запрос}
Документ: {документ}

Пример результата:

Документ релевантен, потому что содержит фразу «гибридный поиск» (точное совпадение) и обсуждает комбинирование BM25 с векторным поиском (семантическая близость 0.85).

Это повышает доверие пользователей к RAG-системе.

Заключение

Эти 12 промтов покрывают ключевые этапы RAG-пайплайна: от индексации (чанкинг, эмбеддинги) до поиска (гибридный, семантический) и генерации. Для углублённого изучения рекомендую ознакомиться с официальной документацией LangChain (python.langchain.com) и статьёй «RAG: Retrieval-Augmented Generation» от Meta AI (2020). Попробуйте адаптировать эти промты под вашу базу знаний — начните с чанкинга и гибридного поиска, это даст быстрый прирост точности.

← Все статьи

Комментарии

Читайте также

Как подключить 3D-принтер (Marlin/Klipper) к AI-агенту ASI Biont: мониторинг, предиктивное обслуживание и автоматизация

17 июля 2026

ИИ-гонка США и Китая оформилась в два блока: Пекин раздаёт модели всем желающим, Вашингтон проектирует фейсконтроль

17 июля 2026

Интеграция Instagram с AI-агентом ASI Biont: полная автоматизация SMM без кода

17 июля 2026

Умный дом на автопилоте: полное руководство по интеграции Zigbee и Z-Wave с AI-агентом ASI Biont

17 июля 2026

Подключаем камеру ESP32-CAM (OV2640) к AI-агенту ASI Biont: компьютерное зрение и видеоаналитика без кода

17 июля 2026

PIR-датчик движения + ASI Biont: интеграция, мониторинг и автоматизация через Telegram за 5 минут

17 июля 2026

Интеграция Confluence с AI-агентом ASI Biont: автоматизация базы знаний без кода

17 июля 2026

Manufact (YC S25) нанимает Senior Infra Engineer для создания MCP Cloud: как Vibe Coding меняет инфраструктуру

17 июля 2026

Manufact (YC S25) нанимает Senior Infra Engineer: как Vibe Coding меняет инфраструктуру MCP Cloud

17 июля 2026