PG-Vector
PG-Vector to rozszerzenie do PostgreSQL, pozwalające na wyszukiwanie podobieństw wektorów. Przechowuje wektory w bazie danych i umożliwia wyszukiwanie podobieństwa do nich.
Uruchamianie
Uruchamianie PG-Vector jest bardzo proste. Wystarczy utworzyć nową bazę danych i załadować rozszerzenie PG-Vector.
cgc db create -n <nazwa_bazy_danych> pg-vector
Po utworzeniu bazy danych otrzymasz app token do swojej bazy danych.
Domyślna konfiguracja
Domyślna konfiguracja dla PG-Vector jest ustawiona do używania silnika bazy danych PostgreSQL. Baza danych zostanie utworzona z następującymi parametrami:
POSTGRES_PASSWORD
: Hasło dla użytkownika PostgreSQL. Jest ustawione na specyficzny dla CGCapp_token
, który otrzymujesz po utworzeniu bazy danych.POSTGRES_USER=admin
: Użytkownik dla bazy danych PostgreSQL.POSTGRES_DB=db
: Nazwa bazy danych PostgreSQL. Jest ustawiona na nazwę, którą podałeś podczas tworzenia bazy danych.POSTGRES_HOST_AUTH_METHOD=trust
: Konfiguruje PostgreSQL do pomijania weryfikacji hasła dla połączeń, ufając, że uwierzytelnienie już nastąpiło na poziomie systemu. Jest to wygodne do rozwoju, ale stwarza znaczące zagrożenie bezpieczeństwa w środowiskach produkcyjnych.
Jak podłączyć się do bazy danych
Po więcej informacji o CGC SDK i tym jak podłączyć się do bazy danych, zajrzyj do naszej dokumentacji
Instalacja
Włącz rozszerzenie (zrób to raz w każdej bazie danych, w której chcesz go używać)
CREATE EXTENSION vector;
Przykładowe działanie
Stwórz kolumnę wektorową z 3 wymiarami.
CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));
Wstaw wektory
INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
Znajdź najbliższych sąsiadów na odległość L2
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
PGVector wspiera również:
- iloczyn skalarny (
<#>
) - odległość cosinus (
<=>
) - odległość L1 (
<+>
)
Uwaga: <#>
zwraca ujemny iloczyn skalarny, ponieważ Postgres obsługuje tylko kolejność rosnącą na operatorach
Po więcej informacji oraz opcji PGVector, zajrzyj do repozytorium Github