
تشغيل شيفرة المستخدمين وتحليل المستندات في خدمات معزولة
خدمتان منفصلتان تتيحان لخطوط المعالجة تشغيل شيفرة Python يكتبها المستخدمون، وتحويل المستندات إلى نص منظَّم، دون تعريض المنصة الرئيسية للخطر.
- الشريك
- شركة استشارات دولية
- المدة
- من أكتوبر 2024 إلى يناير 2026
- ذاكرة لكل تشغيل
- 1 GB
- يُوقَف التشغيل الذي يتجاوز الحد
- خدمتان معزولتان
- 2
- تنفيذ الشيفرة وتحليل المستندات
- النتائج
- متدفقة
- تُحلَّل فور إنتاجها، وتُعاد على دفعات
التحدي
احتاج المستخدمون إلى كتابة تحويلات مخصصة بلغة Python، وإدخال ملفات PDF والمستندات المكتبية إلى خطوط المعالجة وقواعد المعرفة. وتشغيل أي من ذلك داخل الواجهة الخلفية الرئيسية كان سيسمح لمهمة ثقيلة واحدة بإبطاء المنصة أو إيقافها للجميع.
ما بنيناه
خدمة لتنفيذ الشيفرة تشغّل كل مهمة في عملية مستقلة تحت حماية للذاكرة، ويُحدَّد عدد المهام المتزامنة فيها وفق الذاكرة المتاحة، وخدمة تحليل مبنية على Docling تقبل الملفات أو عناوين URL وتعيد نصًا منظَّمًا. وتتواصل الخدمتان مع المنصة عبر WebSockets.
ما تم تسليمه
- عزل شيفرة المستخدمين عن المنصة في عمليات منفصلة
- حساب عدد عمليات التشغيل المتزامنة من الذاكرة المتاحة، بواقع 1 GB لكل تشغيل
- تحليل المستندات لخطوط المعالجة ومصادر المعرفة
نبذة عن الشريك
شريكنا شركة استشارات دولية، تتعامل فرقها مع كميات كبيرة من المستندات وجداول البيانات وقواعد البيانات والبريد الإلكتروني. أرادت الشركة منصة داخلية واحدة تبني فيها هذه الفرق خطوط معالجة البيانات ووكلاء الذكاء الاصطناعي بنفسها، بدلًا من طلب تطبيق جديد لكل حاجة. وكان على المنصة أن تعمل ضمن بيئة Microsoft 365 وAzure لدى الشريك، وأن تفصل عمل كل فريق عن غيره، وأن تنقل العمل من التجربة إلى الإنتاج عبر بيئات مضبوطة.
التحدي
لا غنى عن المنطق المخصص
لا توجد مكتبة خطوات جاهزة تغطي كل تحويل. فالمستخدمون يحتاجون إلى كتابة الشيفرة، وقد تكون هذه الشيفرة بطيئة أو كثيفة الاستهلاك للذاكرة.
موارد مشتركة
أي مهمة خارجة عن السيطرة داخل الواجهة الخلفية الرئيسية ستؤثر في جميع مستخدمي المنصة.
المستندات ليست بيانات
يجب تحويل ملفات PDF والملفات المكتبية إلى نص منظَّم قبل أن يتمكن خط معالجة أو قاعدة معرفة من استخدامها.
الأهداف
- تشغيل شيفرة المستخدمين خارج عملية المنصة الرئيسية
- تقييد الذاكرة التي يمكن أن يستخدمها أي تشغيل منفرد
- قبول عدد من عمليات التشغيل لا يتجاوز ما تستوعبه الخدمة
- تحويل المستندات إلى نص منظَّم لخطوط المعالجة والوكلاء
دورنا
تولّت كارسنترك القيادة التقنية والبنية المعمارية ضمن فريق هندسي متعدد التخصصات، وأسهمت مباشرة في التنفيذ. بُنيت المنصة على مدى 16 شهرًا، من أكتوبر 2024 إلى يناير 2026، بواجهة خلفية مبنية على Python وFastAPI وتعمل على Azure.
النطاق والجدول الزمني
بُنيت خدمة تنفيذ الشيفرة بين مارس ويوليو 2025، وخدمة تحليل المستندات بين أبريل وأكتوبر 2025.

المنهجية
خدمات منفصلة وأعطال منفصلة
تعمل كل من القدرتين في حاوية خاصة بها. فلا يصل عطل أو حمل زائد في إحداهما إلى واجهة API الخاصة بالمنصة.
القبول حسب الذاكرة
يُحسب عدد عمليات التشغيل المتزامنة من الذاكرة المتاحة بواقع 1 GB لكل تشغيل. وتنتظر الطلبات الإضافية حتى تتوفر خانة شاغرة بدلًا من إثقال الخادم المضيف.
التدفق بدلًا من التخزين المؤقت
تنتقل المدخلات والمخرجات على دفعات عبر WebSockets، وتُحلَّل النتائج بمحلّل JSON تدفقي، فلا يلزم أن تتسع الذاكرة لمجموعات البيانات الكبيرة دفعة واحدة.
التنفيذ

تنفيذ الشيفرة
تصل الشيفرة والمدخلات على دفعات وتُكتب في ملف عمل. ويبدأ التشغيل في عملية مستقلة بينما تراقب أداة مراقبة استخدام الذاكرة وتوقفه إذا تجاوز 1 GB. وتعود النتائج إلى خط المعالجة متدفقة على دفعات.
تحليل المستندات
تقبل الخدمة محتوى ملف أو قائمة من عناوين URL، وتتحقق من صيغ العناوين، وتحتفظ بذاكرة تخزين مؤقت للمستندات المحلَّلة، وتستخدم Docling لإنتاج نص منظَّم.
الاستخدام في المنصة
تستخدم خطوة الشيفرة خدمة التنفيذ. وتستخدم خطوة قراءة المستندات وأدوات تحميل المعرفة خدمة التحليل.

الأدوات والتقنيات
| الأداة | الغرض |
|---|---|
| FastAPI WebSockets | واجهات الخدمات |
| العمليات الفرعية في Python | عزل عمليات التشغيل |
| psutil | مراقبة الذاكرة |
| ijson | تحليل JSON تدفقيًا |
| Docling | تحليل المستندات |
| Docker | حاويات الخدمات |
ما تم تسليمه
- خدمتان
- 2
- حد الذاكرة لكل تشغيل
- 1 GB
- المدخلات والمخرجات
- على دفعات
- المستندات المحلَّلة
- مخزّنة مؤقتًا
- خدمة تنفيذ معزولة لشيفرة Python التي يكتبها المستخدمون
- حدود للذاكرة وضبط القبول وفق الذاكرة المتاحة
- خدمة لتحليل المستندات لخطوط المعالجة وقواعد المعرفة
- نقل بيانات متدفق وعلى دفعات بين الخدمات
لماذا يهم ذلك
تتيح المنصات المرنة للمستخدمين إدخال منطقهم وملفاتهم الخاصة. وعزل هذا العمل وتقييد ما يمكن أن يستهلكه يمنعان المرونة من أن تتحول إلى خطر على الموثوقية.
إذا كانت مؤسستكم تخطط لمنصة من هذا النوع، أو تحتاج إلى تصميم جزء محدد منها وتنفيذه، يسعدنا أن نناقش ذلك معكم.