YADRO تمنع نموذج LLM من لمس الأرقام وتصدر أكثر من 10 تقارير يوميًا دون تدخل بشري
بنى إيغور شليوبيكوف، كبير محللي الأعمال في YADRO، مع زميله إيغور كاتاييف خلال ثلاثة أشهر خدمة لتحليلات تقنية المعلومات، لا يرى فيها نموذج LLM أي رقم من أرقام التقرير. وكل صباح يصدر أكثر من عشرة تقارير HTML لخمس إدارات دون تدخل بشري: يحسب سكربت Python المؤشرات، ويكتب النموذج الاستنتاجات، ويُدرج الكود القيم في أماكنها. جاء هذا الحل بعد عطل. فقد كان النموذج ينقل الأرقام بنفسه إلى النص بعد تلقّي الملخص، وبدأ ذات مرة يعرض أرقامًا قديمة من لقطة بيانات كانت مخزّنة في قاعدة معارف Dify. أما الآن فلا يتلقى سوى عشرات قليلة من المؤشرات الرئيسية، ويعيد نصًا بوسوم بدل القيم. • يدمج Trino نسخة Naumen.ITAM المتماثلة (replica) واللقطات اليومية في ClickHouse في جدول واحد يحتفظ بالتاريخ، إضافة إلى بيانات NetBox و1C وJira. • إذا كان النموذج غير متاح، يصدر التقرير مع ذلك، لكن بلا استنتاجات نصية. • تُقدَّر أسعار المعدات المفقودة بالإسناد (imputation) حسب الفئات، وتُعرض منفصلة عن الأسعار الفعلية.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
بنى فريق إدارة أسطول معدات تقنية المعلومات في YADRO خلال ثلاثة أشهر خدمة تصدر يوميًا أكثر من عشرة تقارير تحليلية لخمس إدارات. ولا يشارك البشر في العملية. والقاعدة الهندسية الأساسية: الكود وحده يحسب كل الأرقام، بينما يكتب النموذج اللغوي التعليقات النصية فقط، ولا يرى أي مؤشر في صورته الخام. نفّذ المشروع إيغور شليوبيكوف، كبير محللي الأعمال، وزميله إيغور كاتاييف، علمًا بأن أحدًا في فريق GRID لم يمارس من قبل تطويرًا صناعيًا.
من تجربة مع ملف تصدير إلى خدمة مستقلة
بدأ كل شيء بمهمة في أبريل: تقدير المخزون في أحد المستودعات واقتراح طريقة لتصريف المعدات الراكدة. وكانت الشركة تتابع حينها مؤشر aged، أي حصة الأصول التي تبقى أكثر من عام إلى عامين. أخذ شليوبيكوف ملف تصدير من Naumen.ITAM، ونقّاه من البيانات الحساسة (الكيانات القانونية وأسماء المستودعات)، وطلب من شبكة عصبية بناء تقرير HTML. جاءت الشرائح التحليلية كثيرة، وقيمة كل منها منفردة ضئيلة، لكنها مجتمعة غطّت عددًا كبيرًا من الأسئلة. ووافق المدير على تطوير الفكرة داخل نطاق الشركة.
عملت النسخة الأولى على منصة Dify منخفضة الكود (low-code). ربطوا بها السياق التجاري كقاعدة معارف، وبسبب قيود السياق صاروا يمررون إليها ملخصًا أعدّه سكربت Python بدل البيانات الخام. لكن النموذج أخطأ حتى مع الملخص. فقد كان ينقل الأرقام إلى النص وفق قواعد الـ prompt، وظهرت في التعليقات الأرقام نفسها في غير موضعها. وتبيّن أنها قيم من لقطة الأصول يوم ربط قاعدة المعارف، لا بيانات حديثة.
وسوم بدل الأرقام
من هنا نشأ فصل صارم. يُعدّ السكربت مجموعتي بيانات: كاملة تُبنى عليها الرسوم البيانية والقالب، ومضغوطة تضم عشرات قليلة من الأرقام الرئيسية. ولا يرى النموذج إلا المضغوطة. يعيد ملاحظات وتفسيرات وإشارات تحذير، ويضع وسومًا بدل الأرقام. وتُدرج القيم عند تجميع التقرير وفق القواعد نفسها المتبعة في القالب. وتحريف أي مؤشر عبر النموذج مستحيل فعليًا.
وهذا يفيد أيضًا في اقتصاديات الـ tokens: إذ يدخل السياق عشرات الأرقام لا مصفوفات من الصفوف. واستدعاء النموذج مفصول في عميل مستقل، فيمكن استبداله دون المساس بخط المعالجة. وشكل التقارير مفصول في قوالب. وإذا كان النموذج غير متاح أو أجاب بشكل غير صحيح، يصدر التقرير في موعده بأرقام صحيحة، لكن دون استنتاجات نصية.
واضطر الفريق إلى ترك Dify بسبب تقسيم صلاحيات الوصول، وتخزين معاملات الاتصال بقاعدة البيانات في إعدادات خط المعالجة، وغياب الجدولة والإحصاءات والإشعارات.
Trino كأداة للدمج عبر الزمن وبين الأنظمة
مع زيادة المصادر، انتقلت طبقة البيانات بأكملها إلى خادم افتراضي مستقل يعمل عليه Trino. ويقرّ المؤلفان بأن ذلك كان مبالغًا فيه حينها، لكنهما وفّرا هامش أمان. ويحل Trino مهمتين.
- الدمج عبر الزمن. في Naumen.ITAM تُحفظ الحالة الراهنة في نسخة متماثلة (replica) من قاعدة الإنتاج، بينما يصل التاريخ إلى ClickHouse في لقطات يومية. ويأخذ استعلام اتحادي واحد نقطة اليوم من النسخة المتماثلة، وبيانات الأمس والتاريخ كله من ClickHouse. القيد: خطوة التاريخ تساوي يومًا واحدًا، فلا تظهر الحالات التي تغيّرت خلال اليوم، ولذلك تُحسب سرعة العمليات بحذر.
- الدمج بين الأنظمة. يعرف Naumen.ITAM الفريق المسجَّل عليه الخادم، ويعرف NetBox الحامل (rack) في مركز البيانات. ويربط الاستعلام بينهما ويُظهر كيف تتوزع تكاليف الحامل على الفرق.
لا تعرف مولّدات التقارير من أين جاءت البيانات، ولذلك لا يتطلب ربط مصدر جديد إعادة كتابة التقارير. والمصادر حاليًا: Naumen.ITAM وClickHouse DWH و1C ومنصة BI/CPM (عدد الموظفين الجدد والميزانية) وJira (طلبات المعدات) وNetBox.
خط المعالجة والحماية من الأخطاء الذاتية
السلسلة كالتالي: يشغّل Airflow (بعد التخلي عن cron) رسمًا بيانيًا موجّهًا (DAG)، وتُقرأ البيانات عبر Trino، ويحسب Python المؤشرات، ويعيد Dify التعليقات، ويُنتج القالب ملف HTML، ويُحفظ التقرير بختم زمني، ويُحدَّث الرابط إلى أحدث نسخة. ويجري الوصول عبر Keycloak المؤسسي مع فحص الصلاحيات في validator، وتوجد أدوار للمالكين والمسؤولين والمستخدمين والمستخدمين الخارقين. ويمكن عبر Mattermost طلب الوصول وتحديث التقارير وعرض الإحصاءات.
يُحفظ الكود في GitLab المؤسسي، ولا تُقبل التغييرات إلا عبر merge request، ولا يعتمدها إلا شخص غير مؤلفها. ويعمل كل تحديث يومًا كاملًا على بيئة اختبار مستقلة، وفي حال فشل الاختبار يجري التراجع تلقائيًا.
بيانات لم تكن موجودة
كشف ظهور الخدمة عن فجوات في البيانات. فلم يحسب أحد من قبل القيمة التشغيلية للمخزون في المستودعات، كما أن السعر في Naumen.ITAM غير مسجَّل لكل البنود. والحل: الإسناد (imputation) حسب الفئات (نوع المعدات والطراز والشركة المصنّعة وسنة الإصدار). يُعمَّم متوسط السعر للبنود المسعّرة على باقي البنود. ويعرض التقرير التكلفة الفعلية والتقدير منفصلين. وإذا خلت فئة من الأسعار تمامًا، تُوسَّع، أو تُترك دون تقدير مع ملاحظة. وأعطت المطابقة مع المحاسبة أرقامًا متقاربة.
ما الذي يمكن الاستفادة منه
يمكن نقل هذا النمط إلى أي تقارير: يحسب كود حتمي، ويتلقى النموذج بيانات مجمّعة ويعيد نصًا بعناصر نائبة (placeholders). وهذا أرخص في الـ tokens، وأسهل في التدقيق، ولا يعطّل التقرير عند تعطل النموذج. وخطوة الفريق التالية: أداة لبناء التقارير، يصف فيها المستخدم الشريحة التحليلية بكلماته، ويصوغ النموذج وصف المؤشرات، بينما يولّد الطبقة الدلالية Cube استعلامات SQL وفق مقاييس محددة سلفًا. والنموذج هنا أيضًا لا يمسّ الاستعلامات ولا الأرقام.
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول من تجربة مع ملف تصدير إلى خدمة مستقلة؟
بدأ كل شيء بمهمة في أبريل: تقدير المخزون في أحد المستودعات واقتراح طريقة لتصريف المعدات الراكدة. وكانت الشركة تتابع حينها مؤشر aged، أي حصة الأصول التي تبقى أكثر من عام إلى عامين. أخذ شليوبيكوف ملف تصدير من Naumen.ITAM، ونقّاه من البيانات الحساسة (الكيانات القانونية وأسماء المستودعات)، وطلب من شبكة عصبية بناء تقرير HTML. جاءت الشرائح التحليلية كثيرة، وقيمة كل منها منفردة ضئيلة، لكنها مجتمعة غطّت عددًا كبيرًا من الأسئلة. ووافق المدير على تطوير الفكرة داخل نطاق الشركة. عملت النسخة الأولى على منصة Dify منخفضة الكود (low-code). ربطوا بها السياق التجاري كقاعدة معارف، وبسبب قيود
ما أبرز التفاصيل حول وسوم بدل الأرقام؟
من هنا نشأ فصل صارم. يُعدّ السكربت مجموعتي بيانات: كاملة تُبنى عليها الرسوم البيانية والقالب، ومضغوطة تضم عشرات قليلة من الأرقام الرئيسية. ولا يرى النموذج إلا المضغوطة. يعيد ملاحظات وتفسيرات وإشارات تحذير، ويضع وسومًا بدل الأرقام. وتُدرج القيم عند تجميع التقرير وفق القواعد نفسها المتبعة في القالب. وتحريف أي مؤشر عبر النموذج مستحيل فعليًا. وهذا يفيد أيضًا في اقتصاديات الـ tokens: إذ يدخل السياق عشرات الأرقام لا مصفوفات من الصفوف. واستدعاء النموذج مفصول في عميل مستقل، فيمكن استبداله دون المساس بخط المعالجة. وشكل التقارير مفصول في قوالب. وإذا كان النموذج غير متاح أو أجاب بشكل
ما أبرز التفاصيل حول Trino كأداة للدمج عبر الزمن وبين الأنظمة؟
مع زيادة المصادر، انتقلت طبقة البيانات بأكملها إلى خادم افتراضي مستقل يعمل عليه Trino. ويقرّ المؤلفان بأن ذلك كان مبالغًا فيه حينها، لكنهما وفّرا هامش أمان. ويحل Trino مهمتين. الدمج عبر الزمن. في Naumen.ITAM تُحفظ الحالة الراهنة في نسخة متماثلة (replica) من قاعدة الإنتاج، بينما يصل التاريخ إلى ClickHouse في لقطات يومية. ويأخذ استعلام اتحادي واحد نقطة اليوم من النسخة المتماثلة، وبيانات الأمس والتاريخ كله من ClickHouse. القيد: خطوة التاريخ تساوي يومًا واحدًا، فلا تظهر الحالات التي تغيّرت خلال اليوم، ولذلك تُحسب سرعة العمليات بحذر. الدمج بين الأنظمة. يعرف Naumen.ITAM الفريق ال
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.