Ce este o bază de date vectorială?

Răspuns rapid

O bază de date vectorială este o bază de date construită pentru a stoca embeddinguri, listele de numere pe care un model de IA le produce pentru a reprezenta sensul, și pentru a returna elementele stocate cele mai apropiate de o interogare în milisecunde. Este pasul de căutare din chat-ul cu documentele tale și căutarea semantică. Ai nevoie de una când textul este prea mare pentru a fi trimis modelului în întregime.

O bază de date vectorială răspunde la o singură întrebare, foarte rapid

Îi dai o listă de numere și îți returnează listele stocate care sunt cele mai apropiate de ea. Aceasta e întreaga interfață.

Listele sunt embeddinguri. Un model de embedding transformă un pasaj, o descriere de produs sau o imagine în câteva sute până la câteva mii de numere, plasate astfel încât sensurile similare să ajungă apropiate unele de altele, iar ce sunt embeddingurile în IA explică cum. O bază de date vectorială este locul unde trăiesc acele liste odată ce ai multe dintre ele. Stochează fiecare cu un ID și niște metadate, construiește un index peste ele și răspunde la căutarea celor mai apropiați vecini: "iată un vector de interogare, dă-mi cele mai apropiate zece."

Partea grea e cuvântul rapid. Compararea unei interogări cu un milion de vectori stocați de câte 1.536 de numere fiecare înseamnă 1,5 miliarde de înmulțiri, iar a face asta la fiecare apăsare de tastă nu se scalează. Așa că bazele de date vectoriale folosesc indexuri aproximative pentru cei mai apropiați vecini, cel mai comun fiind HNSW, o structură de graf dintr-un articol din 2016 al lui Malkov și Yashunin care vizitează câteva sute de candidați în loc de întregul milion și returnează răspunsul corect aproape de fiecare dată. Acel "aproape" e compromisul: puțină acuratețe pentru o viteză de o mie de ori mai mare.

Baza ta de date existentă potrivește cuvinte; o bază de date vectorială potrivește sensul

O bază de date relațională găsește rânduri ale căror valori se potrivesc: WHERE customer_id = 4127. Un index full-text găsește documente care conțin cuvinte: refund AND policy. O bază de date vectorială găsește elemente al căror sens este apropiat: interogarea "cum îmi recuperez banii" returnează pasajul intitulat "Returnări și rambursări" chiar dacă cele două nu au niciun cuvânt comun.

Bază de date relaționalăCăutare full-textBază de date vectorială
ÎntreabăCare rânduri se potrivesc cu această valoare?Care documente conțin aceste cuvinte?Care elemente înseamnă ceva apropiat de asta?
IndexB-tree pe coloaneIndex inversat pe termeniGraf sau clusterizare peste vectori (HNSW, IVF)
Exact?DaDaDe obicei aproximativ
Bun laID-uri, date, sume, joinuriNume, coduri, expresii exacteSinonime, parafrazare, multilingv, imagini
Slab laSensSensȘiruri exacte, numărare, filtrare după valoare
ExemplePostgres, MySQL, SQLiteElasticsearch, LucenePinecone, Weaviate, Qdrant, Milvus, Chroma, pgvector

Ultimul rând arată cât de neclară e categoria. pgvector adaugă coloane vectoriale și un index HNSW în Postgres obișnuit, iar Elasticsearch poartă un câmp vectorial încă din versiunea 7.0 din 2019 și căutare HNSW din 8.0 din 2022. O "bază de date vectorială" e adesea o capabilitate în interiorul unei baze de date pe care deja o rulezi, nu un produs nou, iar produsele independente concurează pe scalabilitate și rafinament operațional, nu pe a face ceva ce Postgres nu poate.

Chat-ul cu documentele tale e o căutare vectorială cu un model la final

Generarea augmentată prin recuperare, pe care ce este RAG o explică pas cu pas, are un pas de căutare și unul de scriere. Baza de date vectorială e pasul de căutare.

  1. Împarte fiecare document în pasaje de câteva sute până la o mie de tokenuri.
  2. Fă embedding pentru fiecare pasaj și stochează vectorii, împreună cu textul pasajului și sursa lui, în baza de date vectorială.
  3. Când sosește o întrebare, fă-i embedding și cere bazei de date cele mai apropiate pasaje.
  4. Predă acele pasaje modelului de limbaj împreună cu întrebarea și lasă-l să scrie răspunsul.

Pașii 1 și 2 se întâmplă o singură dată, când sunt adăugate documentele. Pașii 3 și 4 se întâmplă la fiecare întrebare. Modelul de limbaj nu vede niciodată întreaga colecție; vede cele cinci sau zece pasaje alese de bază de date. De aceea răspunsul e la fel de bun ca și căutarea: dacă cel mai apropiat vector e pasajul greșit, modelul răspunde cu încredere la întrebarea greșită, ceea ce ce este o halucinație de IA clasifică drept un eșec de recuperare, nu o inventare.

Când ai nevoie de una și când e mai bine să trimiți tot fișierul

Decizia e despre mărime. Un model poate considera doar fereastra sa de context odată, și fiecare token din interiorul ei e plătit la fiecare tură. O bază de date vectorială există pentru a pune doar felia relevantă în fața modelului. Pentru un singur document care încape, recuperarea e un pas pe care îl poți sări; pentru o colecție care nu încape, e singura opțiune.

Calculează prețul celor două soluții pe un raport de 300.000 de tokenuri, câteva sute de pagini, la care se pun zece întrebări, recuperând câte cinci pasaje de 1.000 de tokenuri per întrebare. Trimiterea întregului fișier de fiecare dată înseamnă 3 milioane de tokenuri de intrare. Recuperarea a cinci pasaje de 1.000 de tokenuri per întrebare înseamnă 50.000. La ratele de preț de listă de intrare din indexul de cost al modelelor de IA, preluate de la OpenRouter pe 2026-08-20, diferența e de 60x la fiecare model. Caching-ul de prompt, acolo unde furnizorul îl oferă, facturează o recitire a aceluiași fișier la o zecime până la o jumătate din prețul de listă, ceea ce reduce diferența la aproximativ 6x până la 30x. Recuperarea tot câștigă, dar cu mai puțin.

Zece întrebări pe un raport de 300.000 de tokenuri costă de 60 de ori mai mult dacă fișierul e trimis de fiecare dată
pasaje recuperatefișier întreg la fiecare tură$0$5$10$15preț de listă, zece întrebăriGPT-5.6 Luna$0.01$0.6060xGemini 3.7 Flash$0.019$1.1360xClaude Sonnet 5$0.10$6.0060xClaude Opus 5$0.25$15.0060x

Soluția cu fișierul întreg cumpără ceva pentru acei bani atunci când fișierul încape în buget: un contract de 60 de pagini, cam 40.000 de tokenuri, permite modelului să răspundă la întrebări care au nevoie de tot documentul deodată, precum "există ceva aici care contrazice clauza 14", întrebare pe care recuperarea nu o poate pune pentru că nu vede niciodată clauza 14 și contradicția în aceeași tură. Regula care rezultă: un document, sau câteva, intră întregi; o bibliotecă trece printr-o bază de date vectorială. Între cele două, împarte încărcarea pe subiecte astfel încât modelul să primească secțiunea de care are nevoie.

Whizi trimite textul propriu-zis, până la o tură de 40.000 de tokenuri

Whizi nu rulează o bază de date vectorială pentru chat-ul tău. Când atașezi un fișier, calea de încărcare a documentelor extrage textul și îl trimite modelului ca text de prompt, până la un buget fix de 40.000 de tokenuri per tură; o încărcare mai lungă e tăiată, cu un toast și un marcaj în mesaj care anunță acest lucru. Fișierele de proiect funcționează la fel: funcția proiecte fixează până la 10 fișiere și reconstruiește textul lor în prompt la fiecare mesaj, cu o limită de 32.000 de caractere per fișier și 120.000 pentru întregul bloc de proiect.

Limitele sunt marginea designului. Un fișier fixat peste 32.000 de caractere e trunchiat, un atașament peste bugetul de 40.000 de tokenuri per tură e tăiat, iar un proiect e un dosar, nu o bibliotecă cu căutare. Compromisul e deliberat: pentru un contract sau o lucrare care încape în bugetul turei, a avea textul prezent bate a-l avea căutat, iar verificarea care contează, cererea către model să citeze pasajul folosit, funcționează pentru că pasajul chiar e acolo. Pentru o mie de documente, o bază de date vectorială e uneltea potrivită, iar o aplicație de chat e cea greșită.

Două obiceiuri decurg din mecanism. Numește fișierul în întrebarea ta odată ce ai mai multe atașate, pentru că altfel modelul alege în tăcere. Și la orice răspuns pe care vei acționa, cere citatul. Un sistem de recuperare poate returna pasajul greșit; un sistem cu fișier întreg poate răspunde din memorie în loc de fișier. Citatul le prinde pe amândouă.

Listă de verificare
  • Trimite un singur document întreg; pune o colecție în spatele unei baze de date vectoriale
  • Împarte o încărcare lungă pe subiecte astfel încât modelul să primească secțiunea de care are nevoie întrebarea
  • Cere modelului să citeze pasajul folosit înainte de a te baza pe răspuns
  • Folosește căutarea de text simplu pentru ID-uri, coduri și expresii exacte; căutarea vectorială potrivește sensul, nu caracterele
  • Tratează un eșec de recuperare ca pe o problemă de căutare: refă embeddingul cu un model mai bun sau pasaje mai mici înainte de a da vina pe modelul scriitor

Întrebări frecvente

Ce este o bază de date vectorială în termeni simpli?

Un depozit pentru listele de numere pe care un model de IA le folosește pentru a reprezenta sensul, construit pentru a găsi rapid cele mai apropiate potriviri. Îi dai embeddingul unei întrebări și îți returnează embeddingurile, și textul din spatele lor, care înseamnă ceva similar. E jumătatea de căutare a chat-ului cu documentele tale ori de câte ori colecția e prea mare pentru a fi trimisă întreagă.

Am nevoie de o bază de date vectorială ca să folosesc IA cu documentele mele?

Doar dacă documentele nu încap în fereastra de context a modelului. Un singur raport sau contract poate fi trimis modelului întreg, ceea ce face Whizi cu atașamentele și fișierele de proiect fixate. O bibliotecă cu mii de documente are nevoie de recuperare, iar recuperarea are nevoie de un index vectorial, fie într-un produs dedicat, fie într-o extensie Postgres precum pgvector.

Care e diferența dintre o bază de date vectorială și o bază de date obișnuită?

O bază de date obișnuită potrivește valori: acest ID, această dată, acest cuvânt exact. O bază de date vectorială potrivește sensul, returnând elementele stocate ale căror embeddinguri stau cel mai aproape de cel al interogării. E de obicei aproximativă, folosind un index precum HNSW care verifică câteva sute de candidați în loc de fiecare element, și e slabă la potrivirea exactă la care o bază de date obișnuită e bună.

Care sunt bazele de date vectoriale cele mai folosite?

Pinecone, Weaviate, Qdrant, Milvus și Chroma sunt produsele independente comune, iar pgvector adaugă aceeași capabilitate la Postgres. Elasticsearch și OpenSearch oferă și ele căutare vectorială. Alegerea e de obicei operațională, despre scalabilitate și găzduire, pentru că toate implementează aceeași idee de căutare aproximativă a celor mai apropiați vecini.

Cât economisește recuperarea față de trimiterea întregului fișier?

Zece întrebări pe un raport de 300.000 de tokenuri costă $6.00 pe Claude Sonnet 5 dacă fișierul e trimis la fiecare tură și $0.10 dacă sunt recuperate în schimb cinci pasaje de 1.000 de tokenuri, la ratele de listă OpenRouter preluate pe 2026-08-20. Pe GPT-5.6 Luna, aceeași pereche e $0.60 față de $0.01. Raportul e 60x la fiecare model pentru că ambele soluții plătesc aceeași rată per token.