ПОДГОТОВКА К УРОКУ 6
Настройка
Supabase
Векторная база данных для RAG. Регистрация и настройка займут 10 минут — SQL код уже готов, просто скопируете и запустите.
✓ Бесплатный план
⏱ 10 минут
SQL уже написан — просто запустите
Зачем нам Supabase
Supabase — это база данных с поддержкой векторного поиска. На уроке 6 мы загрузим в неё прайс или документы, а потом бот будет находить нужную информацию по смыслу — не по ключевым словам. Это и есть RAG.

Бесплатный план Supabase полностью покрывает наши нужды для обучения.
Регистрация
Создаём аккаунт на supabase.com
1
Зайдите на supabase.com
Нажмите Start your project → войдите через GitHub или зарегистрируйтесь через email. GitHub — быстрее всего.
2
Подтвердите email если регистрировались через него
Придёт письмо со ссылкой — перейдите по ней. Если через GitHub — этот шаг пропускаете.
Создание проекта
Проект — это отдельная база данных. Для курса создаём один проект.
1
Нажмите "New Project"
На главной странице Supabase нажмите New Project.
2
Заполните данные проекта
Name: придумайте любое название — например pragma-rag

Database Password: придумайте надёжный пароль и сохраните его — понадобится позже

Region: выберите ближайший регион — например Frankfurt (EU)

Нажмите Create new project.
3
Дождитесь инициализации
Supabase создаёт базу данных — это занимает около 1–2 минуты. Просто подождите пока статус изменится на зелёный.
Запускаем SQL — одна команда
Этот код включает векторный поиск и создаёт таблицу для наших документов. Ничего писать не нужно — просто скопируйте и запустите.
1
Откройте SQL Editor
В левом меню Supabase найдите SQL Editor → нажмите New Query.
2
Скопируйте и вставьте этот код
Нажмите кнопку "Скопировать" справа → вставьте в SQL Editor (Ctrl+V или Cmd+V).
SQL · SUPABASE EDITOR
-- Шаг 1: включаем расширение pgvector для векторного поиска CREATE EXTENSION IF NOT EXISTS vector; -- Шаг 2: создаём таблицу для документов CREATE TABLE documents ( id bigserial PRIMARY KEY, content text, metadata jsonb, embedding vector(768) ); -- Шаг 3: создаём функцию для поиска по смыслу CREATE OR REPLACE FUNCTION match_documents ( query_embedding vector(768), match_count int DEFAULT 5, filter jsonb DEFAULT '{}' ) RETURNS TABLE ( id bigint, content text, metadata jsonb, similarity float ) LANGUAGE plpgsql AS $$ BEGIN RETURN QUERY SELECT documents.id, documents.content, documents.metadata, 1 - (documents.embedding <-> query_embedding) AS similarity FROM documents WHERE documents.metadata @> filter ORDER BY documents.embedding <-> query_embedding LIMIT match_count; END; $$;
3
Нажмите Run
Кнопка Run внизу редактора (или Ctrl+Enter). Увидите сообщение Success — всё готово.
⚠️ Важно про vector(768)
В коде указано vector(768) — это размерность для Gemini Embeddings который мы используем на курсе. Если вы в будущем будете использовать другую модель эмбеддингов — размерность может отличаться. Для нашего курса оставляйте 768.
Сохраняем данные для n8n
Два значения которые нужны для подключения Supabase к n8n
🔗
Project URL
Settings → API → Project URL
Выглядит так: https://xxxxxxxxxxxx.supabase.co
Скопируйте и сохраните.
🔑
Service Role Key
Settings → API → service_role (не anon!)
Длинная строка — скопируйте полностью.

Важно: используем именно service_role, не anon key. Anon key не даёт права на запись данных.
✓ Готово — приходите на урок 6
На уроке вставим Project URL и Service Role Key в Supabase Vector Store ноду в n8n — и бот начнёт отвечать по вашим документам.
💡
Если что-то пошло не так: самая частая ошибка — скопировали anon key вместо service_role. Проверьте что в Settings → API берёте именно строку под заголовком service_role. Вторая частая ошибка — размерность вектора не совпадает с моделью эмбеддингов. На нашем курсе используем Gemini — там 768. Если используете OpenAI — там 1536, нужно изменить число в SQL.