اس باب میں Qdrant ویکٹر ڈیٹابیس کا تیز شروع کرنا اور RESTful API پر مبنی ویکٹر ڈیٹابیس کو کیسے آپریٹ کرنا ہے کا تعارف کیا گیا ہے۔

Qdrant کی تنصیب

نوٹ: یہ ٹیوٹوریل Qdrant ڈیٹابیس کو ڈاکر کا استعمال کرتے ہوئے ہے، براہ کرم جاری رہنے سے پہلے ڈاکر کو انسٹال کریں۔

Qdrant تصویر ڈاؤن لوڈ کریں

docker pull Qdrant/Qdrant

Qdrant ویکٹر ڈیٹابیس سروس شروع کریں

docker run -p 6333:6333 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    Qdrant/Qdrant

پیش فرض طور پر، ہم لوکل فائل ڈائریکٹری کو کنٹینر کے ساتھ میپ کرتے ہیں، اور تمام ڈیٹا ./qdrant_storage ڈائریکٹری میں ذخیرہ ہوتا ہے۔

آپ اب لوکل ہوسٹ: 6333 کے ذریعے Qdrant تک رسائی حاصل کر سکتے ہیں۔

Qdrant ویکٹر ڈیٹابیس RESTful API کو سپورٹ کرتا ہے، جیسا کہ ڈیٹابیس کی آپریشنز کے لئے، اور پروگرامنگ زبانوں جیسے پائتھن، گو، وغیرہ کے لئے ایس ڈی کے بھی سی ایڈ کو سپورٹ کرتا ہے۔ یہ ٹیوٹوریل بنیادی طور پر RESTful API کے استعمال کو بیان کرنے پر تھیک ہے۔

API تک رسائی کی مثال

curl -X PUT 'http://localhost:6333/collections/test_collection' \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "vectors": {
      "size": 4,
      "distance": "Dot"
    }
  }'

Qdrant ویب یو آئی

ویب یو آئی تک رسائی حاصل کریں مندرجہ ذیل ایڈریس کے ذریعے http://localhost:6333/dashboard

Qdrant ویب یو آئی

کلیکشن جوڑائیں

Qdrant ویکٹر ڈیٹابیس میں کلیکشن کے تصور کو MYSQL کی ٹیبل ساخت کے ساتھ موازنہ کرنا ممکن ہے، جو ایک ہی قسم کے ویکٹر ڈیٹا کو یکساں طور پر ذخیرہ کرنے کے لئے استعمال ہوتا ہے۔ ہر کلیکشن میں شدت سے موازنہ کرنے والے نقطوں کو Qdrant کے ضمنی معنوں کی طرح استعمال کیا جاتا ہے، جو ہندسی فضائی میں ویکٹر کی تشریح کو ظاہر کرتا ہے (صرف اسے ایک ڈیٹا کے طور پر دیکھا جاتا ہے)۔

PUT /collections/{collection_name}

{
    "vectors": {
      "size": 300,
      "distance": "Cosine"
    }
}

پیرامیٹر کی وضاحت:

پیرامیٹر تفصیل
collection_name کلیکشن کا نام (ضروری)
vectors ویکٹر پیرامیٹر کی تعریف (ضروری)
vectors.size ویکٹر سائز کو ظاہر کرتا ہے (یا ویکٹر کے ابعاد کو)
vectors.distance ویکٹر مماثلت کا الگورتھم ظاہر کرتا ہے، عموماً میں تین الگورتھمز شامل ہیں: "Cosine," "Euclid," "Dot"

ویکٹرز (پوائنٹس) شامل کرنا

کلیکشن بنانے کے بعد، ہم کلیکشن میں ویکٹر ڈیٹا شامل کر سکتے ہیں۔ Qdrant میں، ویکٹر ڈیٹا کو پوائنٹس کے طور پر ظاہر کیا گیا ہے، جہاں ہر پوائنٹ ڈیٹا میں تین حصے ہیں: شناخت (ID)، لوڈ (متعلقہ ڈیٹا)، اور ویکٹر ڈیٹا۔

مثال

PUT /collections/{collection_name}/points

{
    "points": [
        {
            "id": "5c56c793-69f3-4fbf-87e6-c4bf54c28c26", // شناخت (ID)
            "payload": {"color": "red"}, // متعلقہ انگوٹھوں والا ڈیٹا، عموماً متعلقہ کاروباری انگوٹھے، جیسے: آرڈر شناخت، پروڈکٹ شناخت، عنوان، وغیرہ۔
            "vector": [0.9, 0.1, 0.1] // ویکٹر ڈیٹا جو موجودہ کاروباری ڈیٹا کی خصوصیات کو ظاہر کرتا ہے
        }
    ]
}

ویکٹر تلاش

ویکٹر ڈیٹا شامل کرنے کے بعد، ہم ویکٹرز کا استعمال کرتے ہوئے معنوی مشابہتی تلاش کر سکتے ہیں۔

مثال

// collection_name - کلیکشن کا نام
POST /collections/{collection_name}/points/search

{
    "vector": [0.2, 0.1, 0.9, 0.7], // ویکٹر پیرامیٹر
    "limit": 3 // 3 سب سے زیادہ مشابہت والے ڈیٹا واپس کریں
}

پیرامیٹر کی وضاحت:

  • vector: ویکٹر پیرامیٹر جو اس ویکٹر سے مشابہ مواد تلاش کرنے کے لئے استعمال ہوتا ہے۔ مثال کے طور پر: آپ صارفین کے درخواست کی کی وردیز کو ویکٹرز میں تبدیل کر سکتے ہیں، اور پھر صارف کی داخلات سے متعلق مواد تلاش کر سکتے ہیں۔

خصوصیت فلٹرنگ

ڈیٹا تلاش کرتے وقت، وکٹرز کا استعمال کرکے مشابہت کی تلاش کے علاوہ، کبھی کبھار ہمیں کچھ خصوصیات کو فلٹر کرنے کا بھی ارادہ ہوتا ہے جو SQL کے WHERE کلاز کی طرح ہوتا ہے۔ کدراٹ خصوصیات کے فلٹرنگ کے لئے فلٹر کوئیری کا سپورٹ فراہم کرتا ہے جو پوائنٹ پے لوڈ کی ساتھ منسلک خصوصیات کو فلٹر کرنے کے لئے ہوتا ہے۔

مثال

// collection_name - کلیکشن کا نام
POST /collections/{collection_name}/points/search

{
    "filter": { // یہ عموماً پوائنٹ پے لوڈ کی منسلک خصوصیات کو فلٹر کرنے کے لئے استعمال ہوتا ہے، اور کل کا سینٹیکس فارمیٹ الیسٹکسرچ کے سینٹیکس کے مشابہ ہوتا ہے۔ یہ پیرامیٹر اختیاری ہے۔
        "must": [ // رنگ=سرخ والے پوائنٹ ڈیٹا کو فلٹر کریں
            {
                "key": "color",
                "match": {
                    "value": "red"
                }
            }
        ]
    },
    "vector": [0.2, 0.1, 0.9, 0.7], // وکٹر پیرامیٹر
    "limit": 3
}

مزید تفصیلات کے لئے، براہ کرم مندرجہ ذیل فصلوں کا مطالعہ کریں۔