pgvector je rozšíření PostgreSQL, které ukládá vektory (embeddingy) a vyhledává ty nejpodobnější. Díky němu e-shop najde „boty do deště“ mezi produkty popsanými jako „voděodolná obuv“ a AI agent může odpovídat na dotazy zákazníků podle vašich obchodních podmínek a popisů. Samostatnou vektorovou databázi nepotřebujete: v Aderlo Cloud je pgvector k dispozici v každé databázi PostgreSQL od chvíle jejího založení.
Jak to funguje ve třech krocích
Převod textu na vektor
Embeddingový model u zvoleného poskytovatele AI převede popis produktu nebo úryvek dokumentu na seznam čísel (např. 1536 hodnot).
Uložení do PostgreSQL
Vektor se uloží do sloupce typu
vectorvedle běžných dat: názvu, ceny, adresy stránky.Vyhledávání podle podobnosti
Dotaz zákazníka převedete na vektor stejným modelem a požádáte databázi o nejbližší výsledky.
Minimální příklad
CREATE TABLE product_chunks ( id bigserial PRIMARY KEY, product_url text NOT NULL, content text NOT NULL, embedding vector(1536) ); CREATE INDEX ON product_chunks USING hnsw (embedding vector_cosine_ops); -- $1 = vektor dotazu, spočítaný stejným modelem SELECT product_url, content FROM product_chunks ORDER BY embedding <=> $1 LIMIT 5;
Rozměr sloupce musí odpovídat embeddingovému modelu. Při změně modelu vektory přepočítejte — vektory ze dvou různých modelů nejsou porovnatelné.
Využití v e-shopu
- Vyhledávání podle významu, které rozumí synonymům a popisům potřeb, ne jen názvům produktů.
- Znalostní báze pro agenta zákaznické podpory: obchodní podmínky, doprava, vrácení zboží — agent odpovídá podle vašich dokumentů s odkazem na zdroj.
- Podobné produkty podle popisu, když chybějí data o nákupech.
- Úklid katalogu: odhalení duplicitních produktů s různými názvy.
AI agent a pgvector v Aderlo Cloud
Agent připojený přes MCP může sám založit tabulku s vektory v databázi, ke které jste mu dali plný přístup, a dotazovat se jí v produkční databázi s přístupem jen pro čtení. Přepočet vektorů naplánujete v databázi přes pg_cron a změny produktů předáte dál webhookem z databáze. Podrobnosti o přístupu: PostgreSQL pro AI agenty.
Časté otázky
- Potřebuji samostatnou vektorovou databázi, např. Pinecone?
- Pro e-shop s tisíci nebo desítkami tisíc produktů obvykle ne. pgvector drží vektory vedle dat, takže filtrování podle ceny nebo dostupnosti i vyhledávání podle významu proběhne v jednom dotazu.
- Jaký index zvolit: HNSW, nebo IVFFlat?
- HNSW obvykle nabízí lepší kompromis mezi rychlostí a přesností a k sestavení indexu nepotřebuje data; IVFFlat se sestaví rychleji a zabere méně paměti. Dokumentace pgvector popisuje oba.