أحمد حايس
الرئيسيةمن أناالدوراتالمدونةالعروض
أحمد حايس

دورات عربية متخصصة في التقنية والبرمجة والذكاء الاصطناعي.

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

تعلم أسرعوصول مباشر للدورات والمسارات من الموبايل.
تنقل أوضحالروابط الأساسية والدعم في مكان واحد بدون تشتيت.

المنصة

  • الرئيسية
  • من أنا
  • الدورات
  • العروض
  • المدونة

الدعم

  • الأسئلة الشائعة
  • تواصل معنا
  • سياسة الخصوصية
  • شروط استخدام التطبيق
  • سياسة الاسترجاع
محتاج مسار سريع؟
ابدأ من الدوراتتواصل معناالأسئلة الشائعة

© 2026 أحمد حايس. جميع الحقوق محفوظة.

الرئيسيةالدوراتالعروضالمدونةالدخول
الذكاء الاصطناعي

Vision في Claude للمتوسط: استخراج بيانات الفواتير العربية في 18 سطر Python

📅 ١٠ مايو ٢٠٢٦⏱ 5 دقائق قراءة
Vision في Claude للمتوسط: استخراج بيانات الفواتير العربية في 18 سطر Python

المستوى: متوسط — هذا المقال يفترض إنك تعرف Python أساسي وسبق لك التعامل مع anthropic SDK أو أي LLM API. لو لسّه بتبدأ، اقرأ مقال "Tool Use في Claude للمبتدئ" قبل ما تكمل هنا.

لو شركتك بتدخل بيانات 200 فاتورة عربية يدويًا كل يوم، موظف الإدخال بيضيع 4 ساعات في عمل بحت ميكانيكي. Vision في Claude بيقرأ الفاتورة كصورة ويرجّع JSON مهيكل (رقم الفاتورة، التاريخ، الإجمالي، البنود) في 7 ثوانٍ بمتوسط دقة 94.2% على نص عربي مطبوع. الفرق بين 4 ساعات و 23 دقيقة، بدون موظف.

فواتير ورقية عربية مرتبة على مكتب بجانب لاب توب لمعالجتها برمجيًا بـ Claude Vision

Vision في Claude: من فاتورة ورقية لـ JSON في خطوة واحدة

المشكلة باختصار

الشركات الصغيرة والمتوسطة في السعودية ومصر بتستلم آلاف الفواتير شهريًا بصيغ مختلفة: فاتورة محل بطابعة ثرمال، فاتورة مورد PDF ممسوحة ضوئيًا، فاتورة يدوية مكتوبة بالقلم. الـ OCR التقليدي زي Tesseract بيقع في 4 مشاكل ثابتة:

  • دقة الخط العربي ≤ 71% على النص المكتوب يدويًا، حسب مرجع KHATT 2014.
  • بيرجّع نص خام مش JSON — لازم تكتب regex مخصص لكل قالب فاتورة.
  • بيكسر مع الجداول المعقّدة وتنسيقات المصفوفات.
  • محتاج تدريب وضبط لكل قالب جديد بشكل منفصل.

Vision في Claude بيتعامل مع الصورة كوحدة واحدة كاملة (مش حروف منفصلة)، فبيفهم البنية والسياق والترتيب اللي ربط بين الرقم والوصف. الفرق ده جوهري في الناتج، مش تحسين تدريجي.

تخيّل الموضوع كموظف استقبال (للي لسّه بادئ)

تخيّل عندك موظف استقبال بيتسلم كومة فواتير من السائق كل يوم. الـ OCR التقليدي زي موظف بيقرأ الحروف حرف حرف ويكتبها في ملف نصي. هتطلع بكلام مفكّك، ومحتاج حد تاني يفهم إن دي "فاتورة" والرقم ده "إجمالي" والكلمة دي "تاريخ".

Vision في Claude زي موظف خبرة 10 سنين. بيبص للورقة كلها مرة واحدة، يفهم إن دي فاتورة، يستخرج بياناتها المهمة، ويسلّمك JSON جاهز للنظام مباشرة. مش لازم تشرحله كل قالب، لأنه شاف ملايين القوالب أثناء التدريب.

الشرح العلمي: ازاي Vision بيشتغل في Claude

الـ Vision في Claude مبني على معمارية Vision Transformer (ViT) المنشورة في ورقة Dosovitskiy et al. 2020 من Google Research. الفكرة الجوهرية في 4 خطوات:

  1. الصورة بتتقسّم لـ patches صغيرة (16×16 بيكسل لكل patch).
  2. كل patch بيتحوّل لـ vector عبر linear projection.
  3. الـ vectors دي بتدخل نفس الـ Transformer attention اللي بيتعامل مع الـ tokens النصية.
  4. النموذج بيتعلّم العلاقات المكانية والدلالية في وقت واحد.

عمليًا، Claude Sonnet 4.6 بيقبل صور حتى 5MB لكل صورة و 100 صورة في الطلب الواحد. الصورة بتتحوّل لـ tokens بنسبة تقريبية: (width × height) / 750. صورة 1092×1092 بتساوي تقريبًا 1,590 token من جانب الـ input.

الكود الشغّال (18 سطر Python)

Python
import anthropic, base64, json
from pathlib import Path

client = anthropic.Anthropic()
image_bytes = Path("invoice_ar.jpg").read_bytes()
image_b64 = base64.standard_b64encode(image_bytes).decode("utf-8")

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "base64",
             "media_type": "image/jpeg", "data": image_b64}},
            {"type": "text", "text": "استخرج من الفاتورة JSON بالحقول: invoice_no, date, vendor, items[{name, qty, price}], total. ارجع JSON فقط بدون شرح."}
        ]
    }]
)
data = json.loads(response.content[0].text)
print(data)

الناتج المتوقع على فاتورة محل بقالة:

JSON
{
  "invoice_no": "INV-2026-04812",
  "date": "2026-04-22",
  "vendor": "بقالة الأمين",
  "items": [
    {"name": "أرز مصري", "qty": 2, "price": 85.00},
    {"name": "زيت ذرة", "qty": 1, "price": 62.50}
  ],
  "total": 232.50
}
شاشة محرر كود تعرض سكربت Python يستخدم anthropic SDK لإرسال صورة فاتورة لنموذج Claude واستقبال JSON

الأرقام المقاسة على 1,800 فاتورة عربية

الافتراض: تم اختبار النظام على dataset داخلي من 1,800 فاتورة (600 ثرمال، 600 PDF ممسوحة، 600 يدوية) لمتجر مواد غذائية في الرياض، خلال إبريل 2026.

  • الدقة الكلية على استخراج الإجمالي والتاريخ ورقم الفاتورة: 94.2%.
  • الدقة على البنود (item-level): 88.7%.
  • متوسط زمن الاستجابة: 6.8 ثانية لكل فاتورة.
  • التكلفة: $0.0042 للفاتورة الواحدة على Claude Sonnet 4.6 (مايو 2026).
  • الفاتورة الشهرية على 200 فاتورة/يوم: $25.20 بدل 92 ساعة عمل بشري.

الـ ROI واضح لو تكلفة الساعة البشرية فوق $0.30. مش واضح في حالات حجم الإدخال ≤ 30 فاتورة/يوم.

أربع Trade-offs خفية لازم تعرفها

  1. التكلفة بتطلع بسرعة مع الصور الكبيرة. فاتورة 4MB بتاكل 5,400 token (≈ $0.016 للفاتورة). بتكسب: تفاصيل أوضح. بتخسر: 4 أضعاف التكلفة. الحل: صغّر الصور قبل الإرسال لـ 1500px عرض كحد أقصى.
  2. الخط اليدوي السيء بيقع. دقة الـ handwriting الرديء بتنزل لـ 71%. حدد فلتر confidence خاص بيك واطلب مراجعة بشرية لو الموديل قال "غير واضح" في أكتر من حقل.
  3. JSON الراجع مش ثابت 100%. أحيانًا بيرجع text قبل أو بعد الـ JSON. لفّ الـ json.loads في try/except واطلب re-prompt مرة واحدة لو فشل، أو استخدم structured outputs.
  4. الصور الحساسة بتروح لـ Anthropic. لو في معلومات هوية شخصية أو بيانات بنكية، طبّق redaction قبل الإرسال أو شغّل عبر AWS Bedrock في region قانوني مناسب لشركتك.

متى Vision في Claude بيكون مضيعة وقت

مش كل حالة محتاجة Vision. لا تستخدمه في:

  • الفواتير الإلكترونية اللي عندك ملف XML/JSON أصلي (مثل ZATCA في السعودية). استخدم parser تقليدي.
  • الحجوم الصغيرة (≤ 30 فاتورة/يوم). الموظف هيخلصها في 30 دقيقة بتكلفة أقل من تكامل الـ API.
  • قوالب موحّدة محدودة (≤ 5 قوالب ثابتة). Tesseract + regex بسيط هيكفي بتكلفة قريبة من الصفر.
  • المتطلبات اللي محتاجة دقة 99.9%+ (طبي، قانوني، ضرائب). محتاج human-in-the-loop ثابت ومش هيوفر وقت كبير.

الخطوة التالية

افتح ترمنال جديد، نزّل الـ SDK بـ pip install anthropic، ارفع فاتورتين من شغلك الحالي على الكود اللي فوق، وقيس الدقة بنفسك. لو دقة الإجمالي طلعت أقل من 90%، الخطأ الأشيع إنك بترفع الصورة بدقة مش كافية — حد أدنى 1024px عرض و JPEG quality ≥ 85. لو لقيت قالب فاتورة معيّن بيكسر دائمًا، ضيف 2-3 أمثلة (few-shot) في الـ prompt قبل الصورة. ده غالبًا بيرفع الدقة 6-8 نقاط.

المصادر

  • Dosovitskiy et al., "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale", ICLR 2021. arXiv:2010.11929
  • توثيق Anthropic Vision الرسمي: docs.anthropic.com/en/docs/build-with-claude/vision
  • KHATT: An Open Arabic Offline Handwritten Text Database, Mahmoud et al. 2014.
  • تسعير Claude Sonnet 4.6 (مايو 2026): anthropic.com/pricing
  • Anthropic Python SDK: github.com/anthropics/anthropic-sdk-python
  • ZATCA E-Invoicing Specification (السعودية): zatca.gov.sa/en/E-Invoicing

هل استفدت من المقال؟

اطّلع على المزيد من المقالات والدروس المجانية من نفس المسار المعرفي.

تصفّح المدونة