Этот вопрос проверяет понимание полного цикла работы RAG (Retrieval-Augmented Generation) архитектуры, от получения запроса до генерации ответа с использованием внешних знаний.
RAG (Retrieval-Augmented Generation) решает проблему галлюцинаций и ограниченности знаний LLM, добавляя этап поиска информации из внешнего хранилища. Пайплайн состоит из двух основных фаз: индексации (подготовка базы знаний) и инференса (обработка запроса).
Контекст: {чанк1} {чанк2} {чанк3}
Вопрос: {запрос пользователя}
Ответ:from sentence_transformers import SentenceTransformer
import faiss
# Фаза индексации
documents = ["Налог на прибыль в 2024 году составляет 20%.", "Изменения в НДС вступили в силу с 1 января."]
model = SentenceTransformer('all-MiniLM-L6-v2')
embeddings = model.encode(documents)
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)
# Фаза инференса
query = "Какой налог на прибыль?"
query_emb = model.encode([query])
D, I = index.search(query_emb, k=2)
retrieved = [documents[i] for i in I[0]]
prompt = f"Контекст: {' '.join(retrieved)}\nВопрос: {query}\nОтвет:"
# Далее prompt передается в LLMВывод: RAG-архитектура незаменима для создания чат-ботов с доступом к актуальной корпоративной базе знаний, систем вопросов-ответов по документации и любых приложений, где требуется точность и свежесть информации, выходящая за пределы обучающих данных LLM.