Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: RAG, retrieval augmented generation, vector search, LLM, embedding

Опишите полный цикл запроса в RAG-системе: от пользовательского ввода до ответа модели.

Вопрос проверяет понимание архитектуры Retrieval-Augmented Generation (RAG) и последовательности этапов обработки запроса от пользователя до генерации ответа.

Короткий ответ

RAG-система сначала преобразует запрос пользователя в векторное представление (embedding). Затем выполняется поиск по векторной базе данных для извлечения релевантных документов или фрагментов. Найденные контексты объединяются с исходным запросом и передаются в языковую модель (LLM), которая генерирует итоговый ответ, опираясь на предоставленную информацию.

Длинный ответ

Полный цикл запроса в RAG-системе

RAG (Retrieval-Augmented Generation) — это архитектура, которая сочетает поиск информации (retrieval) и генерацию текста (generation). Она позволяет языковой модели отвечать на вопросы, используя внешние источники знаний, что повышает точность и актуальность ответов.

Этапы обработки запроса

  1. Ввод пользовательского запроса: Пользователь отправляет текстовый запрос (например, вопрос или инструкцию).
  2. Векторизация запроса: Запрос преобразуется в векторное представление (embedding) с помощью модели эмбеддингов (например, text-embedding-ada-002 от OpenAI или BERT). Это необходимо для сравнения с документами в векторной базе данных.
  3. Поиск релевантных документов: Вектор запроса сравнивается с векторами документов, хранящихся в векторной базе данных (например, Pinecone, Weaviate, FAISS). Используется метрика косинусного сходства или евклидова расстояния. Возвращаются top-k наиболее релевантных фрагментов.
  4. Формирование контекста: Извлеченные документы объединяются в единый контекстный блок. Часто добавляется специальный промпт, который инструктирует модель использовать только предоставленную информацию.
  5. Генерация ответа: Контекст вместе с исходным запросом передается в языковую модель (LLM), например GPT-4 или Llama. Модель генерирует ответ, основываясь на контексте, что снижает риск галлюцинаций.
  6. Вывод ответа пользователю: Сгенерированный текст возвращается пользователю.

Пример кода (упрощенный)

import openai
from sentence_transformers import SentenceTransformer
import numpy as np

# Шаг 1: Векторизация запроса
model = SentenceTransformer('all-MiniLM-L6-v2')
query = "Как работает RAG?"
query_embedding = model.encode(query)

# Шаг 2: Поиск в векторной БД (имитация)
documents = ["RAG объединяет поиск и генерацию.", "LLM использует контекст для ответа."]
doc_embeddings = model.encode(documents)
scores = np.dot(doc_embeddings, query_embedding)
top_indices = np.argsort(scores)[-2:]
context = " ".join([documents[i] for i in top_indices])

# Шаг 3: Генерация ответа
prompt = f"Контекст: {context}\nВопрос: {query}\nОтвет:"
response = openai.ChatCompletion.create(
    model="gpt-4",
    messages=[{"role": "user", "content": prompt}]
)
print(response.choices[0].message.content)

Вывод

RAG эффективен в задачах, где требуется актуальная или специфическая информация, недоступная в обучении модели. Он применяется в чат-ботах поддержки, системах вопрос-ответ по документации и поисковых ассистентах, обеспечивая точность и прозрачность ответов.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

Ключевые слова

#RAG

#retrieval augmented generation

#vector search

#LLM

#embedding

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.