SQL Query Engine: A Self-Healing LLM Pipeline for Natural Language to PostgreSQL Translation
تقدم هذه الورقة "SQL Query Engine"، وهو خدمة مفتوحة المصدر ومستضافة ذاتياً تقوم بترجمة اللغة الطبيعية إلى استعلامات PostgreSQL تم التحقق من صحتها باستخدام خط معالجة يعتمد على نماذج لغوية كبيرة (LLM) يتكون من مرحلتين، ويتميز بالاستبطان التلقائي للمخطط (schema introspection)، ومحلل استجابة مرن، وحلقة إصلاح ذاتي تكرارية تعزز دقة التنفيذ بشكل كبير مع ضمان سلامة القراءة فقط وعدم حدوث أي تراجعات.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أن لديك مساعداً آلياً (روبوت) ذكياً جداً، ولكنه قليل الصبر. تريد أن تسأله أسئلة حول قاعدة بيانات شركتك (مثل "كم عدد الطلبات التي بعناها الشهر الماضي؟")، لكن الروبوت لا يتحدث إلا "لغة قواعد البيانات" (SQL).
عندما تسأل الروبوت سؤالاً، فإنه يحاول كتابة الكود للحصول على الإجابة. في بعض الأحيان، يصيب الهدف مباشرة. ولكن غالباً، يرتكب خطأ مطبعياً، أو يستخدم اسم عمود خاطئ، أو ينسى قاعدة معينة. في الأيام الخوالي، كان الروبوت يكتفي بالقول: "خطأ"، ويستسلم، تاركاً إياك بلا إجابة.
محرك استعلام SQL (SQL Query Engine) هو نظام جديد يغير القواعد. إنه يشبه منح ذلك الروبوت قدرة خارقة على الإصلاح الذاتي ومفتش سلامة صارم.
إليك كيف يعمل، مقسماً إلى مفاهيم بسيطة:
1. العملية ذات المرحلتين: المهندس المعماري والمفتش
بدلاً من مجرد التخمين مرة واحدة، يعمل النظام في خطوتين متميزتين:
- المرحلة الأولى: المهندس المعماري (التوليد - Generation)
ينظر الروبوت إلى قاعدة بياناتك (مثل النظر إلى مخطط بناء منزل) ويحاول كتابة كود SQL للإجابة على سؤالك. هو لا يخمن فحسب؛ بل يستخدم "محللاً متعدد الاستراتيجيات" لضمان العثين على الكود فعلياً، حتى لو كتب الروبوت الكود داخل فقرة فوضوية أو صندوق JSON. - المرحلة الثانية: المفتش (التقييم والإصلاح الذاتي - Evaluation & Self-Healing)
هذا هو الجزء السحري. يقوم النظام بتشغيل الكود مقابل قاعدة البيانات قبل أن يعرضه عليك.- إذا نجح الأمر: رائع! يعرض لك الإجابة فوراً.
- إذا فشل الأمر: لا يستسلم النظام. يلتقط رسالة الخطأ (على سبيل المثال: "العمود 'order_date' غير موجود") ويعيدها إلى الروبوت. يقول له: "مهلاً، لقد ارتكبت خطأ هنا. قاعدة البيانات تقول إن 'order_date' هي في الواقع 'order_timestamp'. أصلح الخطأ وحاول مجدداً".
- يحاول الروبوت مجدداً. إذا فشل مرة أخرى، يقدم له النظام الخطأ الجديد، ويحاول الروبوت مرة أخرى. تستمر هذه الحلقة حتى ينجح في الأمر أو ينفد عدد المحاولات المتاحة.
2. شبكات الأمان: "لا تُصلح ما ليس مكسوراً"
يسلط البحث الضوء على حيلتين ذكيتين لضمان عدم قيام الروبوت بإتلاف إجابة جيدة أثناء محاولته "إصلاحها":
- قاعدة "القبول المبكر" (Early-Accept): إذا كتب الروبوت استعلاماً يعمل بشكل مثالي ويعيد بيانات، يتوقف النظام فوراً. لا يطلب من الروبوت "التحقق المزدوج" من عمله. هذا يمنع الروبوت من الإفراط في التفكير وتحويل إجابة صحيحة إلى إجابة خاطئة عن طريق الخطأ.
- متتبع "أفضل نتيجة" (Best Result Tracker): تخيل أن الروبوت حاول 5 مرات. المحاولة الأولى كانت مثالية ولكنها فارغة (لم يتم العثটি بيانات). المحاولة الثانية كانت معطلة. المحاولة الثالثة كانت مثالية وتحتوي على بيانات. النظام يتذكر أفضل شيء رآه. إذا نفدت محاولات الروبوت، يقدم لك النظام أفضل إجابة وجدها، بدلاً من مجرد قول "لقد فشلت".
3. حارس السلامة: "نظارات القراءة فقط"
أحد أكبر المخاوف عند جعل الذكاء الاصطنا الفرنسي يتحدث مع قواعد البيانات هو أنه قد يحذف بياناتك بالخطأ أو يغير الأسعار.
- التشبيه: تخيل أن الروبوت يرتدي نظارات خاصة تجعله عاجزاً مادياً عن لمس أي شيء ليس نافذة.
- كيف يعمل: يجبر النظام اتصال قاعدة البيانات على أن يكون "للقراءة فقط" (Read-Only). حتى لو حاول الروبوت كتابة أمر لـ
DELETE(حذف) أوUPDATE(تحديث) البيانات، فإن برنامج تشغيل قاعدة البيانات (الحارس عند الباب) سيرفض ببساه تمرير الأمر. إنه جدار سلامة صلب، وليس مجرد طلب مهذب.
4. الذاكرة: "دفتر ملاحظات الجلسة"
إذا طرحت على الروبوت سؤالاً، ثم طرحت سؤالاً متابعاً، فإن النظام يتذكر السياق.
- التشبيه: بدلاً من مطالبة الروبوت بإعادة قراءة مخطط المنزل بالكامل في كل مرة تسأله فيها، فإنه يبقي دفتر ملاحظات (مخزن مؤقتاً في Redis) مفتوحاً على الطاولة. هو يقرأ المخطط مرة واحدة فقط في بداية المحادثة، ثم يكتفي بالتصفح من دفتر ملاحظاته في الأسئلة اللاحقة. هذا يجعل المحادثة أسرع بكثير.
5. النتائج: هل يعمل حقاً؟
اختبر المؤلفون هذا النظام على نوعين من التحديات:
- الاختبارات الاصطناعية (Synthetic Tests): أسئلة مُصنعة على قواعد بيانات نظيفة ومثالية.
- اختبارات العالم الحقيقي (BIRD): أسئلة حقيقية وفوضوية على قواعد بيانات معقدة.
الحكم النهائي:
- في الاختبارات النظيفة، حسنت حلقة الإصلاح الذاتي الدقة بنسبة تصل إلى 9.3%.
- في اختبارات العالم الحقيقي الفوضوية، حسنت الدقة بنسبة 4.6%.
- والأهم من ذلك، بالنسبة لأفضل النماذج، لم تجعل الإجابات الصحيحة أسوأ أبداً (صفر حالات تراجع).
لماذا يعد هذا أمراً مهماً؟
معظم أدوات الذكاء الاصطناعي اليوم هي أدوات "للمرة واحدة وينتهي الأمر". إذا أخطأت في المرة الأولى، فأنت عالق. هذا النظام يعامل الذكاء الاصطناعي كموظف بشري: يسمح له بارتكاب خطأ، ويعطيه ملاحظات ("مهلاً، تحقق من اسم ذلك العمود")، ويسمح له بالمحاولة مجدداً حتى ينجح في الأمر.
إنه يحول عملية هشة وعرضة للأخطاء إلى مسار مرن وذاتي التصحيح، وهو آمن بما يكفي للاستخدام في الشركات الحقيقية دون خوف من حذف بياناتك.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.