🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
  • Home
  • Blog
  • مقدمة عن مجموعة أدوات تطوير البرمجيات (SDK) وواجهة برمجة تطبيقات ميلفوس بايثون

مقدمة عن مجموعة أدوات تطوير البرمجيات (SDK) وواجهة برمجة تطبيقات ميلفوس بايثون

  • Engineering
March 21, 2022
Xuan Yang

Cover image صورة الغلاف

بقلم شوان يانغ

الخلفية

يوضح الرسم التوضيحي التالي التفاعل بين حزم تطوير البرمجيات SDKs و Milvus من خلال gRPC. تخيل أن ميلفوس هو صندوق أسود. تُستخدم المخازن المؤقتة للبروتوكول لتحديد واجهات الخادم وهيكل المعلومات التي تحملها. لذلك، يتم تعريف جميع العمليات في الصندوق الأسود Milvus بواسطة واجهة برمجة تطبيقات البروتوكول.

Interaction التفاعل

واجهة برمجة تطبيقات بروتوكول ميلفوس

تتكون واجهة برمجة تطبيقات بروتوكول ميلفوس من milvus.proto و common.proto و schema.proto ، وهي ملفات مخازن بروتوكول مؤقتة ملحقة بـ .proto. لضمان التشغيل السليم، يجب أن تتفاعل حزم SDKs مع Milvus مع ملفات المخازن المؤقتة للبروتوكول هذه.

milvus.proto

milvus.proto هو المكون الحيوي لواجهة برمجة تطبيقات بروتوكول ميلفوس لأنه يحدد MilvusService ، والذي يحدد كذلك جميع واجهات RPC الخاصة بـ Milvus.

يوضح نموذج الكود التالي الواجهة CreatePartitionRequest. وهي تحتوي على معلمتين رئيسيتين من نوع السلسلة collection_name و partition_name ، والتي يمكنك بناءً عليها بدء طلب إنشاء قسم.

CreatePartitionRequest CreatePartitionRequest

تحقق من مثال على البروتوكول في مستودع PyMilvus GitHub في السطر 19.

Example مثال

يمكنك العثور على تعريف CreatePartitionRequest هنا.

Definition التعريف

نرحب بالمساهمين الذين يرغبون في تطوير ميزة من ميلفوس أو مجموعة تطوير البرمجيات بلغة برمجة مختلفة للعثور على جميع الواجهات التي يقدمها ميلفوس عبر RPC.

common.proto

common.proto يحدد الأنواع الشائعة من المعلومات، بما في ذلك ErrorCode ، و Status.

common.proto common.proto

schema.proto

schema.proto يحدد المخطط في المعلمات. نموذج الكود التالي هو مثال على CollectionSchema.

schema.proto 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 بالخصائص التالية:

  1. تعمل مباشرة على الكائنات.
  2. يعزل منطق الخدمة وتفاصيل الوصول إلى البيانات.
  3. يخفي تعقيدات التنفيذ، ويمكنك تشغيل نفس البرامج النصية عبر مثيلات Milvus المختلفة بغض النظر عن أساليب النشر أو التنفيذ.

واجهة برمجة تطبيقات بنمط ORM

يكمن أحد جوهر واجهة برمجة التطبيقات بنمط ORM في التحكم في اتصال Milvus. على سبيل المثال، يمكنك تحديد أسماء مستعارة لعدة خوادم Milvus، والاتصال بها أو قطع الاتصال بها فقط باستخدام الأسماء المستعارة الخاصة بها. يمكنك حتى حذف عنوان الخادم المحلي، والتحكم في كائنات معينة عبر اتصال محدد بدقة.

Control Connection التحكم في الاتصال

ميزة أخرى لواجهة برمجة التطبيقات على غرار 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 Started

Like the article? Spread the word

استمر في القراءة