słownik automatyzacji
pgvector
pgvector to rozszerzenie PostgreSQL dodające typ danych vector oraz operatory do wyszukiwania podobieństwa wektorowego (cosinusowego, euklidesowego, iloczyn skalarnego). Pozwala przechowywać embeddingi tekstowe bezpośrednio w relacyjnej bazie danych i wykonywać na nich wyszukiwanie semantyczne bez osobnego systemu wektorowego.
Embedding to reprezentacja numeryczna znaczenia tekstu -- wektor liczb zmiennoprzecinkowych o stałej długości (np. 768 lub 1536 wymiarów). Dwa teksty o podobnym znaczeniu mają wektory bliskie sobie w przestrzeni wielowymiarowej. Zapytanie zamienione na embedding można porównać z wektorami w bazie i znaleźć najlepiej pasujące fragmenty. To fundament wyszukiwania semantycznego i RAG.
Przed pgvector firmy musiały utrzymywać osobną bazę wektorową (Pinecone, Weaviate, Chroma), co oznaczało dodatkową infrastrukturę, synchronizację danych i koszty. pgvector pozwala trzymać embeddingi obok zwykłych danych relacyjnych w tym samym Postgresie. Indeks HNSW w pgvector 0.5+ zapewnia wydajne przybliżone wyszukiwanie nawet przy milionach wektorów.
pgvector to jedyny sensowny wybór gdy już używasz Postgres i Twój wolumen nie przekracza kilku milionów wektorów. Osobna baza wektorowa ma sens dopiero przy masowej skali lub gdy potrzebujesz funkcji, których Postgres nie oferuje (np. zaawansowane filtrowanie metadanych z dużym wolumenem).
W praktyce
W projekcie RAG dla dokumentacji wewnętrznej klienta: tabela documents w Cloud SQL Postgres z kolumną embedding vector(768). Przy dodaniu dokumentu n8n wywołuje model embeddingowy (text-multilingual-embedding-002 przez Vertex AI), zapisuje wynikowy wektor do tej kolumny. Przy zapytaniu użytkownika: zapytanie zamieniamy na embedding, wykonujemy SELECT ... ORDER BY embedding <=> $1 LIMIT 5 (operator <=> to podobieństwo cosinusowe w pgvector), pobieramy top 5 fragmentów, podajemy jako kontekst do LLM. Hybrydowe wyszukiwanie łączy pgvector z tsvector BM25 dla lepszego pokrycia.
Powiązane
Chcesz wyszukiwanie semantyczne w swoim produkcie?
Wdrażam pgvector z Vertex AI embeddingami i n8n jako pipeline ingestii dokumentów.
PostgreSQL w automatyzacji