Sənəddə “avtomobil” sözünü axtarırsan, amma sənəd “maşın satılır” yazıb. Ctrl+F sıfır nəticə verir, halbuki cavab gözünün qabağındadır. Problem odur ki, adi axtarış sözü tapır, mənanı yox. Məhz burada vector database meydana çıxır. Bu yazıda vector DB-nin nə olduğunu, AI-də nə işə yaradığını, hansı software-lərin mövcud olduğunu və ən vacibi, öz PDF/Word sənədlərini praktiki olaraq necə vector DB-yə əlavə edəcəyini addım-addım göstərəcəyik.
Adi axtarış niyə kifayət etmir?
Ənənəvi verilənlər bazası dəqiq uyğunluq üzərində işləyir: “status = ‘shipped’ olan bütün sifarişləri tap.” Keyword axtarışı da eynidir, yazdığın söz mətndə hərfbəhərf varsa tapır, yoxdursa tapmır.
Amma insan dili belə işləmir. “Avtomobil”, “maşın”, “nəqliyyat vasitəsi”, üç fərqli söz, eyni məna. İstifadəçi “avtomobil” yazıb axtaranda, “maşın” yazılmış sənədi də tapmalıdır. Keyword axtarışı bunu bacarmır, çünki o, mənanı deyil, simvolları müqayisə edir.
Vector DB isə fərqli sual verir: “Bu suala mənaca ən yaxın sənədlər hansılardır?”
Vector və embedding nədir?
Açar anlayış embedding-dir. Embedding, mətni (söz, cümlə, abzas) rəqəm vektoruna çevirən prosesdir. Bu vektor adətən yüzlərlə, hətta minlərlə ölçüdən (dimension) ibarət olur.
Sehrli tərəfi budur: embedding modeli mənanı riyaziyyata çevirir. Oxşar mənalı mətnlərin vektorları bir-birinə yaxın olur, fərqli mənalıların isə uzaq.
Sadə misalla:
"maşın" → [0.82, 0.14, 0.55, ...]
"avtomobil" → [0.80, 0.16, 0.57, ...] ← qonşu vektorlar (yaxın)
"pişik" → [0.05, 0.91, 0.12, ...] ← uzaq vektor
“Maşın” və “avtomobil” vektorları demək olar üst-üstə düşür. “Pişik” isə tamam başqa istiqamətdədir. Vector DB məhz bu yaxınlığı ölçərək işləyir.
Vector search necə işləyir?
Bir vector axtarış sistemi tipik olaraq bu addımlarla işləyir:
Addım 1, Sual: İstifadəçi mətn yazır: “Ən güclü satış regionu?”
Addım 2, Embedding: Bu sual eyni embedding modeli ilə vektora çevrilir.
Addım 3, Cosine similarity: Sistem, sualın vektoru ilə bazadakı bütün vektorlar arasındakı “bucağı” (cosine similarity) hesablayır. Nə qədər yaxındırsa, məna o qədər oxşardır.
Addım 4, Top-K: Ən yaxın N (məsələn, top 5) nəticə seçilir və qaytarılır.
Milyonlarla vektor arasında bu axtarışın sürətli olması üçün HNSW (Hierarchical Navigable Small World) kimi indeks alqoritmləri istifadə olunur, onlar bütün bazanı bir-bir yoxlamadan, ağıllı naviqasiya ilə ən yaxınları tapır.
Hansı vector DB software-ləri var?
2026-da bir çox güclü seçim var. Ən çox istifadə olunanlar və nə vaxt hansını seçmək lazım olduğu:
pgvector, Əgər artıq PostgreSQL istifadə edirsənsə və vektor sayın ~500K-dan azdırsa, bununla başla. Embeddinglər, sənədlər və metadata bir bazada qalır, SQL join-larla sorğu edə bilirsən. Over-engineer etmə, çox layihə üçün bu kifayətdir.
Qdrant, Self-hosting üçün ideal. Tək bir Docker konteyneri, 1M vektor üçün ~100MB yaddaş, Rust ilə yazılıb, ona görə sürətlidir. Miqyasa çatanda və ya güclü filtering lazım olanda pgvector-dan buraya keçmək məntiqlidir.
Pinecone, Tam managed, cloud servis. Heç bir infrastruktur idarə etmək istəmirsənsə və büdcən varsa, milyardlarla vektora avtomatik miqyaslanır. Trade-off: bağlı mənbədir və data öz cloud-larına gedir.
Weaviate, Hybrid search (vektor + keyword BM25 bir sorğuda) lazımdırsa ən güclü açıq mənbə seçimlərdəndir. Məhsul adları, ID-lər kimi dəqiq uyğunluq və semantik axtarışı birləşdirir.
Chroma, Prototip və lokal development üçün ideal. Yüngül, sürətli qurulur, ilk təcrübə üçün mükəmməldir.
Praktiki qayda: pgvector ilə başla, Qdrant-a böyü, məcbur qalanda managed servisə keç. Sintetik benchmark-lara yox, öz datanla test etməyə güvən.
Ən vacib hissə: PDF-lərini vector DB-yə necə əlavə edirsən?
İndi əsas suala keçək. Əlində PDF-lər, Word sənədləri, təqdimatlar var. Bunları AI axtarışına necə hazırlayırsan? Beş addımlıq ingest pipeline:
Addım 1, Sənədi Markdown-a çevir
Xam PDF mətnini birbaşa istifadə etmək pis fikirdir, səhifə nömrələri, footer-lər, sütunların qarışması modelin işini korlayır. Əvəzinə sənədi əvvəlcə təmiz Markdown-a çevir. Populyar alətlər:
- MarkItDown (Microsoft, açıq mənbə), PDF, Word, Excel, PowerPoint və 12+ formatı təmiz Markdown-a çevirir. GPU tələb etmir, 100 səhifəni saniyələrlə emal edir. Sadə layout-lu sənədlər üçün ideal başlanğıc.
- Docling (IBM, açıq mənbə), mürəkkəb layout-lar, cədvəllər üçün daha güclü. Table fidelity kritikdirsə bunu seç.
- LlamaParse, LlamaIndex istifadə edirsənsə, native inteqrasiya bunu dəyərli edir.
Addım 2, Niyə məhz Markdown?
Çünki Markdown datani semantik olaraq bölməyə imkan verir. Xam mətni kor-koranə hər 500 token-də kəssən, çox vaxt cümlənin ortasından kəsirsən və kontekst itir. Markdown-da isə başlıqlara (#, ##) və abzaslara görə məntiqli bölə bilirsən.
Üstəlik: bir chunk ## Məzuniyyət Siyasəti ilə başlayanda, embedding bu parçanın nə haqqında olduğunu tutur. Həmçinin Markdown HTML-dən 25-75% az token istifadə edir, daha ucuz, daha çox kontekst.
Addım 3, Chunk-lara böl
Markdown sənədi başlıqlar üzrə mənalı parçalara böl. LangChain-in MarkdownHeaderTextSplitter kimi alətləri bunu avtomatik edir. Çox kiçik chunk konteksti itirir, çox böyük chunk axtarış dəqiqliyini azaldır, balans təcrübə tələb edir.
Addım 4, Embedding-ə çevir
Hər chunk-ı embedding modelindən keçir: OpenAI text-embedding-3, Cohere embed-v3, və ya lokal bge-large, jina kimi modellər. Nəticə hər chunk üçün bir vektordur.
Addım 5, Vector DB-yə yaz (metadata ilə)
Vektorları seçdiyin vector DB-yə metadata ilə birlikdə yaz. Metadata çox vacibdir, filtrlənmiş axtarış, mənbə göstərmə və versiyalama üçün lazımdır:
{
"content": "## Məzuniyyət Siyasəti\n\nİllik 21 iş günü...",
"vector": [0.12, -0.88, 0.44, ...],
"metadata": {
"source": "HR_Policy.pdf",
"section": "Məzuniyyət Siyasəti",
"page": 15
}
}
Bundan sonra sorğu zamanı istifadəçinin sualı da embedding-ə çevrilir, top-K ən yaxın chunk tapılır və (RAG istifadə edirsənsə) LLM-ə kontekst kimi verilir. Cavab artıq sənin öz datandan gəlir.
Nəticə
Vector database AI tətbiqlərinin görünməz, amma ən vacib təməllərindən biridir. RAG, semantik axtarış, tövsiyə sistemləri, AI agent yaddaşı, hamısı vektorların üzərində qurulur.
Ən gözəl tərəfi: buna başlamaq üçün nəhəng infrastruktur lazım deyil. PostgreSQL + pgvector, bir neçə PDF, MarkItDown və bir embedding modeli, real işləyən semantik axtarış sistemin bir günə hazır ola bilər.
Bu mövzunu video formatda izləmək istəyirsinizsə, Instagram-da @yolchu.code səhifəsində qısa animasiyalı izahı tapa bilərsiniz. Səhifədə AI, System Design və Backend mövzuları Azərbaycan dilində, sadə izahlarla paylaşılır.