الوثائق

الـPipelines الفرعية

يمكن لـpipeline أن يستدعي آخر كدالة — لتحليل منطق قابل لإعادة الاستخدام أو مشاركة قدرة عبر المؤسسات، مع مسار تدقيق كامل.

الـPipelines الفرعية

بعد حدٍّ معيّن، يصبح نسخ التسلسل نفسه من العُقد عبر عشرة pipelines دَينًا تقنيًا. وتتيح الـpipelines الفرعية لـpipeline أن يستدعي آخر كدالة: عرّف قطعة منطق مرّة واحدة، وأعِد استخدامها في كل مكان — بما في ذلك عبر المؤسسات.

لَبِنتان متناظرتان:

  • pipeline_callable (مستقبِل، مُعلَن على عقدة Start) يعرض pipeline خلف عنوان URL، بعقد إدخال وإخراج مُنمَّط.
  • pipeline_call (عقدة) يستدعي ذلك الـpipeline: يربط مدخلاته من السياق الحالي ويخزّن النتيجة في مفتاح إخراج.

عرض pipeline (pipeline_callable)

على pipeline «الخدمة»، تضيف مستقبِل pipeline_callable يعلن عن:

  • المدخلات — قائمة المعاملات المتوقَّعة (الاسم، النوع، مطلوب أو اختياري).
  • المخرجات — مفاتيح النتيجة المُعادة.
  • مفتاح الاستجابة — أي قيمة سياق تشكّل الاستجابة.
  • الميزانية الزمنية — أقصى وقت تنفيذ (30 ثانية افتراضيًا، 300 ثانية كحد أقصى).

يستقبل الـpipeline عندئذٍ عنوان URL عامًّا (مع رمز مميّز) لمشاركته مع الـpipeline المُستدعِي. والرمز المميّز قابل للتدوير في أي وقت لإبطال الوصول.

استدعاء pipeline (pipeline_call)

على pipeline «المُستهلِك»، تُهيَّأ عقدة pipeline_call بـ:

  • عنوان URL للـpipeline المستهدَف.
  • ربط إدخال — لكل معامل متوقَّع، مُحدِّد السياق الذي يزوّده.
  • مفتاح الإخراج حيث تُخزَّن النتيجة.

عند الفشل (مهلة، خطأ، استجابة مشوَّهة)، يتابع الـpipeline: يستقبل مفتاح الإخراج القيمة null ويصف مفتاح ._error ما حدث. ومن مسؤولية الـpipeline لديك تنسيق الاحتياطي (فرع احتياطي، تنبيه).

الاستدعاءات عبر المؤسسات: اختيار صريح ومُدقَّق

يمكن استدعاء pipeline فرعي من مؤسسة مختلفة — وهذا هو أساس مشاركة القدرات بين الكيانات. ويبقى النموذج صارمًا:

  • مرفوض افتراضيًا. لا تكون الاستدعاءات عبر المؤسسات ممكنة إلا إذا صرّح بها مسؤول الـpipeline المعروض صراحةً (allow_cross_org).
  • توقيع HMAC مُوصى به. بمجرّد فتح استدعاء عبر المؤسسات، يُفعَّل سرّ مشترك: يُوقَّع كل طلب، ويرفض المستقبِل أي توقيع غائب أو غير صالح.
  • كل شيء يُتتبَّع. يكتب كل استدعاء سجلّ تدقيق (المؤسسة المُستدعِية، العقدة، العمق، زمن الاستجابة، الحالة) — قبل التنفيذ، بحيث يوجد أثر حتى في حال وقوع حادث. ويمكن للطرفين الاطّلاع على سجلّاتهما الخاصة (جانب المُستدعِي وجانب المُستدعَى)، وفقًا لحقوق الوصول بموجب GDPR.

الفوترة: تدفع المؤسسة المُستدعَاة مقابل الموارد (LLM، الصوت…) المُستهلَكة أثناء التنفيذ. منطق الضيف: أنت تستخدم موارد مضيفك.

منع الحلقات

الـpipeline الذي يستدعي نفسه، مباشرةً أو عبر سلسلة، سيستهلك أرصدة إلى ما لا نهاية. وهناك حمايتان:

  • الكشف الساكن عند التسجيل (داخل مؤسسة): يرفض المحرّر نشر دورة مباشرة (A → A) أو دورة غير مباشرة (A → B → C → A)، مستشهدًا بالسلسلة المخالِفة.
  • حارس وقت التشغيل (عبر المؤسسات، حيث تستحيل الرؤية الساكنة): يمرّر كل استدعاء عمقه؛ وبعد سقف مُهيَّأ، يُقطَع الاستدعاء.

أوضاع التنفيذ

  • متزامن — تنتظر العقدة الاستجابة الكاملة. مناسب للعمليات قصيرة المدّة.
  • بثّ (Streaming) — لـpipeline فرعي طويل المدّة (استدلال LLM، معالجة دفعية)، يُبثّ التقدّم في الوقت الفعلي بلا مهلة ثابتة. ويمكن للـpipeline المُستدعِي إظهار هذا التقدّم في واجهة مستخدم.

متى تستخدمها

  • تحليل تسلسل تعيد استخدامه عدّة pipelines (تلخيص سلسلة، تأهيل عميل محتمل، التحقق من مستند).
  • مشاركة قدرة بين المؤسسات — كيان يعرض «التحقق من فاتورة مقابل ERP»، ويستهلكها آخر، مع مسار تدقيق على الجانبين.
  • موازاة توزيع (fan-out) لمهام فرعية مستقلّة من حلقة.