> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/flow-control/batch-processing.md).

# Batch Processing

تجمع هذه الدالة عدة قيم دخلية في حاوية دفعة واحدة لتقليل استهلاك الذاكرة أثناء المعالجة. استخدمها عندما تريد تجميع عناصر (صور، بيانات أو قيَم عامة) في تدفق واحد يمكن لبِلوكات أخرى معالجته كدفعة.

## 📥 المدخلات <a href="#inputs" id="inputs"></a>

`Input 1`\
القيمة الأولى المدرجة في الدفعة. يمكن أن تكون بيانات صورة، أرقام، نصوص، قوائم أو قيم عامة أخرى.

`Input 2`\
القيمة الثانية المدرجة في الدفعة. يمكن توصيل مدخلات إضافية حسب سير العمل.

## 📤 المخرجات <a href="#outputs" id="outputs"></a>

`Batch`\
قائمة مجمعة واحدة تحتوي القيم المتصلة مجمعةً للمعالجة على شكل دفعة.

## 🕹️ الضوابط <a href="#controls" id="controls"></a>

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

## 🎯 الميزات <a href="#features" id="features"></a>

* يجمع عدة مدخلات في كائن دفعة واحد صديق للذاكرة للمعالجة اللاحقة.
* يقبل أنواع بيانات عامة لذا يمكنه تجميع صور، أرقام، نصوص أو قوائم.
* مفيد لتقليل البصمة الذاكرية عند التعامل مع عدد كبير من العناصر في خط الأنابيب.

## 📝 كيفية الاستخدام <a href="#usage" id="usage"></a>

1. وصل العناصر التي تريد تجميعها إلى `Input 1` و`Input 2` (أو إلى مدخلات إضافية إن وُجدت).
2. سيخرج البلوك `Batch` واحدة تحتوي تلك المدخلات على شكل قائمة.
3. قدّم مخرج `Batch` إلى بلوكات تقبل مدخلات على شكل دفعات أو إلى بلوكات يمكنها التكرار على محتويات الدفعة.

## ⚙️ سلوك التشغيل <a href="#evaluation" id="evaluation"></a>

عند تشغيل السيناريو، يجمع البلوك القيم الموجودة في مقابسه المدخَلية ويصدرها مُجمعةً كـ `Batch` واحدة. إذا كان أحد المدخلات مفقودًا أو غير صالح، ستتضمن الدفعة عنصر نائب لذلك الموضع لكي تتم معالجته بشكل متسق من قبل البلوكات اللاحقة.

## 💡 نصائح وحيل <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* أنشئ مجموعات صور مُجمعة من مصادر متعددة بجمع مدخلات الصور مثل `Load Image`, `Camera USB`, `Camera IP (ONVIF)`, أو `Video` في `Batch` واحد للمعالجة.
* استخدم `Batch Processing` قبل بلوكات الذكاء الاصطناعي الثقيلة مثل `Object Detection`, `Mask Detection`, `Super Resolution` أو `OCR` لتقليل استهلاك الذاكرة عند تشغيل العديد من الصور.
* بعد معالجة الدفعة، استخدم `Debatch` لتقسيم النتائج مرة أخرى إلى عناصر فردية للرسم أو الحفظ.
* ادمج دفعات متعددة باستخدام `Batch Concatenation` عندما تحتاج لدمج دفعات تم إنشاؤها في أجزاء مختلفة من سير العمل.
* استخدم `Get Batch Size` و`Get Element` لفحص أو الوصول إلى عناصر داخل الـ `Batch` لأغراض المنطق الشرطي أو المعالجة الانتقائية.
* عند حفظ النتائج، وصل مخرجات كل عنصر (بعد `Debatch`) إلى `Image Logger`, `Image Write` أو `Record Video` لتخزين الصور المعالجة بكفاءة.

## 🛠️ استكشاف الأخطاء وإصلاحها <a href="#troubleshooting" id="troubleshooting"></a>

* لا توجد بيانات في `Batch`: تحقق أن البلوكات السابقة تولّد قيمًا على المدخلات. إذا كان أحد المدخلات فارغًا بشكل متعمد، سيظهر ذلك الموضع كفارغ داخل الدفعة.
* ترتيب العناصر غير المتوقع: تحتفظ الدفعة بترتيب المدخلات كما تم توصيلها. أعد ترتيب الاتصالات إذا كنت بحاجة إلى تسلسل مختلف.
* البلوكات اللاحقة لا تقبل الدفعة: بعض البلوكات تتوقع عناصر فردية بدل الدفعات. استخدم `Debatch` لتحويل الدفعة إلى عناصر فردية قبل تمريرها لتلك البلوكات.
