توسيع نطاق مهارة مخصصة بكفاءة

المهارات المخصصة هي واجهات برمجة تطبيقات الويب التي تنفذ واجهة معينة. يمكن تنفيذ مهارة مخصصة على أي مورد قابل للعنوان بشكل عام. التطبيقات الأكثر شيوعا للمهارات المخصصة هي:

  • وظائف Azure للمهارات المنطقية المخصصة
  • تطبيقات Azure Web لمهارات الذكاء الاصطناعي بسيطة في حاويات
  • خدمة Azure Kubernetes للحصول على مهارات أكثر تعقيدا أو أكبر.

تكوين مجموعة المهارات

تستخدم الخصائص التالية على مهارة مخصصة للتحجيم. راجع واجهة المهارة المخصصة للحصول على مقدمة في المدخلات والمخرجات التي يجب أن تنفذها مهارة مخصصة.

  1. مجموعة batchSize من المهارة المخصصة لتكوين عدد السجلات المرسلة إلى المهارة في استدعاء واحد للمهارة.

  2. degreeOfParallelism قم بتعيين لمعايرة عدد الطلبات المتزامنة التي يقدمها المفهرس لمهارتك.

  3. تعيين timeoutإلى قيمة كافية للمهارة للاستجابة باستجابة صالحة.

  4. في indexer التعريف، قم بتعيين batchSize إلى عدد المستندات التي يجب قراءتها من مصدر البيانات وإثراءها بشكل متزامن.

الاعتبارات

لا توجد مجموعة من التوصيات "حجم واحد يناسب الجميع". يجب أن تخطط لاختبار تكوينات مختلفة للوصول إلى نتيجة مثالية. تستند استراتيجيات توسيع النطاق إلى عدد أقل من الطلبات الكبيرة، أو العديد من الطلبات الصغيرة.

  • العلاقة الأساسية لادعاء المهارة: تأكد من معرفة ما إذا كانت المهارة المخصصة تنفذ مرة واحدة لكل مستند (/document/content) أو عدة مرات لكل مستند (/document/reviews_text/pages/*). إذا كان ذلك عدة مرات لكل مستند، فابق على الجانب السفلي من batchSize و degreeOfParallelism لتقليل الهزة، وحاول تعيين حجم دفعة المفهرس إلى قيم أعلى بشكل متزايد لمزيد من المقياس.

  • قم بتنسيق المهارة batchSize المخصصة والمفهرس batchSize، وتأكد من أنك لا تخلق اختناقات. على سبيل المثال، إذا كان حجم دفعة المفهرس 5، وكان حجم دفعة المهارة 50، فستحتاج إلى 10 دفعات مفهرس لملء طلب مهارة مخصص. من الناحية المثالية، يجب أن يكون حجم دفعة المهارة أقل من حجم دفعة المفهرس أو مساويا له.

  • بالنسبة degreeOfParallelismإلى ، استخدم متوسط عدد الطلبات التي يمكن أن تنشئها دفعة المفهرس لتوجيه قرارك حول كيفية تعيين هذه القيمة. إذا كانت البنية الأساسية التي تستضيف المهارة، على سبيل المثال دالة Azure، لا يمكنها دعم مستويات عالية من التزامن، ففكر في طلب درجات التوازي. يمكنك اختبار التكوين الخاص بك مع بعض المستندات للتحقق من فهمك لمتوسط عدد الطلبات.

  • على الرغم من أن العنصر الخاص بك هو مقياس ودعم لأحجام كبيرة، فإن الاختبار باستخدام عينة أصغر من المستندات يساعد على تحديد مراحل التنفيذ المختلفة. على سبيل المثال، يمكنك تقييم وقت تنفيذ مهارتك، بالنسبة إلى الوقت الإجمالي المستغرق لمعالجة المجموعة الفرعية من المستندات. يساعدك هذا في الإجابة على السؤال: هل يقضي المفهرس مزيدا من الوقت في بناء دفعة أو في انتظار استجابة من مهارتك؟

  • ضع في اعتبارك الآثار النهائية للتوازي. إذا كان الإدخال إلى مهارة مخصصة ناتجا من مهارة سابقة، هل يتم توسيع نطاق جميع المهارات في مجموعة المهارات بشكل فعال لتقليل زمن الانتقال؟

معالجة الأخطاء في المهارة المخصصة

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

أي عناصر في دفعة ستؤدي الأخطاء إلى فشل المستند المقابل. إذا كنت بحاجة إلى نجاح المستند، فسترجع تحذيرا.

يتم تقييم أي رمز حالة يزيد عن 299 كخطأ ويتم فشل جميع عمليات الإثراء مما يؤدي إلى فشل المستند.

رسائل الخطأ الشائعة

  • Could not execute skill because it did not execute within the time limit '00:00:30'. This is likely transient. Please try again later. For custom skills, consider increasing the 'timeout' parameter on your skill in the skillset. تعيين معلمة المهلة على المهارة للسماح لمدة تنفيذ أطول.

  • Could not execute skill because Web Api skill response is invalid. مؤشر على عدم إرجاع المهارة لرسالة بتنسيق استجابة المهارة المخصصة. قد يكون هذا نتيجة استثناء غير مهم في المهارة.

  • Could not execute skill because the Web Api request failed. على الأرجح بسبب أخطاء التخويل أو الاستثناءات.

  • Could not execute skill. عادة ما تكون نتيجة استجابة المهارة التي يتم تعيينها إلى خاصية موجودة في التسلسل الهرمي للمستند.

اختبار المهارات المخصصة

ابدأ باختبار مهارتك المخصصة باستخدام عميل REST API للتحقق من صحة:

  • تنفذ المهارة واجهة المهارة المخصصة للطلبات والاستجابات

  • ترجع المهارة JSON صالحا application/JSON بنوع MIME

  • إرجاع رمز حالة HTTP صالح

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

أفضل الممارسات

  • في حين أن المهارات يمكن أن تقبل وتعيد حمولات أكبر، فكر في الحد من الاستجابة إلى 150 ميغابايت أو أقل عند إرجاع JSON.

  • ضع في اعتبارك تعيين حجم الدفعة على المفهرس والمهارة للتأكد من أن كل دفعة مصدر بيانات تنشئ حمولة كاملة لمهارتك.

  • بالنسبة للمهام طويلة الأمد، قم بتعيين المهلة إلى قيمة عالية بما يكفي للتأكد من أن المفهرس لا يخطئ عند معالجة المستندات بشكل متزامن.

  • قم بتحسين حجم دفعة المفهرس وحجم دفعة المهارة ودرجات التوازي للمهارة لإنشاء نمط التحميل الذي تتوقعه مهارتك أو طلبات كبيرة أقل أو العديد من الطلبات الصغيرة.

  • مراقبة المهارات المخصصة مع سجلات مفصلة من حالات الفشل كما يمكن أن يكون لديك سيناريوهات حيث تفشل طلبات محددة باستمرار نتيجة لتباين البيانات.