[ Narzędzia ]TechnicalPoziom: Projektowanie

Supabase w projektach AI — baza, auth i wektory w jednym

Dlaczego tak często wybieramy Supabase jako zaplecze aplikacji AI: PostgreSQL z pgvector, autoryzacja, storage i realtime w jednym, bez sklejania pięciu usług.

Krzysztof Leszczyński14 sierpnia 20262 min czytania

[ W skrócie ]

  • Supabase to zarządzany PostgreSQL z kompletem: auth, API, storage, realtime — mniej ruchomych części w projekcie AI.
  • Rozszerzenie pgvector robi z tej samej bazy magazyn embeddingów — RAG bez osobnej bazy wektorowej.
  • Row Level Security pozwala pilnować dostępu do danych na poziomie wierszy — kluczowe, gdy po bazie szuka model AI.

Problem: projekt AI to zwykle pięć usług

Typowa aplikacja AI potrzebuje: bazy danych, magazynu embeddingów, autoryzacji użytkowników, przechowywania plików i jakiegoś API. Sklejanie tego z osobnych usług oznacza pięć konfiguracji, pięć rachunków i pięć miejsc awarii.

Supabase pakuje to w jedno: zarządzany PostgreSQL plus auth, storage, automatyczne API i realtime. A ponieważ to czysty Postgres, dostajesz też jego rozszerzenia — w tym najważniejsze dla AI: pgvector.

pgvector: embeddingi bez osobnej bazy

Zamiast utrzymywać dedykowaną bazę wektorową, trzymasz embeddingi w tej samej bazie co resztę danych:

sql
create extension if not exists vector;

create table dokumenty (
  id bigint primary key generated always as identity,
  tresc text not null,
  zrodlo text not null,
  embedding vector(1536)
);

-- wyszukanie 5 fragmentow najblizszych zapytaniu
select tresc, zrodlo
from dokumenty
order by embedding <=> $1
limit 5;

Do kilkuset tysięcy fragmentów (typowa skala firmowego RAG) wydajność z indeksem HNSW jest w zupełności wystarczająca — a dane, metadane i uprawnienia mieszkają razem, w jednym miejscu, z jednym backupem.

Row Level Security: dostęp na poziomie wiersza

Gdy po danych szuka model AI (albo agent), pytanie „kto może zobaczyć ten wiersz” przestaje być teoretyczne. W Postgresie odpowiada na nie RLS:

sql
alter table dokumenty enable row level security;

create policy "dzial widzi swoje dokumenty"
on dokumenty for select
using (dzial_id = (auth.jwt() ->> 'dzial_id')::bigint);

Polityka działa niezależnie od tego, kto pyta — aplikacja, użytkownik czy narzędzie agenta. To znacznie bezpieczniejszy model niż filtrowanie „na wierze” w kodzie aplikacji.

Kiedy Supabase NIE wystarczy?

  • dziesiątki milionów wektorów i wyśrubowane latencje — wtedy dedykowane bazy wektorowe mają przewagę,
  • ciężka analityka OLAP — to nadal domena hurtowni danych,
  • wymóg infrastruktury w pełni on-premise — sam Postgres z pgvector da się hostować samodzielnie, ale tracisz „resztę” Supabase.

Dla typowych aplikacji AI w MŚP — asystent z bazą wiedzy, obieg dokumentów, narzędzia wewnętrzne — to nasz domyślny wybór zaplecza: mało ruchomych części, standardowa technologia, zero vendor locka na poziomie danych.

  • Supabase
  • PostgreSQL
  • pgvector
  • backend
  • RAG
Udostępnij

Automatic AI

hello@automaticai.pl · automaticai.pl