تُحدَّث يومياً

مصدرُك العربي
لمستقبل الذكاء الاصطناعي

أخبار، تقارير، أدوات وتحليلات يومية — كل ما تحتاجه لمتابعة ثورة الذكاء الاصطناعي باللغة العربية

✅ تم الاشتراك!
تعلم و استخدام الذكاء الاصطناعي

Sqlsure يكتشف أخطاء SQL الدلالية الصامتة قبل تنفيذها بـ 0.1 ميلي ثانية

بقلم: يوسف | محرر أدوات الذكاء الاصطناعي · صوت تحريري بإشراف بشري

الاستعلام صحيح نحوياً، يعمل دون أخطاء، ويعيد رقماً — لكن الرقم مغلوط. هذا هو الفخ الصامت الذي يقع فيه كل من يعتمد على نماذج اللغة الكبيرة لتوليد SQL: مضاعفة الإيرادات بسبب join خاطئ، متوسط يُجمع كمجموع، بيانات مرضى تظهر في مخرجات الاستعلام. لا قواعد البيانات تكتشف هذا، ولا أدوات Linting، ولا النماذج نفسها حين تُطلب منها مراجعة كودها. Sqlsure يدّعي أنه يفعل ذلك — حتمياً، في 0.1 ميلي ثانية، قبل أن يُنفَّذ الاستعلام.

الأداة متاحة الآن عبر PyPI بترخيص Apache-2.0، وتعمل بالكامل دون اتصال بالإنترنت — لا شبكة، لا وصول إلى البيانات، لا قياس عن بُعد. منطق الفحص قواميس بحثية لا نماذج لغوية، مما يعني أن نفس SQL مع نفس قواعد الفحص سيعطي دائماً نفس الحكم، في كل مرة، قابلاً للتدقيق سطراً بسطر.

للتحقق من صحة المنهج، شغّل فريق Sqlsure الأداة على الإجابات الذهبية لـ benchmark-ين رئيسيين يُقيَّم عليهما كل نموذج text-to-SQL (وفقاً لـ GitHub Sqlsure): 2,568 استعلاماً كتبها خبراء، أنتجت 45 علامة تحذير وصفر إنذارات كاذبة. من بين ما اكتُشف: إجابة ذهبية في BIRD dev خاطئة بمقدار 8 أضعاف بسبب فئة الخطأ التي يستهدفها Sqlsure تحديداً، وخلل في المخطط رُفع كـ issue رسمي على المستودع المصدر.

شارة إصدار Sqlsure على PyPI
الإصدار الحالي من Sqlsure متاح على PyPI

الأداة تعمل بثلاثة أوضاع تكامل مستقلة، وكل منها يستخدم نفس المحرك الداخلي:

  1. CI gate: يحظر دمج أي pull request يحتوي على استعلام يُضاعف البيانات — يُشغَّل عبر python -m sqlsure.cli --model model.json query.sql ويعيد exit code 1 عند اكتشاف انتهاك.
  2. MCP server: يُضاف إلى وكلاء الذكاء الاصطناعي كـ Claude لإجبارهم على اجتياز الفحص قبل تنفيذ أي استعلام — يعمل عبر claude mcp add sqlsure ويخلق حلقة: draft → check → fix → check → execute. في benchmark الفريق، التصحيح التلقائي للإصلاح المقترح نجح 10 مرات من 10.
  3. Library: يُدمج مباشرة في أي منتج text-to-SQL أو إطار عمل وكلاء — بسطرين فقط: from sqlsure import SemanticModel, check ثم violations = check(sql, model)، وقائمة فارغة تعني أن الاستعلام آمن دلالياً.

القواعد التي يطبّقها Sqlsure في الإصدار v0.1 تسعة أنواع موزعة على ثلاث درجات من الخطورة. على مستوى الخطأ الحرج: FANOUT يكتشف جمع مقاييس إضافية بعد join من نوع one-to-many، وCHASM يكتشف join-ين متداخلين يضربان البيانات في بعضها، وADDITIVITY يرصد جمع مقاييس غير قابلة للجمع كالمعدلات والمتوسطات، وSEMI_ADDITIVE يتعامل مع الأرصدة والتعدادات التي تُجمع عبر أبعاد زمنية خاطئة، وJOIN_KEY يكتشف الربط على أعمدة لا تتطابق مع علاقة معلنة، وCROSS_JOIN يمنع الجوين بلا شرط ربط. على مستوى التحذير: WEIGHTED_AVG ينبّه إلى متوسط تُغيّر fan-out وزنه خفية، وUNDECLARED_JOIN يعلم بوجود ربط لا يمكن التحقق منه. وعلى مستوى السياسة: SENSITIVE_COLUMN يكتشف ظهور بيانات PHI/PII في مخرجات الاستعلام.

ما يميز المنهج أن “قاموس المعرفة” الذي يُحكم فيه لا يُنشأ من الصفر — بل يُستخرج مما يملكه الفريق مسبقاً. مستخدمو dbt يحصلون على الفحص تلقائياً من manifest.json أو schema.yml: اختبارات unique تصبح grain، واختبارات relationships تصبح join cardinality. ومن لا يملك semantic layer على الإطلاق يستطيع بناء القاموس من قاعدة البيانات نفسها: model_from_sqlite("app.db") يستخرج المفاتيح الأولية والخارجية ويبني الحواف تلقائياً. الأداة اكتشفت بهذه الطريقة مفتاحين خارجيين مفقودَين من المخطط المنشور لـ BIRD benchmark. كما يدعم Sqlsure اليوم تنسيقات OSI وWrenAI MDL، ويعمل على محوّلات Cube وSnowflake Semantic Views.

الاختبار على مستودعات إنتاج حقيقية — من بينها مستودع Mattermost، وحزم Fivetran، وـ dbt’s jaffle shop — موثق في docs/TEST-REPORTS.md. الأداة اجتازت 16 من 16 اختبار قاعدة، مع 100% recall وصفر إيجابيات كاذبة على benchmark المقارن. حين لا تستطيع Sqlsure التحقق من شيء، تقول صراحةً “لا يمكن التحقق” — لا “يبدو جيداً”. هذا الصدق في الغموض هو ميزة متعمدة، لا قصور.

التثبيت السريع: pip install sqlsure. تشغيل العرض التوضيحي: python check.py يفحص 5 استعلامات خاطئة ويرفضها واحداً واحداً مع الإصلاح المقترح، ويوافق على استعلام واحد صحيح. ولفحص أي مستودع dbt بالكامل: python -m sqlsure.scan path/to/dbt-repo --report report.md. كل رفض يأتي مع إصلاح قابل للتنفيذ آلياً — مما يجعل الوكلاء قادرين على الإصلاح الذاتي دون تدخل بشري.

الأداة تحل مشكلة حقيقية: نماذج text-to-SQL تُقيَّم اليوم بـ execution accuracy — هل الاستعلام يُنفَّذ؟ — لا بـ semantic accuracy — هل يُنتج الرقم الصحيح؟ Sqlsure يسد هذه الفجوة بشكل حتمي وقابل للتدقيق، وهو ما لم يحسمه حتى الآن لا benchmark ولا linter ولا نموذج لغوي.

GitHub (sqlsure/sqlsure)

مقالات ذات صلة

زر الذهاب إلى الأعلى