RAG (Retrieval-Augmented Generation)
Подход, при котором LLM дополняет ответ контекстом, найденным во внешней базе знаний через поиск.
Подробно
Retrieval-Augmented Generation — это архитектурный паттерн для LLM-приложений, где перед генерацией ответа система ищет релевантные фрагменты документов в индексе и подставляет их в промпт. Это снижает количество галлюцинаций, позволяет отвечать по актуальным и приватным данным без дообучения модели и даёт ссылки на источники. Типовой пайплайн включает загрузку документов, чанкинг, вычисление эмбеддингов, хранение в векторной БД (pgvector, Qdrant, Weaviate), поиск по сходству и, часто, ре-ранкинг результатов. Применяется в корпоративных чат-ботах, поддержке клиентов, поиске по документации и в ассистентах по коду. Качество RAG критически зависит от стратегии чанкинга, модели эмбеддингов и гибридного поиска (векторный + BM25).
Примеры употребления
- docs = retriever.get_relevant_documents(query) # LangChain
- RAG-пайплайн: чанкинг → эмбеддинги → векторный поиск → промпт к LLM.
- Настроили гибридный поиск pgvector + BM25, чтобы поднять recall на RAG-запросах.
- Индекс RAG переиндексируется ночью, иначе ответы идут по устаревшим документам.
