Bu bölüm, Qdrant vektör veritabanının hızlı başlangıcını ve RESTful API'ye dayalı olarak vektör veritabanını nasıl işleteceğinizi tanıtır.
Qdrant Kurulumu
Not: Bu kılavuz, Qdrant veritabanını Docker kullanarak kurmaya dayanmaktadır. Lütfen devam etmeden önce Docker'ı kurun.
Qdrant görüntüsünü indirin
docker pull qdrant/qdrant
Qdrant vektör veritabanı servisini başlatın
docker run -p 6333:6333 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
qdrant/qdrant
Varsayılan olarak, yerel dosya dizinini konteynıra eşleriz ve tüm veriler ./qdrant_storage dizininde depolanır.
Artık Qdrant'a localhost:6333 üzerinden erişebilirsiniz.
Qdrant vektör veritabanı, programlama dilleri arasında Python, Go vb. gibi RESTful API'ler için destek sağlarken, veritabanı işlemleri için RESTful API'yi ve SDK'ları destekler. Bu kılavuz, genellikle RESTful API'nin kullanımını açıklamaya odaklanmaktadır.
API'ye erişme örneği
curl -X PUT 'http://localhost:6333/collections/test_collection' \
-H 'Content-Type: application/json' \
--data-raw '{
"vectors": {
"size": 4,
"distance": "Dot"
}
}'
Qdrant Web UI
Web UI'ye http://localhost:6333/dashboard adresinden erişin
Koleksiyon Oluşturma
Qdrant vektör veritabanındaki koleksiyon kavramı, aynı tip vektör verilerini tutmak için kullanılan MYSQL tablo yapısına benzetilebilir. Koleksiyonda depolanan her veri, Qdrant'ta noktalar olarak adlandırılır ve matematiksel geometrik uzaydaki noktalara benzer bir anlam taşır, vektörün geometrik uzaydaki temsilini temsil eder (sadece bir veri parçası olarak kabul edin).
PUT /collections/{collection_name}
{
"vectors": {
"size": 300,
"distance": "Cosine"
}
}
Parametre Açıklaması:
Parametre | Açıklama |
---|---|
collection_name | Koleksiyon adı (zorunlu) |
vectors | Vektör parametresi tanımı (zorunlu) |
vectors.size | Vektör boyutunu (veya vektörün boyutunu) temsil eder |
vectors.distance | Vektör benzerlik algoritmasını temsil eder, genellikle "Cosine", "Euclid", "Dot" gibi üç algoritmayı içerir |
Vektörlerin (Noktaların) Eklenmesi
Bir koleksiyon oluşturduktan sonra, koleksiyona vektör verilerini ekleyebiliriz. Qdrant'ta vektör verileri noktalar kullanılarak temsil edilir, her nokta verisi üç parçadan oluşur: id, payload (ilişkili veri) ve vektör verisi.
Örnek
PUT /collections/{collection_name}/points
{
"points": [
{
"id": "5c56c793-69f3-4fbf-87e6-c4bf54c28c26", // id
"payload": {"color": "red"}, // Genellikle ilişkili iş verileri gibi ilişkili özellik verileri, örn: sipariş ID, ürün ID, başlık, vb.
"vector": [0.9, 0.1, 0.1] // Geçerli iş verisinin özelliklerini temsil eden vektör verisi
}
]
}
Vektör Araması
Vektör verileri ekledikten sonra, vektörleri kullanarak anlamsal benzerlik araması yapabiliriz.
Örnek
// collection_name - koleksiyon adı
POST /collections/{collection_name}/points/search
{
"vector": [0.2, 0.1, 0.9, 0.7], // vektör parametresi
"limit": 3 // En yüksek benzerlikle 3 veriyi döndür
}
Parametre Açıklaması:
- vektör: Bu vektöre benzer içeriği aramak için kullanılan vektör parametresi. Örneğin: Kullanıcıların aramak istediği anahtar kelimeleri vektörlere dönüştürebilir ve ardından kullanıcı girdisiyle ilgili içeriği arayabilirsiniz.
Öznitelik Filtreleme
Veri ararken, vektörler kullanarak benzerlik aramaları yapmanın yanı sıra bazen de SQL'deki WHERE ifadesine benzer şekilde öznitelik filtreleme işlemi yapmak isteyebiliriz. Qdrant, nokta yüküyle ilişkilendirilmiş öznitelikleri filtrelemek için filtre sorgularını destekler.
Örnek
// collection_name - koleksiyon adı
POST /collections/{collection_name}/points/search
{
"filter": { // Bu özellik genellikle nokta yüküyle ilişkilendirilmiş öznitelikleri filtrelemek için kullanılır ve genel sözdizim formatı Elasticsearch sözdizimine benzer. Bu parametre opsiyoneldir.
"must": [ // Renk=kırmızı olan nokta verilerini filtrele
{
"key": "color",
"match": {
"value": "red"
}
}
]
},
"vector": [0.2, 0.1, 0.9, 0.7], // Vektör parametresi
"limit": 3
}
Daha detaylı öğreticiler için lütfen aşağıdaki bölümlere başvurun.