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

Введение

RAG (Retrieval-Augmented Generation) — это архитектура, которая объединяет поиск информации и генерацию текста. Вместо того чтобы полагаться только на знания модели, RAG-система сначала находит релевантные документы в базе знаний (например, в векторной БД), а затем передает их LLM для ответа. По данным исследования LangChain (2025), RAG-системы увеличивают точность ответов на 40–60% по сравнению с чистой генерацией, особенно в доменах с узкоспециализированными данными. Но без правильных промтов даже лучшая векторная база не даст результата. В этой подборке — 15 готовых промтов для всех этапов RAG: чанкинг, эмбеддинги, гибридный поиск, генерация ответов. Каждый промт сопровождается примером использования и кодом на Python.

1. Промт для чанкинга: разбивка текста на смысловые блоки

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

Промт:

Раздели следующий текст на логические чанки. Каждый чанк должен содержать законченную мысль или описание одного объекта. Не разрывай предложения. Если текст содержит маркированные списки — каждый пункт может быть отдельным чанком. Верни результат в формате JSON-массива строк.

Текст:
{текст_документа}

Пример использования:

text = """RAG-системы состоят из трех этапов: индексация, поиск и генерация. На этапе индексации документы разбиваются на чанки и преобразуются в эмбеддинги. Поиск выполняется по векторной базе данных, например FAISS. Генерация объединяет найденные документы с запросом пользователя."""

prompt = f"""Раздели следующий текст на логические чанки. Каждый чанк должен содержать законченную мысль или описание одного объекта. Не разрывай предложения. Верни результат в формате JSON-массива строк.

Текст:
{text}"""
# Вызов LLM

Результат: ["RAG-системы состоят из трех этапов: индексация, поиск и генерация.", "На этапе индексации документы разбиваются на чанки и преобразуются в эмбеддинги.", "Поиск выполняется по векторной базе данных, например FAISS.", "Генерация объединяет найденные документы с запросом пользователя."]

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

Задача: Указать модели, как именно преобразовывать текст в вектор, чтобы эмбеддинги отражали семантику, а не просто частоту слов. Особенно важно для моделей типа text-embedding-ada-002 или all-MiniLM-L6-v2.

Промт:

Сгенерируй эмбеддинг для следующего текста. Учитывай контекст: это часть технической документации по RAG. Вектор должен отражать ключевые понятия: разбиение, индекс, поиск, генерация. Избегай шума от стоп-слов. Текст: {текст_чанка}

Пример:

chunk = "На этапе индексации документы разбиваются на чанки и преобразуются в эмбеддинги."
prompt = f"Сгенерируй эмбеддинг для следующего текста. Учитывай контекст: это часть технической документации по RAG. Вектор должен отражать ключевые понятия: разбиение, индекс, поиск, генерация. Избегай шума от стоп-слов. Текст: {chunk}"
# Вызов модели эмбеддингов

3. Промт для гибридного поиска: объединение BM25 и векторного поиска

Задача: Составить запрос, который одновременно использует ключевые слова (BM25) и семантический поиск (эмбеддинги). Это повышает recall на 25–30% (по данным Elasticsearch, 2025).

Промт:

Выполни гибридный поиск по запросу: {запрос_пользователя}. Используй два подхода:
1. Ключевой поиск (BM25) с весами для терминов: {термины}
2. Векторный поиск по эмбеддингам с метрикой cosine similarity.
Объедини результаты с помощью RRF (Reciprocal Rank Fusion). Верни топ-5 документов с указанием источника (BM25 или векторный).

Пример:

query = "как разбивать документы для RAG"
terms = ["разбиение", "чанкинг", "документ", "RAG"]
prompt = f"Выполни гибридный поиск по запросу: {query}. Используй BM25 с весами для терминов: {terms}. Объедини с векторным поиском через RRF."
# Вызов API поиска

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

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

Промт:

У тебя есть список документов, найденных по запросу: "{запрос}". Отранжируй их по релевантности. Учитывай:
- Прямое совпадение ключевых слов
- Семантическую близость
- Полноту ответа на вопрос
Верни список в порядке убывания релевантности с оценкой от 1 до 10.

Документы:
{doc1}
{doc2}
...

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

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

Промт:

Ответь на вопрос, используя ТОЛЬКО следующие документы. Не добавляй информацию из своего обучения. Если документы не содержат ответа, скажи: "Информация не найдена в предоставленных документах."

Вопрос: {вопрос}

Документы:
{документы}

Ответ:

6. Промт для проверки фактов в сгенерированном ответе

Задача: Верифицировать, что ответ LLM соответствует источникам.

Промт:

Проверь, соответствует ли следующий ответ предоставленным документам. Укажи, какие утверждения подтверждаются, а какие — нет. Если ответ содержит информацию не из документов — отметь это как "галлюцинация".

Документы:
{документы}

Ответ:
{ответ}

Результат проверки:

7. Промт для извлечения ключевых сущностей из запроса

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

Промт:

Извлеки из запроса ключевые сущности: термины, даты, имена собственные, названия технологий. Верни в формате JSON: {"термины": [...], "даты": [...], "технологии": [...]}.

Запрос: {запрос}

8. Промт для рерайтинга запроса (query rewriting)

Задача: Переформулировать запрос пользователя, чтобы улучшить поиск в векторной БД.

Промт:

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

Исходный запрос: {запрос}

Переписанный запрос:

9. Промт для дедупликации документов

Задача: Удалить дублирующиеся или очень похожие чанки перед индексацией.

Промт:

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

Чанки:
{чанки}

10. Промт для создания эмбеддингов с учетом домена

Задача: Адаптировать эмбеддинги под конкретную предметную область (например, медицина или юриспруденция).

Промт:

Сгенерируй эмбеддинг для текста, учитывая домен: {домен}. Используй следующие приоритетные термины: {термины}. Игнорируй общие слова, не относящиеся к домену. Текст: {текст}

11. Промт для гибридного поиска с бустингом

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

Промт:

Выполни поиск по запросу: "{запрос}" с бустингом полей. Поле "title" имеет вес 3.0, поле "content" — 1.0. Используй BM25 для текстового поиска и cosine similarity для векторного. Объедини результаты с параметром RRF k=60.

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

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

Промт:

Оцени качество чанкинга следующего документа. Критерии:
- Каждый чанк содержит законченную мысль (да/нет)
- Чанки не слишком короткие (< 50 токенов) или длинные (> 500 токенов)
- Отсутствуют разрывы предложений
Поставь оценку от 1 до 5.

Чанки:
{чанки}

13. Промт для генерации гипотез (HyDE)

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

Промт:

Представь, что ты — эксперт по {тема}. Напиши гипотетический документ, который идеально отвечает на вопрос: "{вопрос}". Документ должен быть кратким (50-100 слов) и содержать ключевые термины. Этот документ будет использован для поиска в базе знаний.

14. Промт для мультимодального RAG (текст + таблицы)

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

Промт:

У тебя есть текстовые документы и таблицы. Вопрос: {вопрос}. Сначала найди релевантные таблицы по ключевым словам, затем текстовые чанки. Объедини информацию в ответе. Если данные из таблицы противоречат тексту — укажи это.

15. Промт для логирования и отладки RAG

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

Промт:

Покажи пошагово, как был получен ответ на вопрос: "{вопрос}". Укажи:
- Какие чанки были найдены
- Их релевантность (оценка)
- Какой промт использовался для генерации
- Какие части ответа взяты из каждого чанка
Формат: Markdown с цитатами.

Заключение

Эти 15 промтов покрывают полный цикл RAG: от чанкинга и эмбеддингов до гибридного поиска и верификации ответов. Используйте их как шпаргалку при разработке своей системы. Помните: качество промта напрямую влияет на качество поиска и генерации. Начните с промта для чанкинга — это основа, на которой строится всё остальное. Если вы хотите углубиться в тему, изучите официальную документацию LangChain (langchain.com) и руководство по FAISS (github.com/facebookresearch/faiss). Адаптируйте промты под свой домен и тестируйте на реальных запросах.

← Все статьи

Комментарии

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

Интеграция ВТБ с AI-агентом ASI Biont: как автоматизировать платежи и финансовые операции без кода в 2026 году

22 июля 2026

Ускорение границ научных открытий: обязательства Google в $40 млн на миссию Genesis

22 июля 2026

Как доступ к знаниям изменил обучение: разбор статьи Александра Горного

22 июля 2026

Интеграция LinkedIn с AI-агентом: как ASI Biont автоматизирует нетворкинг, парсинг и контент без ручного труда

22 июля 2026

Освоение Kubernetes в продакшене: почему Helm, Service Mesh и GitOps обязательны в 2026 году

22 июля 2026

Substack запускает детектор AI-контента: как новый инструмент раскрывает авторов, пишущих с помощью нейросетей

22 июля 2026

Vibe Coding и рекордные $1.7 млрд: как Трэвис Каланик убедил a16z в будущем робототехники

22 июля 2026

RAG-системы с нуля: как навыки чанкинга и гибридного поиска становятся must-have в 2026 году

22 июля 2026

Twitter / X + AI-агент: Как ASI Biont автоматизирует ваш контент-план и мониторинг соцсетей за минуты

22 июля 2026