مقدمة عن مجموعة أدوات تطوير البرمجيات (SDK) وواجهة برمجة تطبيقات ميلفوس بايثون
صورة الغلاف
بقلم شوان يانغ
الخلفية
يوضح الرسم التوضيحي التالي التفاعل بين حزم تطوير البرمجيات SDKs و Milvus من خلال gRPC. تخيل أن ميلفوس هو صندوق أسود. تُستخدم المخازن المؤقتة للبروتوكول لتحديد واجهات الخادم وهيكل المعلومات التي تحملها. لذلك، يتم تعريف جميع العمليات في الصندوق الأسود Milvus بواسطة واجهة برمجة تطبيقات البروتوكول.
التفاعل
واجهة برمجة تطبيقات بروتوكول ميلفوس
تتكون واجهة برمجة تطبيقات بروتوكول ميلفوس من milvus.proto
و common.proto
و schema.proto
، وهي ملفات مخازن بروتوكول مؤقتة ملحقة بـ .proto
. لضمان التشغيل السليم، يجب أن تتفاعل حزم SDKs مع Milvus مع ملفات المخازن المؤقتة للبروتوكول هذه.
milvus.proto
milvus.proto
هو المكون الحيوي لواجهة برمجة تطبيقات بروتوكول ميلفوس لأنه يحدد MilvusService
، والذي يحدد كذلك جميع واجهات RPC الخاصة بـ Milvus.
يوضح نموذج الكود التالي الواجهة CreatePartitionRequest
. وهي تحتوي على معلمتين رئيسيتين من نوع السلسلة collection_name
و partition_name
، والتي يمكنك بناءً عليها بدء طلب إنشاء قسم.
CreatePartitionRequest
تحقق من مثال على البروتوكول في مستودع PyMilvus GitHub في السطر 19.
مثال
يمكنك العثور على تعريف CreatePartitionRequest
هنا.
التعريف
نرحب بالمساهمين الذين يرغبون في تطوير ميزة من ميلفوس أو مجموعة تطوير البرمجيات بلغة برمجة مختلفة للعثور على جميع الواجهات التي يقدمها ميلفوس عبر RPC.
common.proto
common.proto
يحدد الأنواع الشائعة من المعلومات، بما في ذلك ErrorCode
، و Status
.
common.proto
schema.proto
schema.proto
يحدد المخطط في المعلمات. نموذج الكود التالي هو مثال على CollectionSchema
.
schema.proto
milvus.proto
و common.proto
، و schema.proto
معًا يشكلان معًا واجهة برمجة التطبيقات الخاصة بـ Milvus، ويمثلان جميع العمليات التي يمكن استدعاؤها عبر RPC.
إذا بحثت في التعليمات البرمجية المصدرية ولاحظت بعناية، ستجد أنه عند استدعاء واجهات مثل create_index
، فإنها في الواقع تستدعي واجهات RPC متعددة مثل describe_collection
و describe_index
. العديد من الواجهات الخارجية لـ Milvus هي مزيج من واجهات RPC متعددة.
بعد فهم سلوكيات RPC، يمكنك بعد ذلك تطوير ميزات جديدة لـ Milvus من خلال الجمع. أنت أكثر من مرحب بك لاستخدام خيالك وإبداعك والمساهمة في مجتمع Milvus.
PyMilvus 2.0
رسم الخرائط العلاقة بين الكائنات (ORM)
باختصار، يشير التعيين العلائقي للكائنات (ORM) إلى أنه عندما تعمل على كائن محلي، فإن هذه العمليات ستؤثر على الكائن المقابل على الخادم. يتميز PyMilvus ORM-style API بالخصائص التالية:
- تعمل مباشرة على الكائنات.
- يعزل منطق الخدمة وتفاصيل الوصول إلى البيانات.
- يخفي تعقيدات التنفيذ، ويمكنك تشغيل نفس البرامج النصية عبر مثيلات Milvus المختلفة بغض النظر عن أساليب النشر أو التنفيذ.
واجهة برمجة تطبيقات بنمط ORM
يكمن أحد جوهر واجهة برمجة التطبيقات بنمط ORM في التحكم في اتصال Milvus. على سبيل المثال، يمكنك تحديد أسماء مستعارة لعدة خوادم Milvus، والاتصال بها أو قطع الاتصال بها فقط باستخدام الأسماء المستعارة الخاصة بها. يمكنك حتى حذف عنوان الخادم المحلي، والتحكم في كائنات معينة عبر اتصال محدد بدقة.
التحكم في الاتصال
ميزة أخرى لواجهة برمجة التطبيقات على غرار ORM هي أنه بعد التجريد، يمكن إجراء جميع العمليات مباشرةً على الكائنات، بما في ذلك التجميع والتقسيم والفهرس.
يمكنك تجريد كائن مجموعة عن طريق الحصول على كائن موجود أو إنشاء كائن جديد. يمكنك أيضًا تعيين اتصال Milvus إلى كائنات محددة باستخدام اسم مستعار للاتصال، بحيث يمكنك العمل على هذه الكائنات محليًا.
لإنشاء كائن تقسيم، يمكنك إما إنشاؤه مع كائن المجموعة الأصل، أو يمكنك القيام بذلك تمامًا كما تفعل عند إنشاء كائن مجموعة. يمكن استخدام هذه الطرق على كائن فهرس أيضًا.
في حالة وجود كائنات التقسيم أو كائنات الفهرس هذه، يمكنك الحصول عليها من خلال كائن المجموعة الأصل.
حول سلسلة التعمّق
مع الإعلان الرسمي عن توفر الإصدار 2.0 من Milvus 2.0 بشكل عام، قمنا بتنظيم سلسلة مدونة Milvus Deep Dive هذه لتقديم تفسير متعمق لبنية Milvus ورمز المصدر. تشمل الموضوعات التي تتناولها سلسلة المدونات هذه ما يلي:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word