یہ فصل ملاقات کراتی ہے کہ کیسے آپ پائتھان کا ڈویلپمنٹ شروع کر سکتے ہیں اور پائتھان کا استعمال کرکے ہمیں ملوس کی کارروائیوں کا پہلے سے جاننا ہوتا ہے۔

۔ ورژن کی ضرورت:

  • ملوس 2.3.0
  • پائتھان 3 (3.7.1 یا اس سے زیادہ)
  • PyMilvus 2.3.x

ملوس پائتھان ایس ڈی کا انسٹال کریں

python3 -m pip install pymilvus==

ساننپل کوڈ ڈاؤن لوڈ کریں سیدھا hello_milvus.py ڈاؤن لوڈ کرنے کے لئے مندرجہ ذیل کمانڈ استعمال کریں یا مندرجہ ذیل کمانڈ کا استعمال کریں۔

$ wget https://www.tizi365.com/storage/hello_milvus.py

ساننپل کوڈ کی وضاحت: ساننپل کوڈ مندرجہ ذیل اقدامات انجام دیتا ہے۔

  • PyMilvus پیکیج کو وارد کریں:
from pymilvus import (
    connections,
    utility,
    FieldSchema,
    CollectionSchema,
    DataType,
    Collection,
)
  • سرور سے منسلک ہوں:
connections.connect("default", host="localhost", port="19530")
  • ایک کلیکشن بنائیں:
fields = [
    FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=False),
    FieldSchema(name="random", dtype=DataType.DOUBLE),
    FieldSchema(name="embeddings", dtype=DataType.FLOAT_VECTOR, dim=8)
]
schema = CollectionSchema(fields, "hello_milvus is the simplest demo example, used to introduce the API")
hello_milvus = Collection("hello_milvus", schema)
  • کلیکشن میں ویکٹر ڈالیں:
import random
entities = [
    [i for i in range(3000)],  # field pk
    [float(random.randrange(-20, -10)) for _ in range(3000)],  # field random
    [[random.random() for _ in range(8)] for _ in range(3000)],  # field embeddings
]
insert_result = hello_milvus.insert(entities)
hello_milvus.flush()
  • انٹٹیز پر اینڈیکس بنائیں:
index = {
    "index_type": "IVF_FLAT",
    "metric_type": "L2",
    "params": {"nlist": 128},
}
hello_milvus.create_index("embeddings", index)
  • کلیکشن کو میموری میں لوڈ کریں اور ویکٹر مماثلت تلاش کریں:
hello_milvus.load()
vectors_to_search = entities[-1][-2:]
search_params = {
    "metric_type": "L2",
    "params": {"nprobe": 10},
}
result = hello_milvus.search(vectors_to_search, "embeddings", search_params, limit=3, output_fields=["random"])
  • ویکٹر کوئیریز کریں:
result = hello_milvus.query(expr="random > -14", output_fields=["random", "embeddings"])
  • مکسڈ سرچ کریں:
result = hello_milvus.search(vectors_to_search, "embeddings", search_params, limit=3, expr="random > -12", output_fields=["random"])
  • پرائمری کی بنیاد پر انٹیٹیز کو حذف کریں:
expr = f"pk in [{entities[0][0]}, {entities[0][1]}]"
hello_milvus.delete(expr)
  • کلیکشن کو حذف کریں:
utility.drop_collection("hello_milvus")

نمونہ کوڈ کا اجراء

نمونہ کوڈ کو چلانے کے لئے مندرجہ ذیل کمانڈ کو نافذ کریں۔

$ python3 hello_milvus.py

نیچے واپسی نتائج اور سوال کی لیٹنسی دکھائی گئی ہیں:

=== ملوس کے ساتھ منسلک ہو رہا ہے ===

کیا سلیکشن جو hello_milvus نام کی ہے ملوس میں موجود ہے: غلط

=== کلیکشن `hello_milvus` بنانا ===

=== انٹیٹیز داخل کرنا ===

ملوس میں انٹیٹیز کی تعداد: 3000

=== IVF_FLAT انڈیکس بنانا ===

=== لوڈ کرنا ===

=== برابر برابر  برابرات سے تلاش کرنا ===

میچ: (فاصلہ: 0.0، شناخت: 2998)، رینڈم فیلڈ: -11.0
میچ: (فاصلہ: 0.4694891378879547، شناخت: 1262)، رینڈم فیلڈ: -17.0
میچ: (فاصلہ: 0.46560767221450806، شناخت: 1685)، رینڈم فیلڈ: -18.0
میچ: (فاصلہ: 0.0، شناخت: 2999)، رینڈم فیلڈ: -11.0
میچ: (فاصلہ: 0.37130862498283386، شناخت: 1760)، رینڈم فیلڈ: -17.0
میچ: (فاصلہ: 0.47116813، شناخت: 106)، رینڈم فیلڈ: -15.0
تلاش کی لیٹنسی = 0.2796 سیکنڈ

=== `random > -14` کا استعمال کرتے ہوئے کوئیری کرنا ===

کوئیری کا نتیجہ:
- {'pk': 9، 'random': -13.0، 'embeddings': [0.298433، 0.931987، 0.949756، 0.598713، 0.290125، 0.094323، 0.064444، 0.306993]}
تلاش کی لیٹنسی = 0.2970 سیکنڈ

=== `random > -12` کا استعمال کرتے ہوئے مختلط تلاش کرنا ===

میچ: (فاصلہ: 0.0، شناخت: 2998)، رینڈم فیلڈ: -11.0
میچ: (فاصلہ: 0.17413942575454712، شناخت: 1289)، رینڈم فیلڈ: -18.0
میچ: (فاصلہ: 0.15453216469287872، شناخت: 677)، رینڈم فیلڈ: -17.0
میچ: (فاصلہ: 0.0، شناخت: 2999)، رینڈم فیلڈ: -11.0
میچ: (فاصلہ: 0.16946256196594238، شناخت: 640)، رینڈم فیلڈ: -17.0
میچ: (فاصلہ: 0.23995159554481506، شناخت: 1890)، رینڈم فیلڈ: -15.0
تلاش کی لیٹنسی = 0.3028 سیکنڈ

=== `pk in [0, 1]` کی روشنی میں حذف کرنا ===

حذف کرنے کے لئے کوئیری کرتے ہوئے پوچھنا کہ کیا `pk in [0, 1]` کے بنیاد پر ڈیلیٹ میں پہلے سے سوالی ہے -> نتیجہ:
- {'pk': 0، 'random': -10.0، 'embeddings': [0.249356، 0.75377، 0.1495325، 0.5611126، 0.1480831، 0.9754792، 0.7326457، 0.6718869]} 
- {'pk': 1، 'random': -19.0، 'embeddings': [0.8562291، 0.5082093، 0.2537944، 0.3673589، 0.69892، 0.916102، 0.4716004، 0.4637171]} 

`pk in [0، 1]` کی روشنی میں حذف کرنے کے بعد کوئیری کرنا -> نتیجہ: []
=== کلیکشن `hello_milvus` کا حذف کرنا ===