لماذا تفشل تقنية Text-to-SQL في بيئات الشركات
معظم العروض التوضيحية لتقنية Text-to-SQL تبدو مثالية للغاية.
فهي تستخدم مخططات (schemas) بسيطة وأسماء جداول واضحة، وتفترض أن جدولاً أو اثنين يرتبطان ببعضهما بشكل مثالي. هذا ينجح في العروض التوضيحية، لكنه يفشل في الشركات الحقيقية.
في قواعد بيانات الشركات، الجزء الصعب ليس جملة SELECT. الجزء الصعب هو مسار الربط (join path).
قد يكتب النموذج استعلاماً صحيحاً للإيرادات حسب العميل. يعمل استعلام SQL، وتظهر الأرقام في لوحة البيانات (dashboard)، ولكن الإجابة تكون خاطئة.
لماذا يحدث هذا؟
- جدول العملاء ليس القائمة الرئيسية الرسمية.
- حقل الإيرادات ليس النسخة المعتمدة من القسم المالي.
- السجلات مكررة عبر المناطق المختلفة.
- عملية الربط تؤدي إلى أخطاء التوسع (fanout errors).
- التقاويم المالية تختلف عن السنوات التقويمية.
الاستعلام الصحيح من الناحية النحوية (syntactically valid) ليس بالضرورة استعلاماً موثوقاً.
أنظمة الإنتاج الحقيقية فوضوية. ستواجه مفاتيح خارجية (foreign keys) مفقودة، وجداول قديمة (legacy tables)، وعلاقات "واحد إلى متعدد" (one-to-many) تؤدي إلى تضخم الأرقام. حتى البشر يحتاجون إلى مراجعة التقارير القديمة أو سؤال القسم المالي قبل الوثوق بعملية ربط.
نموذج الذكاء الاصطناعي يرى فقط الأسماء والأعمدة، لذا فهو يخمن. وأحياناً يكون التخمين خطيراً.
لننظر في مشكلة التوسع (fanout). إذا قمت بربط الطلبات (orders) ببنود الطلب (order lines) ثم بالشحنات (shipments)، فقد يتم احتساب الطلب الواحد عدة مرات. استعلام SQL صحيح، لكن النتيجة خاطئة.
البيانات الوصفية (Metadata) تساعد، لكنها ليست كافية. أسماء الأعمدة لا تخبرك ما إذا كانت العلاقة آمنة للتقارير المالية، والمفاتيح الخارجية لا تشرح الاستثناءات التاريخية.
تقنية Text-to-SQL تحتاج إلى ذكاء العلاقات (relationship intelligence).
يجب أن يعرف النظام الموثوق ما يلي:
- مسارات الربط المعتمدة لأسئلة تجارية محددة.
- تعددية العلاقات (Relationship cardinality).
- مخاطر التوسع (fanout) المعروفة.
- المسارات التي تم إيقاف العمل بها (deprecated).
بدلاً من مجرد كتابة الكود، يجب على النظام التفكير في مدى الأمان. يجب أن يختار المسار الموثوق أو يطلب المساعدة عندما تكون المسارات غير واضحة.
الفجوة في الأنظمة الحالية تكمن في القفزة من مجرد مطابقة الأسماء إلى توليد SQL. يجب عليك إضافة طبقة من سياق العلاقات (relationship context).
تقنية Text-to-SQL ليست مجرد مشكلة لغوية، بل هي مشكلة سياق.
إلى أن تفهم النماذج أي عمليات الربط آمنة، ستنجح في العروض التوضيحية ولكنها ستفشل في بيئة الإنتاج.
المصدر: https://dev.to/arisyndata/why-text-to-sql-breaks-when-the-join-path-is-not-obvious-3bk0
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi
