من أيام إلى ثوانٍ: كيف أنقذنا الذكاء الاصطناعي من جحيم التحقق من الهوية (KYC)

“يا أبو عمر، السيرفرات رح توقع والناس بتشتكي!”

كان ذلك في عام 2018، وكنا على وشك إطلاق تطبيق مالي جديد كنا نعمل عليه لشهور طويلة. الحماس كان في أوجه، والفريق كله سهران “متل اللي بستنى العيد”. أطلقنا التطبيق، وبدأ المستخدمون بالتسجيل. في البداية، كانت الأرقام متواضعة، وفريق عمليات التحقق من الهوية (KYC) – المكون من ستة موظفين مجتهدين – كان مسيطرًا على الوضع.

لكن بعد حملة تسويقية ناجحة، انفجر الوضع. آلاف المستخدمين بدأوا بالتسجيل في ساعة واحدة. فجأة، تحولت غرفة العمليات إلى خلية نحل تضج بالتوتر. الهواتف لا تتوقف عن الرنين، ورسائل الدعم الفني تتراكم: “صارلي يومين بستنى تفعيل حسابي!”، “ليش التأخير؟”، “التطبيق تبعكم بطيء جدًا”.

أتذكر مدير العمليات وهو يصرخ في وجهي عبر الهاتف، وصوته يملأه القلق: “يا أبو عمر، الحقنا! الشباب مش ملحقين يدخلوا البيانات يدويًا، الأوراق متكومة، والأخطاء كترت من العجلة. رح نخسر كل هالناس!”. في تلك اللحظة، أدركت أن طريقتنا التقليدية في التحقق من الهوية لم تكن مجرد عملية بطيئة، بل كانت “عنق الزجاجة” الذي سيخنق مشروعنا قبل أن يولد. كانت تلك هي الشرارة التي دفعتنا للبحث عن حل جذري، حل لا يعتمد على زيادة عدد الموظفين، بل على تغيير العملية بأكملها.

ما هو جحيم التحقق من الهوية (KYC) اليدوي؟

قبل أن نغوص في الحل، دعونا نفهم المشكلة. “اعرف عميلك” أو (Know Your Customer – KYC) هي ليست مجرد إجراء روتيني، بل هي ضرورة قانونية وتنظيمية تفرضها البنوك المركزية والهيئات المالية على أي شركة تقدم خدمات مالية (Fintech). الهدف منها هو منع غسيل الأموال وتمويل الإرهاب والاحتيال.

الطريقة التقليدية كانت كالتالي:

  • العميل يقوم بتحميل صورة عن بطاقة هويته أو جواز سفره، وأحيانًا فاتورة خدمات لإثبات العنوان.
  • موظف (مسكين) يفتح الصورة في نافذة، ويفتح نظام إدخال البيانات في نافذة أخرى.
  • يبدأ بنقل المعلومات حرفًا حرفًا ورقمًا رقمًا: الاسم الكامل، رقم الهوية، تاريخ الميلاد، تاريخ انتهاء الصلاحية… إلخ.
  • موظف آخر يقوم بمراجعة البيانات المدخلة للتأكد من عدم وجود أخطاء.
  • بعد كل هذا، يتم تفعيل حساب العميل.

هذه العملية، كما يمكنكم أن تتخيلوا، كانت كارثية على كل المستويات:

  • البطء الشديد: العملية كانت تستغرق من 24 إلى 72 ساعة في أفضل الأحوال.
  • التكلفة العالية: تحتاج إلى فريق كبير من الموظفين، وهذا يعني رواتب وتكاليف تشغيلية مرتفعة.
  • الأخطاء البشرية: مع ضغط العمل، تكثر الأخطاء الإملائية والبيانات غير الصحيحة، مما يتطلب جولات إضافية من المراجعة.
  • صعوبة التوسع (Scalability): لا يمكنك التعامل مع طفرات النمو المفاجئة. إذا سجل 10,000 مستخدم في يوم واحد، فأنت في ورطة حقيقية.
  • تجربة مستخدم سيئة: من يريد أن ينتظر ثلاثة أيام ليستخدم تطبيقًا قام بتحميله للتو؟

الإنقاذ: التعرف الضوئي على الحروف (OCR) والعقل المدبر (AI)

هنا يأتي دور التكنولوجيا لتنقذ الموقف. الحل الذي اعتمدناه يرتكز على تقنيتين رئيسيتين تعملان معًا بتناغم مذهل: التعرف الضوئي على الحروف (OCR) والذكاء الاصطناعي (AI).

أولاً: الساحر الذي يقرأ الصور – التعرف الضوئي على الحروف (OCR)

ببساطة، الـ OCR هي تقنية تحول النص الموجود داخل صورة إلى نص حقيقي يمكن للكمبيوتر قراءته والتعامل معه. بدلًا من أن يقوم الموظف بقراءة “محمد أحمد” من صورة الهوية وكتابتها، يقوم نظام الـ OCR بذلك آليًا في أجزاء من الثانية.

العملية تتم خلف الكواليس عبر عدة خطوات:

  1. المعالجة المسبقة للصورة (Image Pre-processing): يقوم النظام بتحسين جودة الصورة، مثل إزالة الظلال، زيادة التباين، وتصحيح أي ميلان في الصورة.
  2. اكتشاف النص (Text Detection): يحدد المناطق التي تحتوي على نصوص داخل الصورة.
  3. التعرف على الحروف (Character Recognition): يبدأ “بفك شيفرة” كل حرف وكلمة في المناطق المحددة.
  4. المعالجة اللاحقة (Post-processing): يستخدم نماذج لغوية لتصحيح الأخطاء المحتملة (مثلاً، إذا قرأ حرف “ل” كـ “ا”، يمكن للنموذج اللغوي أن يصححه بناءً على سياق الكلمة).

ثانيًا: العقل المدبر – الذكاء الاصطناعي لاستخلاص المعنى

لكن الـ OCR وحده لا يكفي. سيمنحك كتلة نصية غير منظمة، شيء من هذا القبيل: “جمهورية مصر العربية بطاقة تحقيق شخصية الاسم أحمد علي محمود العنوان 123 شارع التحرير رقم قومي 29001010123456”.

هنا يأتي دور الذكاء الاصطناعي، وتحديدًا تقنية تسمى “التعرف على الكيانات المسماة” (Named Entity Recognition – NER). لقد قمنا بتدريب نموذج ذكاء اصطناعي ليفهم هذا النص ويستخرج منه المعلومات المهمة ويضعها في هيكل منظم.

النموذج يتعلم كيف يميز بين “الاسم”، “رقم الهوية”، “تاريخ الميلاد”، وغيرها. فالناتج النهائي يتحول من كتلة نصية فوضوية إلى كائن JSON منظم وجميل بهذا الشكل:


{
  "fullName": "أحمد علي محمود",
  "nationalId": "29001010123456",
  "address": "123 شارع التحرير",
  "documentType": "ID_CARD"
}

بالإضافة إلى ذلك، يمكن للذكاء الاصطناعي القيام بمهام أكثر تعقيدًا:

  • التحقق من صحة الوثيقة: تحليل الصورة للبحث عن علامات تزوير، مثل وجود خطوط غير متناسقة أو تلاعب في منطقة الصورة الشخصية.
  • مطابقة الوجه (Face Matching): مقارنة الصورة الموجودة على بطاقة الهوية مع صورة “سيلفي” حية يطلب من المستخدم التقاطها، للتأكد من أن الشخص الذي يقدم الطلب هو نفسه صاحب الوثيقة.

رحلتنا في بناء النظام: دليل عملي

الكلام النظري جميل، ولكن “الحكي ما بيطعمي خبز”. كيف بنينا هذا النظام فعليًا؟

المرحلة الأولى: اختيار الأدوات المناسبة

كان أمامنا خياران: بناء كل شيء من الصفر باستخدام مكتبات مفتوحة المصدر، أو الاعتماد على خدمات سحابية جاهزة (APIs).

  • الخيار الأول (مفتوح المصدر): استخدام مكتبات مثل Tesseract-OCR للتعرف على الحروف، و spaCy أو NLTK لبناء نموذج NER. هذا الخيار يمنحك تحكمًا كاملاً، ولكنه يتطلب خبرة كبيرة ووقتًا طويلاً في التطوير والتدريب.
  • الخيار الثاني (الخدمات السحابية): استخدام خدمات مثل Google Cloud Vision AI, Amazon Textract, أو Microsoft Azure AI Vision. هذه الخدمات سهلة الاستخدام، سريعة، ومدربة مسبقًا على ملايين الوثائق.

نصيحة أبو عمر: يا جماعة، نصيحة من أخوكو أبو عمر، ابدأوا بالـ APIs الجاهزة. لا تعيدوا اختراع العجلة من أولها، خصوصًا في البدايات. ركزوا على بناء منتجكم الأساسي. لما يكبر شغلكم وتصيروا بحاجة لتخصيص أكبر أو لتقليل التكاليف على المدى الطويل، وقتها فكروا تبنوا حلولكم الخاصة.

المرحلة الثانية: تصميم تدفق العمل (Workflow)

رسمنا تدفقًا آليًا للعملية كالتالي:

  1. المستخدم يرفع صورة الهوية عبر التطبيق.
  2. نظامنا الخلفي (Backend) يرسل الصورة إلى خدمة OCR سحابية (مثل Amazon Textract).
  3. الخدمة تعيد لنا النص المستخرج بالإضافة إلى درجة ثقة (Confidence Score) لكل كلمة.
  4. نقوم بتمرير النص إلى نموذج NER الخاص بنا (أو نستخدم قواعد Regex ذكية في البداية) لاستخلاص الحقول المطلوبة (الاسم، الرقم، إلخ).
  5. نتحقق من صحة البيانات (مثلاً، هل رقم الهوية يتكون من العدد الصحيح من الأرقام؟ هل تاريخ الميلاد منطقي؟).
  6. إذا كانت درجات الثقة عالية والبيانات تبدو صحيحة، يتم تفعيل حساب العميل تلقائيًا. ✅
  7. إذا كانت درجات الثقة منخفضة (بسبب صورة غير واضحة مثلاً)، يتم إرسال الحالة إلى لوحة تحكم خاصة ليراجعها موظف. هذا يضمن أن الفريق يركز فقط على الحالات الصعبة، وليس على 95% من الحالات السهلة.

مثال كود بسيط (Python)

هذا مثال مبسط جدًا يوضح فكرة استدعاء خدمة سحابية (هنا سنستخدم مثالًا وهميًا يشبه Google Vision API) ومعالجة النتائج.


import requests
import re
import json

# عنوان الخدمة السحابية الوهمي
OCR_API_URL = "https://api.cloud-ocr.com/v1/process"
API_KEY = "YOUR_API_KEY_HERE"

def extract_text_from_image(image_path):
    """
    يرسل صورة إلى خدمة OCR ويعيد النص المستخرج.
    """
    with open(image_path, 'rb') as image_file:
        files = {'image': image_file}
        headers = {'Authorization': f'Bearer {API_KEY}'}
        response = requests.post(OCR_API_URL, files=files, headers=headers)
        
        if response.status_code == 200:
            # الخدمة عادةً ما تعيد النص في حقل 'text' داخل JSON
            return response.json().get('text')
        else:
            print(f"Error: {response.status_code}")
            return None

def parse_id_data(text):
    """
    يحلل النص باستخدام تعابير نمطية (Regex) بسيطة لاستخراج البيانات.
    """
    if not text:
        return {}
        
    # مثال بسيط جدًا للبحث عن رقم قومي مصري (14 رقمًا)
    id_match = re.search(r'b(2|3)d{13}b', text)
    
    # يمكن إضافة تعابير أكثر تعقيدًا للاسم والتاريخ...
    # ...
    
    extracted_data = {
        "nationalId": id_match.group(0) if id_match else None
        # "fullName": ...
    }
    return extracted_data

# --- التنفيذ ---
image_path = "path/to/id_card.jpg"
raw_text = extract_text_from_image(image_path)
print("--- النص المستخرج ---")
print(raw_text)

structured_data = parse_id_data(raw_text)
print("n--- البيانات المنظمة ---")
print(json.dumps(structured_data, indent=2, ensure_ascii=False))

طبعًا، في الواقع، تكون عملية التحليل (Parsing) أكثر تعقيدًا وتعتمد على نماذج NER مدربة بدلاً من مجرد Regex، خاصة للتعامل مع اللغات المختلفة وتنسيقات الوثائق المتنوعة.

النتائج: من جحيم الانتظار إلى نعيم الفورية

بعد تطبيق النظام الجديد، كانت النتائج مذهلة وفاقت توقعاتنا:

  • السرعة: متوسط وقت التحقق من الهوية انخفض من 48 ساعة إلى أقل من 60 ثانية.
  • الدقة: نسبة التحقق الآلي الصحيح وصلت إلى أكثر من 96%، مما قلل الأخطاء البشرية بشكل كبير.
  • التكلفة: تمكنا من إعادة توجيه فريق العمليات للتركيز على المهام الأكثر أهمية (مثل التعامل مع الحالات المعقدة ومكافحة الاحتيال) بدلاً من إدخال البيانات.
  • رضا العملاء: ارتفعت معدلات إكمال التسجيل بشكل ملحوظ، واختفت شكاوى التأخير تقريبًا. أصبح بإمكان العميل تحميل التطبيق، التسجيل، وتفعيل حسابه وبدء استخدامه في نفس الجلسة.

الخلاصة: لا تخف من الأتمتة، بل احتضنها 🚀

كانت رحلتنا مع أتمتة عملية KYC درسًا قيمًا. تعلمنا أن المشاكل التشغيلية الكبرى التي تبدو مستعصية، غالبًا ما يكون حلها في التكنولوجيا الذكية وليس في زيادة الموارد البشرية. الانتقال من الإدخال اليدوي إلى نظام يعتمد على OCR والذكاء الاصطناعي لم يكن مجرد تحسين، بل كان نقلة نوعية أنقذت تجربة المستخدم وسمحت لشركتنا بالنمو والتوسع بثقة.

نصيحتي الأخيرة لك: سواء كنت مطورًا أو صاحب مشروع في قطاع التكنولوجيا المالية، انظر دائمًا إلى العمليات اليدوية المتكررة في شركتك. هذه هي “الكنوز” التي يمكنك تحويلها إلى كفاءة وأرباح باستخدام الأتمتة والذكاء الاصطناعي. لا تخف من تعقيد هذه التقنيات، ابدأ صغيرًا، استخدم الأدوات الجاهزة، وسترى بنفسك كيف يمكن للآلة أن تحرر الإنسان ليبدع في ما لا تستطيعه الآلة.

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

التوسع والأداء العالي والأحمال

قاعدة بياناتنا كانت تنهار: كيف أنقذنا التخزين المؤقت (Caching) من جحيم الاستعلامات المتكررة؟

كانت ليلة خميس، وكنا على وشك إغلاق أسبوع عمل مرهق، حين بدأت هواتفنا تضيء كشجرة عيد الميلاد. في هذه المقالة، أسرد لكم قصة حقيقية عن...

1 مايو، 2026 قراءة المزيد
البنية التحتية وإدارة السيرفرات

كانت بنيتنا التحتية قصرًا من ورق: كيف أنقذنا Terraform من جحيم الإعداد اليدوي؟

أشارككم تجربتي كـ "أبو عمر"، مبرمج فلسطيني، مع الفوضى التي تسببها إدارة السيرفرات اليدوية. سنكتشف معًا كيف حولت أداة Terraform بنيتنا التحتية من قصر ورقي...

1 مايو، 2026 قراءة المزيد
ادارة الفرق والتنمية البشرية

كان أفضل مهندسينا يرحلون: كيف أنقذ “سلم المسار الوظيفي” شركتنا من جحيم الركود؟

أشارككم قصة حقيقية عن كيفية مواجهتنا لمشكلة "نزيف العقول" في فريقنا الهندسي. نستعرض بالتفصيل كيف قمنا ببناء "سلم مسار وظيفي" (Career Ladder) واضح وشفاف أنقذنا...

1 مايو، 2026 قراءة المزيد
أتمتة العمليات

كان زر النشر يسبب لنا نوبات هلع: كيف أنقذتنا خطوط أنابيب CI/CD من جحيم الإصدارات اليدوية؟

أتذكر ليالي النشر الطويلة المليئة بالتوتر والأخطاء الكارثية. في هذه المقالة، أشارككم قصة تحولنا من الفوضى اليدوية إلى عالم الأتمتة المنظم مع خطوط أنابيب CI/CD،...

1 مايو، 2026 قراءة المزيد
نصائح برمجية

كانت سجلات التغيير لدينا لغزاً: كيف أنقذنا معيار ‘Conventional Commits’ من جحيم ‘git log’ عديم الفائدة؟

أشارككم قصة حقيقية من قلب المعركة البرمجية، كيف انتقلنا من سجلات Git غامضة وفوضوية إلى تاريخ واضح ومنظم باستخدام معيار Conventional Commits. هذه ليست مجرد...

1 مايو، 2026 قراءة المزيد
​معمارية البرمجيات

كان تحديث نظامنا المونوليثي مستحيلاً: كيف أنقذنا نمط ‘التين الخانق’ من جحيم إعادة الكتابة الكارثية؟

أشارككم قصة حقيقية من قلب المعركة التقنية، عندما كان نظامنا القديم على وشك الانهيار وفشلت محاولات إعادة كتابته. اكتشفوا كيف أنقذنا نمط "التين الخانق" (Strangler...

1 مايو، 2026 قراءة المزيد
ذكاء اصطناعي

من الصندوق الأسود إلى الوضوح: كيف أنقذتنا أدوات SHAP و LIME من جحيم حيرة نماذج الذكاء الاصطناعي

في عالم الذكاء الاصطناعي، غالبًا ما تكون نماذجنا كالصناديق السوداء الغامضة. في هذه المقالة، أشارككم قصة حقيقية عن حيرتنا أمام قرارات نموذج غامض، وكيف أخرجتنا...

1 مايو، 2026 قراءة المزيد
البودكاست