Перейти к содержимому
Код с AI

RAG простыми словами: как AI «читает» твои документы

Embeddings, векторный поиск и ссылки на источники в ответах — на примерах.

Команда HTMLLAB · 9 мин чтения

Модель не знает документов твоей компании. Отправлять их целиком каждый раз дорого и медленно. RAG (Retrieval-Augmented Generation) предлагает другой путь: сначала находим части, связанные с вопросом, а затем передаём модели только их.

Шаг 1: раздели документы на части

Документ делится на небольшие части (chunk). Если часть слишком большая, поиск теряет точность; если слишком маленькая, теряется контекст. К каждой части запиши источник: название документа и страница понадобятся для ссылки в ответе.

Шаг 2: embeddings

Embedding превращает текст в вектор из чисел: у близких по смыслу текстов близкие векторы. Векторы храним в базе, например в pgvector.

Шаг 3: поиск и ответ

rag.ts
// Превращаем вопрос в вектор
const vector = await embed(question);

// Находим в базе 5 ближайших частей
const chunks = await db.query(
  "SELECT text, source FROM chunks ORDER BY embedding <=> $1 LIMIT 5",
  [toSql(vector)],
);

// Передаём модели вопрос вместе с контекстом
const answer = await ask(question, chunks);
Заметка
Прямо скажи модели: опирайся только на переданные тексты, если ответа нет — напиши «не знаю» и укажи источник. Это самое простое правило против галлюцинаций.

Как измерить качество

  • Подготовь набор тестов из реальных вопросов
  • Проверь, находится ли нужная часть
  • Измерь соответствие ответа источнику
  • Запускай тесты после каждого изменения

В программе AI Software Developer RAG — отдельный модуль: ты создаёшь чат-бота по документам со ссылками на источники на азербайджанском и русском языках.

#rag#embeddings#pgvector

Читай также