यह अध्याय उपयोगकर्ता को बताता है कि Python का उपयोग करके Milvus विकास की तेजी से शुरुआत कैसे की जाती है।
हमारे द्वारा प्रदान किए गए नमूना कोड को चलाकर, आपको Milvus के कार्यों का प्रारंभिक समझ हो जाएगा।
संस्करण आवश्यकताएँ
- Milvus 2.3.0
- Python 3 (3.7.1 या उच्चतर)
- PyMilvus 2.3.x
Milvus Python SDK को इंस्टॉल करें
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 है सबसे सरल नमूना उदाहरण, जो 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
नीचे परिणाम और क्वेरी देरी दिखाई गई है:
=== Milvus से कनेक्ट करना ===
क्या Milvus में hello_milvus नामक संग्रह मौजूद है: नकली
=== `hello_milvus` संग्रह बनाना ===
=== मानों को डालना ===
Milvus में मानों की संख्या: 3000
=== IVF_FLAT इंडेक्स बनाना ===
=== लोड करना ===
=== हमले के आधार पर खोज करना ===
मिलान: (दूरी: 0.0, आईडी: 2998), यादृच्छिक क्षेत्र: -11.0
मिलान: (दूरी: 0.11455299705266953, आईडी: 1581), यादृच्छिक क्षेत्र: -18.0
मिलान: (दूरी: 0.1232629269361496, आईडी: 2647), यादृच्छिक क्षेत्र: -13.0
मिलान: (दूरी: 0.0, आईडी: 2999), यादृच्छिक क्षेत्र: -11.0
मिलान: (दूरी: 0.10560893267393112, आईडी: 2430), यादृच्छिक क्षेत्र: -18.0
मिलान: (दूरी: 0.13938161730766296, आईडी: 377), यादृच्छिक क्षेत्र: -14.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.15773043036460876, आईडी: 472), यादृच्छिक क्षेत्र: -11.0
मिलान: (दूरी: 0.3273330628871918, आईडी: 2146), यादृच्छिक क्षेत्र: -11.0
मिलान: (दूरी: 0.0, आईडी: 2999), यादृच्छिक क्षेत्र: -11.0
मिलान: (दूरी: 0.15844076871871948, आईडी: 2218), यादृच्छिक क्षेत्र: -11.0
मिलान: (दूरी: 0.1622171700000763, आईडी: 1403), यादृच्छिक क्षेत्र: -11.0
खोज की देरी = 0.3028 सेकंड
=== व्याख्या `pk in [0, 1]` का उपयोग करके हटाना ===
हटाने से पहले व्याख्या करने के लिए क्वेरी -> परिणाम `pk in [0, 1]`:
-{'pk': 0, 'random': -18.0, 'embeddings': [0.142279, 0.414248, 0.378628, 0.971863, 0.535941, 0.107011, 0.207052, 0.98182]}
-{'pk': 1, 'random': -15.0, 'embeddings': [0.57512, 0.358512, 0.439131, 0.862369, 0.083284, 0.294493, 0.004961, 0.180082]}
हटाने के बाद व्याख्या करने के लिए क्वेरी -> परिणाम: []
=== संग्रह `hello_milvus` हटाना ===