قبل أيام شاركني أحد الأصدقاء تغريدة لفتت انتباهي لمبرمج اسمه yazin خريج جامعة Y Combinator ذكرت بأن المجلس الإسلامي في بريطانيا نشر خطبة جمعة مولدة بالذكاء الاصطناعي ورد ضمنها نص يحاكي أسلوب القرآن الكريم على أنه الآية العاشرة من سورة الأحزاب (33:10)، لكن هذا النص لم يكن يتطابق مع الآية كما وردت في المصحف!
تم حذف الخطبة بعد الانتباه للخطأ وتجنب إعادة نشر النص الخاطئ حتى لا يتداول..
هذه الحادثة الخطيرة مثال واضح علينا التوقف عنده والتركيز على أهمية حل مشكلة هلوسة النماذج اللغوية عند التعامل مع النص القرآني!
الخبر الجيد أن المبرمج طرح في نفس التغريدة حلًا عمليًا للمشكلة انطلق فيه من فكرة أساسية: وهي أن النماذج اللغوية ستخطئ وتهلوس، فهذا أمر متوقع..
لكن من غير المقبول تمرير هذا الخطأ للمستخدمين عندما يكون النص قرآنًا ولهذا بدل محاولة منع النموذج من الخطأ اقترح حلًا عمليًا لتدقيق نتائجه كالتالي:
- توليد النص من النموذج اللغوي
- ثم التحقق منه ومقارنته مع نص قرآني موثوق
- ثم تصحيح الأخطاء تلقائيًا
- وإظهار درجة الثقة لكل اقتباس
ولتنفيذ هذا الحل طور مكتبة برمجية باسم quran-validator.
تطبيق مدقق خطبة الجمعة
فكرت في الاستفادة عمليًا من هذه المكتبة بشكل عملي ببناء تطبيق يولد ويدقق خطبة الجمعة بالذكاء الاصطناعي، فبعد تحديد الموضوع المطلوب وتوليده من النموذج الذكي ستراجع المكتبة الآيات التي تتضمنها ويكشف الأخطاء قبل أن تصل للمنبر.
يتضمن التطبيق واجهة ويب بسيطة مع لوحة تحكم يمكن من خلالها:
إدخال موضوع الخطبة.
- تحديد حد أدنى لثقة تطابق الآيات (minConfidence).
- تفعيل البحث عن آيات غير معنونة في النص الناتج.
- تفعيل تصحيح الآيات المقتبسة تلقائيًا.
خادم خلفي يرسل الطلب إلى نموذج لغوي (مثل DeepSeek Chat أو GPT) ويبني خطبة كاملة، ثم يتولى التحقق من صحة الآيات القرآنية فيها باستخدام مكتبة quran-validator.
ملاحظة: يعتمد التطبيق في التحقق على النص القرآني بالرسم العثماني المأخوذ من مكتبة QUL التي طورتها شركة Tarteel AI دون الحاجة إلى تخزين المصحف أو معالجة الرسم العثماني يدويًا.
آلية عمل المكتبة quran-validator
تعمل المكتبة كطبقة تحقق مستقلة تُنفَّذ بعد التوليد، حيث يمرر النص الناتج إلى الدالة LLMProcessor.process(llmResponse) التي تتولى استخراج الاقتباسات القرآنية الموسومة، ثم تمرير كل اقتباس إلى QuranValidator.validate(text).
داخل هذه الدالة يطبق مسار تحقق متدرج يشمل:
- المطابقة الحرفية Exact
- ثم المطابقة بعد تطبيع النص عبر
()normalizeArabic
- ثم المطابقة الجزئية
- أخيرًا المطابقة التقريبية باستخدام قياس التشابه النصي
في حال العثور على تطابق، تعيد المكتبة كائن نتيجة يتضمن مرجع الآية reference، ونوع المطابقة matchType، ودرجة الثقة confidence التي تقيس مدى تطابق النص المولَّد مع الآية المرجعية قبل التصحيح، وذلك اعتمادًا على أقوى آلية مطابقة نجحت في التعرف على الآية (سواء كانت مطابقة حرفية، أو بعد التطبيع، أو جزئية، أو تقريبية).
مع إمكانية تصحيح النص تلقائيًا autoCorrect أو الاكتفاء بإصدار تنبيه scanUntagged دون الاعتماد على النموذج اللغوي نفسه أو مزود التوليد.
الاستفادة العملية من المكتبة quran-validator
يفصل التطبيق بين التوليد والتحقق، إذ تُولَّد الخطبة أولًا باستخدام النموذج، ثم توسم الآيات القرآنية بصيغة قابلة للمعالجة، لتمرر بعد ذلك إلى مكتبة quran-validator التي تتحقق من كل آية بمقارنتها مع النص القرآني المعتمد وتحدد درجة تطابقها.
بعدها تعرض الخطبة مع الآيات بنصها الصحيح ومرجعها ودرجة الثقة لتطابق النص القرآني المولد من قبل الذكاء الاصطناعي مع النص القرآني المعتمد

ملاحظة: درجة الثقة هنا محسوبة بناء على النص قبل التصحيح.
استفاد التطبيق من المكتبة وفق الخطوات التالية:
الخطوة الأولى:
تم استخدام موجهات System Prompts الجاهزة التي توفرها المكتبة لضبط مخرجات النموذج وإلزامه بوضع كل آية تم توليدها داخل الوسم <quran> مع ذكر المرجع (اسم السورة ورقم الآية أو نطاق الآيات) حتى يسهل التحقق منها برمجيًا.
تتضمن المكتبة عدة موجهات نظام System Prompts يمكن اختيار الأنسب حسب النموذج المستخدم، الافتراضي والمستخدم في التطبيق هو XML Prompt على النحو التالي:
<quran ref="2:183">
يَا أَيُّهَا الَّذِينَ آمَنُواْ كُتِبَ عَلَيْكُمُ الصِّيَامُ كَمَا كُتِبَ عَلَى الَّذِينَ مِن قَبْلِكُمْ لَعَلَّكُمْ تَتَّقُونَ
</quran>
هناك أيضًا موجهات من نوع Markdown Prompt و Minimal Prompt يمكن الاعتماد عليها.
الخطوة الثانية:
بعد أن يولد نموذج الذكاء الاصطناعي نص الخطبة، لا يستخدمه ولا يعرضه مباشرة بل يمرره كاملًا إلى دالة التحقق:
LLMProcessor.process(llmResponse)
بعدها تتولى المكتبة مهمة التحقق بدل المطور، حيث تقوم تلقائيًا بمقارنة أي اقتباس قرآني داخل النص مع المصحف باستخدام عدة مستويات من المطابقة:
- مطابقة حرفية كاملة (Exact Match)
- مطابقة بعد إزالة التشكيل (Normalized Match)
- مطابقة جزئية (Partial Match)
- مطابقة تقريبية أو ضبابية عند الحاجة (Partial Match)
الخطوة الثالثة:
تعرض كل آية في الخطبة داخل صندوق مظلل مع اسم السورة ورقم الآية ودرجة الثقة.
الكود البرمجي للتطبيق
كود المشروع متاح كمصدر مفتوح على GitHub، ويمكن الاطلاع عليه وتجربته والمساهمة في تطويره عبر الرابط التالي:
https://github.com/engsaleh/Khutbah-AI-Generator
كانت هذه خلاصة تجربتي لمكتبة quran-validator داخل تطبيق فعلي لتدقيق الآيات المقتبسة في خطبة الجمعة.
حاليًا يدعم التطبيق تجربة عدة واجهات برمجية لعدة نماذج لغوية: OpenAI API، وGemini API، وDeepSeek API وقد جربته باستخدام OpenAI API وكان الأداء جيدًا، أدعوكم لتجربة نماذج أخرى ومشاركة ملاحظاتكم حول جودة التوليد ودقة الاقتباس..
وهل لديكم مقترحات لاستعمالات مفيدة أخرى للمكتبة أو نماذج ترونها أكثر ملاءمة لتجربتها في توليد المحتوى؟ يهمني سماع رأيكم..