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.
Jak podłączyć się do bazy danych
Do bazy danych możesz się podłączyć z dowolnego notebooka przy pomocy CGC SDK.
import cgc.sdk as cgc
postgresql = cgc.postgresql_client("<database_name>","<app_token>")
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