pgvector-semantic-search
Wyszukiwanie semantyczne w PostgreSQL – znajdź treści po znaczeniu, nie po słowach kluczowych
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umieść wektory osadzenia (embeddingi) w PostgreSQL i wyszukuj po podobieństwie znaczeniowym. Skill pgvector-semantic-search pokazuje, jak skonfigurować indeksy HNSW lub IVFFlat, zoptymalizować wydajność wyszukiwania, a także stosować kwantyzację binarną dla dużych zbiorów danych. Idealny do implementacji RAG (Retrieval Augmented Generation), semantycznego wyszukiwania i aplikacji AI/ML, które muszą skalować się do milionów wierszy bez opuszczania bazy danych.
Jak używać
Zainstaluj pgvector w wersji 0.8.0 lub wyższej w swoim PostgreSQL. Skill zakłada, że masz już działającą bazę danych i dostęp do niej.
Przygotuj tabelę do przechowywania wektorów. Utwórz kolumnę typu
halfvec(N), gdzie N to wymiar twojego modelu osadzenia (np. 1536 dla OpenAI). Przechowuj tekst oryginalny w osobnej kolumnie obok wektora.Wybierz metrykę odległości. Skill rekomenduje cosine (
<=>) jako domyślną dla większości zastosowań semantycznych. Dodaj indeks HNSW z parametramim = 16ief_constructiondostosowanymi do rozmiaru danych.Konwertuj zapytanie użytkownika na wektor przy użyciu tego samego modelu osadzenia, który użyłeś do wektoryzacji tekstu w bazie. Wykonaj zapytanie SQL, które zwraca wiersze posortowane po odległości od wektora zapytania.
Jeśli pracujesz z dużymi zbiorami wektorów, rozważ kwantyzację binarną (
binary_quantize) lub typhalfveczamiastvector, aby zmniejszyć zużycie pamięci i przyspieszić wyszukiwanie.Przetestuj wydajność i recall (dokładność wyszukiwania). Skill zawiera wskazówki do tuningu parametrów indeksu HNSW (
ef_search) oraz filtrowania wyników przed obliczeniem odległości, aby przyspieszyć zapytania na dużych tabelach.