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

Введение

Системы Retrieval-Augmented Generation (RAG) стали стандартом де-факто для построения вопросно-ответных ассистентов, работающих с корпоративными данными. RAG-пайплайн состоит из этапов индексации (чанкинг + эмбеддинги), поиска (векторный, гибридный) и генерации (LLM с контекстом). Каждый этап критически зависит от качества промтов — инструкций, которые управляют чанкингом, запросами к векторной БД и финальным ответом модели. В этой подборке — 15 проверенных промтов, которые помогут вам собрать RAG-систему, способную обрабатывать PDF, код, таблицы и мультиязычные данные.

Категория 1: Базовые промты для индексации и чанкинга

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

Задача: Разбить длинный документ на семантически связные блоки (чанки) для индексации. Традиционные методы (по 512 токенов) часто разрывают предложения. Этот промт использует LLM для поиска естественных границ.

Промт:

Ты — эксперт по подготовке данных для RAG. Разбей следующий текст на чанки. Каждый чанк должен:
- Содержать законченную мысль (1-3 абзаца).
- Не превышать 1024 токена.
- Начинаться с заголовка, если он есть.
- Сохранять контекст: если предложение переносится — заверши его в текущем чанке.

Текст:
{text}

Формат вывода: JSON-список объектов с полями "id", "content", "metadata".

Пример результата:
Для текста «Введение в трансформеры. Модель была предложена в 2017 году. Она использует механизм внимания.» промт вернёт:

[
  {"id": 1, "content": "Введение в трансформеры. Модель была предложена в 2017 году.", "metadata": {"source": "intro"}},
  {"id": 2, "content": "Она использует механизм внимания.", "metadata": {"source": "intro"}}
]

Почему это работает: LLM понимает семантику, а не просто режет по токенам. Это уменьшает потерю контекста при поиске.

2. Промт для генерации метаданных чанка

Задача: Обогатить каждый чанк метаданными: тема, ключевые слова, тип контента (таблица, код, цитата). Это улучшает фильтрацию при поиске.

Промт:

Для данного текстового фрагмента верни метаданные в формате JSON:
{
  "topic": "краткая тема (до 5 слов)",
  "keywords": ["ключевое_слово1", "ключевое_слово2"],
"type": "text

|code|table|quote",
  "entities": ["извлечённые сущности (имена, даты, компании)"]
}

Фрагмент:
{chunk_text}

Пример: Для чанка «В 2023 году OpenAI выпустила GPT-4.» результат: {"topic": "OpenAI GPT-4", "keywords": ["OpenAI", "GPT-4"], "type": "text", "entities": ["OpenAI", "2023"]}. Это позволяет фильтровать поиск по году или компании.

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

Задача: Сгенерировать потенциальные вопросы, на которые отвечает данный чанк. Это используется для синтеза датасета или для улучшения поиска (вопрос-ответная индексация).

Промт:

На основе следующего текста сгенерируй 3-5 вопросов, на которые можно получить ответ из этого текста. Вопросы должны быть разной сложности: фактические, объяснительные, сравнительные.

Текст:
{chunk_text}

Формат: список строк.

Результат: Для чанка про «механизм внимания»: ["Что такое механизм внимания?", "Почему attention важен в трансформерах?", "Чем attention отличается от RNN?"]

Категория 2: Продвинутые промты для поиска

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

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

Промт:

Ты — система ранжирования RAG. У тебя есть два списка результатов поиска:
- Векторный (семантический): {vector_results}
- Ключевой (BM25): {keyword_results}

Объедини их в единый ранжированный список. Правила:
1. Если один и тот же документ есть в обоих списках, оставь одну запись, повысив её релевантность на 0.2.
2. Сначала иди семантические результаты с релевантностью > 0.8, потом BM25 с TF-IDF > 0.6, затем остальные.
3. Выведи топ-5 уникальных результатов с полями "id", "score", "source".

Пример: Если векторный поиск вернул doc A (score 0.9) и doc B (0.7), а BM25 — doc B (score 0.8) и doc C (0.6), то финальный список: doc A (0.9), doc B (0.9), doc C (0.6).

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

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

Промт:

Запрос пользователя: {query}
Список кандидатов:
{chunks}

Оцени каждый кандидат по шкале 0-10 по критериям:
- Прямое совпадение с запросом (0-4)
- Наличие ключевых сущностей (0-3)
- Полнота ответа (0-3)

Верни список id, отсортированный по убыванию суммы баллов.

Результат: Для запроса «Как работает attention?» кандидат с объяснением механизма получит 10, а с упоминанием «attention is all you need» — 7.

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

Задача: Разбить сложный запрос на подзапросы для мульти-хоп поиска (Multi-Hop RAG).

Промт:

Разбей следующий вопрос на подвопросы, каждый из которых можно найти в одном чанке. Подвопросы должны быть независимыми.

Вопрос: {query}

Формат: JSON-массив строк.

Пример: Для вопроса «Какие модели лучше для русского языка?» подзапросы: ["Какие существуют модели для русского языка?", "Каковы метрики этих моделей?"]

7. Промт для поиска по коду

Задача: Искать фрагменты кода по описанию функциональности. Полезно для RAG по репозиториям.

Промт:

Найди в коде функцию, которая {описание}. Верни:
- имя функции
- строку вызова
- файл

Код:
{code_corpus}

Пример: Для запроса «парсит JSON из запроса» промт найдёт def parse_json_request(data): json.loads(data).

Категория 3: Экспертные промты для генерации

8. Промт для ответа с цитированием

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

Промт:

Используя следующие чанки, ответь на вопрос. После каждого факта укажи в квадратных скобках номер чанка [id]. Если чанки не содержат ответа, скажи «Информация не найдена».

Чанки:
{chunks}

Вопрос: {query}

Пример: Ответ: «Механизм внимания был предложен в статье 'Attention is All You Need' [1]. Он позволяет модели фокусироваться на разных частях входа [2].»

9. Промт для мультиязычного RAG

Задача: Индексация на одном языке, ответ на другом. Промт для трансляции и генерации.

Промт:

Ты — полиглот. Чанки даны на {source_lang}. Вопрос на {target_lang}. Ответь на {target_lang}, используя информацию из чанков. Если нужно, перефразируй.

Чанки:
{chunks}

Вопрос: {query}

Пример: Чанки на английском: «Attention is a mechanism.» Вопрос на русском: «Что такое внимание?» Ответ: «Внимание — это механизм, который...»

10. Промт для агрегации нескольких чанков

Задача: Объединить информацию из нескольких чанков в связный ответ, избегая противоречий.

Промт:

У тебя есть несколько чанков, которые могут содержать разную информацию по теме. Синтезируй единый ответ. Если есть противоречия, укажи их и предложи версию с наибольшим подтверждением.

Чанки:
{chunks}

Тема: {query}

Результат: Для чанков о температуре LLM (один говорит 0.7, другой 0.8) ответ: «Рекомендуемая температура варьируется: в одном источнике указано 0.7, в другом — 0.8. Большинство источников сходятся на 0.7.»

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

Задача: Из 10 чанков сделать одно-два предложения.

Промт:

Суммируй ключевую информацию из чанков в 2-3 предложения. Фокус на фактах, без лишних деталей.

Чанки:
{chunks}

Пример: Из чанков про transformer: «Трансформер — архитектура на основе attention, предложенная в 2017. Она заменила RNN в NLP.»

12. Промт для извлечения таблиц из чанков

Задача: Преобразовать табличные данные в Markdown-таблицу для ответа.

Промт:

Из чанков извлеки табличные данные и представь в формате Markdown:

| Колонка1 | Колонка2 |
|----------|----------|
| значение | значение |

Чанки:
{chunks}

Запрос: {query}

Результат: Для чанка с ценами: `

| Модель | Цена | | GPT-4 | $0.03 |`.

13. Промт для обработки PDF с layout

Задача: Сохранить структуру PDF (колонки, заголовки) при индексации.

Промт:

Ты — парсер PDF. Текст содержит позиционные метки (x, y). Восстанови логическую структуру: заголовки, колонки, списки. Игнорируй номера страниц.

Данные:
{ocr_data}

Пример: Для двух колонок (x=10 и x=300) промт соберёт текст в правильном порядке.

14. Промт для фильтрации шума в чанках

Задача: Удалить boilerplate (навигация, cookie, копирайт) из веб-страниц.

Промт:

Очисти текст от мусора: удали строки, содержащие "Cookie", "©", "меню", "реклама". Сохрани только основной контент.

Текст:
{raw_text}

Результат: Из страницы с меню и футером останется только статья.

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

Задача: Оценить, насколько чанк подходит для RAG (информативность, связность).

Промт:

Оцени чанк по шкале 0-10:
- Информативность (есть ли факты): 0-4
- Связность (нет ли обрыва): 0-3
- Отсутствие шума: 0-3

Чанк:
{chunk}

Верни число.

Пример: Чанк «Модель...» с обрывом получит 2.

Заключение

Эти 15 промтов покрывают весь RAG-пайплайн: от чанкинга до генерации с цитированием. Начните с базовых (чанкинг, метаданные), затем переходите к гибридному поиску и мультиязычности. Используйте их как шаблоны, адаптируя под вашу LLM и векторную БД. Помните: качество RAG на 80% зависит от индексации и поиска, а промты — это ключ к их настройке. Экспериментируйте, замеряйте метрики (MRR, Recall) и делитесь результатами в комментариях!

← Все статьи

Комментарии

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

15 промтов для написания unit-тестов и интеграционных тестов на Python и JavaScript

16 июля 2026

Как подключить HDMI-дисплей на Raspberry Pi к AI-агенту ASI Biont: автоматизация уведомлений и дашбордов без программирования

16 июля 2026

Vibe Coding на практике: как использовать Gemini Canvas для создания приложений без кода

16 июля 2026

Курс по интеллектуальной собственности на Asibiont: AI-управляемое освоение права ИС по Гражданскому кодексу РФ

16 июля 2026

Kimi K3 вышел: как Vibe Coding меняет разработку и что это значит для AI-автоматизации

16 июля 2026

COM-порт и RS-232: как AI-агент ASI Biont оживляет промышленные датчики без единой строки кода

16 июля 2026

Интеграция Modbus/TCP (PLC, RTU) с AI-агентом ASI Biont: управление промышленным оборудованием через чат

16 июля 2026

False positive под небом цвета телевизора, настроенного на мертвый канал: как ложные срабатывания ломают системы и что с этим делать

16 июля 2026

Goes-19 Weather Satellite входит в безопасный режим: что это значит для прогнозирования погоды и как «Vibe Coding» меняет подход к космическим данным

16 июля 2026