Przejdź do głównej zawartości

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