حوّل أي سؤال بلغة طبيعية إلى استعلام تقرير عبر مسار موحّد يجمع Regex و OpenAI — مع تطبيع عربي، وتخزين مؤقت بالبصمة، وباني DSL قابل للاستبدال. توكن أقل، وإعادة استخدام أعلى.
كل سؤال يمرّ بنفس المسار. المحرك يُنتج DSL فقط — والتنفيذ يُفوَّض إلى dynamic-hybrid-reporting-engine، المُغذّى ببيانات من dual-layer-reporting-engine.
بصمةكلا المحلّلين يُرجعان نفس IntermediateQuery تمامًا. المحلّل وحده يعرف مصدره؛ أما باني الـ DSL وبقية التطبيق فيبقيان غير مبالين بالمصدر.
طريقة التحليل قابلة للتبديل: auto (regex ثم OpenAI)، regex (بلا توكن)، أو openai. كل عنصر خلف واجهة.
حتمي وبلا توكن. يطابق mappings ومفاهيم أعمدة قابلة للتعديل في MongoDB. يحوّل «طلاب الصف 1-A» إلى فلتر class_id عبر EntityResolver قابل للاستبدال.
يعمل فقط عند فشل Regex. يُرجع JSON صارمًا — لا DSL ولا SQL خام. يتتبّع زمن الاستجابة واستهلاك التوكن لسجل التنفيذ.
الأسئلة المتكافئة (مسافات، تشكيل، صور الألف) تشترك في بصمة واحدة، فيتخطّى السؤال المكرّر التحليل تمامًا بلا توكن.
احقن المسار، احصل على DSL، سلّمه لمحرك التقارير.
توحيد الألف والتاء المربوطة، وإزالة التشكيل والترقيم.
SHA-256 للنص المُطبَّع — صفر توكن عند التكرار.
Regex و AI يُرجعان نفس IntermediateQuery.
المكان الوحيد الذي يُنتج DSL قابلًا للتنفيذ.
كل عنصر واجهة قابلة للاستبدال.
mappings ومفاهيم وكاش قابلة للتعديل.
تحويل الأسماء («الصف 1-A») إلى معرّفات للتصفية.
المحلّل، إصابة الكاش، الزمن، التوكن، والـ DSL.
حزمتا التقارير مطلوبتان إجباريًا وتُسحبان تلقائيًا.
mostafax/dynamic-hybrid-reporting-engine — ينفّذ الـ DSL.
mostafax/dual-layer-reporting-engine — يُكرّر البيانات للتقارير.
auto — regex أولًا، OpenAI عند الفشل (موصى به).
regex — محلي فقط، بلا توكن.
openai — AI فقط.