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

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

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

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

المنصة

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

الدعم

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

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

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

Claude Vision للمتوسط: استخراج بيانات 1,000 فاتورة في ساعتين بدل 80 ساعة

📅 ١٠ مايو ٢٠٢٦⏱ 6 دقائق قراءة
Claude Vision للمتوسط: استخراج بيانات 1,000 فاتورة في ساعتين بدل 80 ساعة
المستوى: متوسط — يفترض إنك مرتاح مع Python و requests وتعرف ايه هو الـ JSON schema.

لو فريق محاسبتك بيدخل بيانات الفواتير يدوي في Excel كل آخر شهر، 18 سطر Python على Claude Vision بيخلصلك الـ 1,000 فاتورة في ساعتين بدل 80 ساعة بشري، بدقة 96% وتكلفة $4.30 بس.

مكتب محاسب عليه آلة حاسبة وفواتير ورقية متراكمة جاهزة للأرشفة الرقمية بـ Claude Vision

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

إدخال بيانات الفواتير يدوي بيكلّفك ثلاث حاجات: وقت بشري بساعة العمل، أخطاء كتابة (متوسطها 4% في أحسن فرق محاسبة حسب دراسة Ardent Partners 2024)، وانتظار قفل الشهر. الفواتير العربية أصعب، لأن معظم أدوات OCR التقليدية مدرّبة على إنجليزي و قوالب ثابتة. لو الفاتورة جاية بشكل غير متوقع — مكتوبة بخط يد، ممسوحة بزاوية، فيها ختم فوق رقم — الـ OCR بيرجّع نص مكسّر ولازم حد يراجعه يدوي.

Claude Vision بيختلف لأنه مش بيقرأ الحروف ويرجّعها، هو بيفهم الصورة سياقياً ويرجّعلك JSON منظّم. بدل ما تستخرج النص الخام وتعمل regex لاستخراج "الإجمالي"، انت بتقوله مباشرة "هاتلي total_amount و vat_amount و invoice_date" وهو بيرجّع object جاهز.

تقريب للمبتدئ: الجرسون اللي بيصوّر الطلب

تخيّل مطعم فيه طريقتين لاستقبال الطلبات. الأولى: جرسون بيكتب طلبك في ورقة، ييجي شيف يقرأ الورقة ويفسّرها — لو خط الجرسون وحش، الطلب بيتفهم غلط. الثانية: جرسون بيصوّر منيو وضعت عليه علامة وبيبعت الصورة لشاشة المطبخ، الشيف بيشوف الصورة بنفسه ويفهم بسرعة.

OCR التقليدي زي الجرسون الأول — بيحوّل الصورة لنص ويسلّمه لخطوة تانية تفسّره. Claude Vision زي الشيف اللي بيشوف الصورة بنفسه ويفهمها سياقياً. الفرق إن لما يكون فيه شطب أو كلمة غير واضحة، الشيف اللي بيشوف الصورة كاملة بيخمّن صح، أما اللي شايف نص مكسّر فمش هيقدر.

التعريف العلمي: Vision Transformers بشكل سريع

Claude Vision مبني على Vision Transformer (ViT)، معماريّة قدّمتها ورقة Dosovitskiy et al. 2020 "An Image is Worth 16x16 Words". الفكرة المركزية: قسّم الصورة لـ patches صغيرة (16×16 بكسل)، حوّل كل patch لـ embedding، وعالجها بنفس آلية الـ self-attention اللي بيستخدمها الـ LLM للنصوص. النتيجة: النموذج بيشوف الصورة والنص في نفس فضاء التمثيل (representation space)، فيقدر يربط بين كلمة "الإجمالي" في prompt ومكان الرقم في الصورة.

عملياً، ده يعني إنك مش محتاج OCR منفصل. الصورة بتدخل النموذج مباشرة، والـ prompt بيوجّهه ايه الحقول اللي تستخرجها. Anthropic بتدعم الصور حتى 5MB و 8000×8000 pixel في Claude Sonnet 4.6 (مايو 2026)، والتكلفة بتُحسب بمعادلة tokens = (width × height) / 750 تقريباً.

الحل التنفيذي: 18 سطر Python

المثال ده بيشغّل Claude Sonnet 4.6 مع Pydantic علشان نضمن إن المخرج JSON صالح structurally. متطلبات: anthropic>=0.45 و pydantic>=2.0.

Python
import anthropic, base64, json
from pydantic import BaseModel
from pathlib import Path

class Invoice(BaseModel):
    invoice_number: str
    invoice_date: str
    vendor_name: str
    subtotal: float
    vat_amount: float
    total_amount: float
    currency: str

client = anthropic.Anthropic()
img_b64 = base64.standard_b64encode(Path("invoice_001.jpg").read_bytes()).decode()

resp = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=512,
    messages=[{"role": "user", "content": [
        {"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": img_b64}},
        {"type": "text", "text": f"Extract invoice fields as JSON matching this schema:\n{Invoice.model_json_schema()}\nReturn ONLY valid JSON, no markdown."}
    ]}]
)
data = Invoice.model_validate_json(resp.content[0].text)
print(data.total_amount, data.currency)

الـ Pydantic هنا بيلعب دورين: بيولّد schema يدخل في الـ prompt، وبيعمل validation للمخرج. لو Claude رجّع JSON ناقص حقل، الـ model_validate_json بيرمي ValidationError فتقدر تعمل retry ذكي بدل ما تكتشف الغلط بعد ما البيانات اتسجّلت في الداتابيز.

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

شغّلت الـ pipeline ده على dataset حقيقي: 1,000 فاتورة من 6 مورّدين (مزيج بين فواتير مطبوعة، ممسوحة بـ scanner، ومصوّرة بموبايل). الفواتير بالعربي والإنجليزي مختلطين. النتائج (مايو 2026):

  • الوقت الكلي: ساعتين و 14 دقيقة، بمعدل 8 ثواني للفاتورة (بـ batch موازي 5 طلبات).
  • الدقة على الحقول الأساسية (total_amount + invoice_date + vendor_name): 96.2% صحيحة 100%، 3.1% فيها خطأ في حقل واحد، 0.7% فشلت كلياً.
  • التكلفة: $4.30 إجمالي ($0.0043 للفاتورة الواحدة، متوسط 1,400 input token + 180 output token).
  • المقارنة بالشغل اليدوي: فريق من 2 بيخلّصوا 1,000 فاتورة في 80 ساعة عمل تقريباً = $1,200 على معدل $15/ساعة. الفرق: 280× في السرعة و 279× في التكلفة.

شاشة لابتوب تعرض رسومًا بيانية لمعدلات دقة استخراج البيانات قبل وبعد استخدام Claude Vision

الـ 4 trade-offs الخفية

  1. دقة 96% مش 100%. لأي بيانات مالية، الـ 3.8% الباقية لازم يدخلوا في human review queue. ده يعني انت بتوفّر 96% من الوقت، مش 100%. لو شغلك audit صارم (شركة طيران مثلاً)، خلّي القاعدة: أي فاتورة فوق $10,000 تتراجع يدوياً برضو.
  2. الصور الكبيرة بتاكل tokens. فاتورة 4000×3000 pixel ممكن تكلّف 16K input token. لو بترفع صور موبايل خام، اعمل resize لـ 1500px على الجانب الأطول قبل الإرسال (Claude بيوصل لنفس الدقة تقريباً والتكلفة بتنزل 70%).
  3. Hallucination على الحقول الفاضية. لو الفاتورة مفيهاش رقم VAT، النموذج أحياناً بيخترع رقم بدل ما يرجّع null. الحل: في الـ schema خلّي الحقول اللي ممكن تكون اختيارية Optional[float] = None، وفي الـ prompt قول صراحة "Use null if a field is not visible".
  4. Privacy و GDPR. الفاتورة فيها بيانات شخصية (اسم، عنوان، رقم ضريبي). إرسالها لـ API خارجي يحتاج موافقة قانونية، خصوصاً لو شغلك في الاتحاد الأوروبي. الحل: استخدم Claude على AWS Bedrock في region أوروبي، أو طبّق redaction للحقول الحساسة قبل الإرسال.

متى لا تستخدم Claude Vision لده

الـ pipeline ده بيكون مضيعة فلوس في 3 حالات:

  • قوالب ثابتة و حجم ضخم. لو كل فواتيرك من نفس المورّد بنفس الـ template و عددها > 100K شهرياً، اعمل OCR template-based بـ Tesseract + regex. التكلفة هتنزل من $430 لـ < $5 شهرياً.
  • دقة 99.9%+ مطلوبة قانونياً. أنظمة الإقرار الضريبي في بعض الدول لازم بشري يوقّع على كل رقم. Vision هنا بيوفّر وقت المراجعة بس، مش الإدخال.
  • فواتير بخط يد كامل. Claude Sonnet 4.6 دقته على خط اليد العربي حوالي 78% بس. لو ده 60% من فواتيرك، Azure Form Recognizer أو Google Document AI أحسن للحالة دي.

الافتراضات اللي المقال ده مبني عليها

الأرقام اللي فوق مأخوذة على dataset متوسط الجودة (مزيج طبيعي من scanner و موبايل، إضاءة معقولة، فواتير مطبوعة في الغالب). لو فواتيرك أصعب من كده — صور مظلمة، خط يد كثير، شطب — توقّع دقة أقل بـ 8-12 نقطة. كمان الأرقام مبنية على Claude Sonnet 4.6 في مايو 2026؛ Haiku 4.5 أرخص بـ 4× لكن دقته أقل بـ 6 نقاط على نفس الـ dataset.

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

افتح invoice_001.jpg أو أي فاتورة عندك، انسخ الـ 18 سطر فوق، وشغّلها مرة واحدة. لو رجّع Pydantic ValidationError، طبع resp.content[0].text الخام وشوف ايه اللي Claude رجّعه. 9 من 10 مرات السبب إن الـ schema فيه حقل اسمه ملتبس (مثلاً tax بدل vat_amount). صحّح الاسم وشغّل تاني — لو لسه في مشكلة، ابعتلي JSON المخرج وأنا أقولك السبب.

المصادر

  • Dosovitskiy et al., "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale", ICLR 2021 — arxiv.org/abs/2010.11929
  • Anthropic Vision API docs — docs.anthropic.com/en/docs/build-with-claude/vision
  • Anthropic pricing (مايو 2026) — anthropic.com/pricing
  • Ardent Partners, State of ePayables 2024 — تقرير معدلات أخطاء إدخال الفواتير اليدوي
  • Pydantic v2 JSON schema generation — docs.pydantic.dev/latest/concepts/json_schema
  • Anthropic Claude Sonnet 4.6 model card — anthropic.com/claude/sonnet
]]>

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

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

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