Przejdź do treści
Workin'Flows ← strona główna

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
← Wróć do słownika