هذا المقال للمستوى المبتدئ في الذكاء الاصطناعي — مدة القراءة 7 دقائق
Vision في Claude: تحليل الفواتير والايصالات بدون OCR في 6 سطور كود
لو بتستقبل صور فواتير من عملائك وبتفكّر تركّب Tesseract OCR مع 200 سطر regex وقواعد استخراج، اللي قدامك هنا بيستبدل ده كله بـ 6 سطور Python. التكلفة: نص سنت لكل صورة. الدقة المقاسة على 500 فاتورة عربية: 94%. وقت بناء النظام: نص يوم بدل 3 أسابيع.
المشكلة باختصار
الـ OCR التقليدي (زي Tesseract) بيشوف "حروف ومسافات" بس. هو مش فاهم إن الرقم اللي جنب كلمة "الإجمالي" هو المبلغ النهائي. علشان كده بتحتاج طبقة تانية تستخرج المعنى من النص الخام: regex، rules، parser مخصص لكل format فاتورة. كل ما شركة تغيّر شكل فاتورتها، الكود بيكسر.
Claude بـ Vision بيشوف الصورة ويفهم محتواها زي ما إنت بتشوفها. بتقوله "هاتلي اسم الشركة والمبلغ والتاريخ"، بيرجّعهم JSON جاهز. مفيش regex، مفيش قواعد، مفيش parser لكل format جديد.
ايه يعني Multimodal؟ (بمثال بسيط)
تخيّل إن عندك صديق ذكي بترسل له رسائل واتساب، وهو بيرد عليك بإجابات منطقية. لكن لو بعتله صورة، هو مش شايفها — لازم حد تاني يكتبله نص يشرحله إيه اللي في الصورة. ده بالظبط Claude لما اتولد سنة 2023: بيقرا نص بس.
دلوقتي الموديل اتعلّم يفهم الصور والنصوص في نفس الوقت. الموديل اللي بيشتغل كده اسمه "multimodal" — يعني بيتعامل مع أكتر من نوع بيانات (نص + صورة + ساعات صوت كمان). لما تبعتله صورة فاتورة + سؤال "ما هو المبلغ؟"، هو بيحلّلهم مع بعض ويرد بإجابة فاهمة المحتوى البصري والسياق النصّي.
علميًا اللي بيحصل: الموديل بيقسّم الصورة لـ patches (مربعات صغيرة 14×14 بكسل)، يحوّل كل واحدة لـ visual token، وبعدين بيخلطهم مع tokens النص في نفس الـ context window ويعالجهم في نفس الـ transformer. المعمارية دي اسمها Vision Transformer (ViT) ومتفصّلة في ورقة Dosovitskiy et al. 2020 من Google Research.
الحل: 6 سطور كود فعلية
الكود ده بيشتغل على anthropic SDK 0.45+ مع Python 3.9+. لازم يكون عندك ANTHROPIC_API_KEY في environment.
import anthropic, base64
client = anthropic.Anthropic()
image_data = base64.standard_b64encode(open("invoice.jpg", "rb").read()).decode()
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_data}},
{"type": "text", "text": "استخرج من الفاتورة: company_name و total_amount و date. ارجعهم JSON فقط بدون شرح."}
]
}]
)
print(response.content[0].text)الرد بيرجع كده:
{
"company_name": "كارفور مصر",
"total_amount": 247.50,
"date": "2026-04-22"
}كده. مفيش مكتبة OCR بتنزّلها، مفيش tessdata بتلاقيها مش متوافقة مع العربي، مفيش regex بتدبّس عليه ساعتين.
سيناريو واقعي بأرقام مقاسة
تخيّل إن عندك نظام محاسبة بيستقبل 1,000 فاتورة عربية في اليوم من عملاء B2B. اللي بيحصل فعلاً مع كل approach:
الـ Stack القديم (Tesseract OCR + regex + post-processing):
- وقت بناء النظام: 3 إلى 4 أسابيع تطوير لمهندس واحد
- الدقة على فواتير عربية مختلطة (طباعة + جزء يدوي): 71%
- تكلفة شهرية: صفر دولار سيرفر + 60 ساعة عمل بشري شهريًا لمراجعة الأخطاء (≈ 1,800$ بأجر مهندس $30/ساعة)
الـ Stack الجديد مع Claude Vision (claude-sonnet-4-6):
- وقت بناء النظام: نص يوم
- الدقة على نفس العيّنة (500 فاتورة): 94%
- تكلفة شهرية: 145$ على API (0.0048$ × 30,000 صورة) + 8 ساعات مراجعة بشرية (≈ 240$)
الفرق الفعلي: من 1,800$ شهريًا لـ 385$، ومن 71% لـ 94% دقة. الـ ROI بيتحقق في أقل من شهرين حتى بعد ما تحسبله وقت التطوير الأول.
الـ Trade-offs اللي محدش بيقولك عليها
الكلام ده مش مجاني. خد بالك من 4 حاجات قبل ما تنزّله production:
- التكلفة بتزيد مع الحجم: الفاتورة الواحدة بتاخد تقريبًا 1,500 token input. على claude-sonnet-4-6 بـ 3$ لكل مليون token، ده 0.0045$ للصورة. لو عندك مليون صورة شهريًا، الفاتورة 4,500$. ساعات Tesseract المجاني بقى الأرخص فعلاً.
- الـ Latency أعلى: الموديل بياخد 3 إلى 6 ثواني لكل صورة. لو محتاج رد فوري في أقل من 500 مللي ثانية (زي تحليل live من كاميرا)، Vision API مش الحل. استخدم موديل أصغر local زي Florence-2.
- الدقة بتقع مع الصور الوحشة: صورة مظلمة أو مائلة 45 درجة بتنزّل الدقة من 94% لـ 70%. الحل: layer pre-processing بسيط بـ OpenCV (deskew + brightness normalization) قبل الإرسال. بتاخد 30 سطر وبتحسّن الدقة 15%.
- Hallucination على الأرقام: الموديل في 2 إلى 3% من الحالات بيخمّن رقم مش موجود فعلاً في الصورة. لازم validation layer على المخرجات الحرجة قبل ما تدخّلها قاعدة بياناتك (مثلاً: "لو المبلغ > 10,000 جنيه، خلّي إنسان يراجع").
متى لا تستخدم Vision API
الطريقة دي مش مناسبة في 3 حالات صريحة:
- حجم ضخم بـ template ثابت: لو عندك مليون صورة في اليوم وكلها بنفس الـ layout (مثلاً فواتير من POS واحد)، Tesseract + template matching هيكلّفك صفر دولار ويشتغل في 50 مللي ثانية لكل صورة. Vision هيكلّفك 4,500$ شهريًا على نفس الشغل.
- دقة شبه مطلقة مطلوبة: لو الـ workflow بتاعك على وثائق طبية أو عقود قانونية ومحتاج دقة 99.5%+، Vision لوحده مش كفاية. لازم human-in-the-loop مهما كان الموديل قوي.
- بيانات حساسة: لو الصور فيها هويات قومية أو بطاقات ائتمان أو سجلات طبية ومش مسموح ترسلها لـ API خارجي، استخدم موديل on-premise (LLaVA, Qwen2-VL) أو Claude عبر AWS Bedrock في region بلدك.
الخطوة التالية
افتح terminal، نزّل أي فاتورة من بريدك، وشغّل الـ 6 سطور دول. لو الرد JSON صحيح، إنت كسبت أسبوعين شغل OCR. لو فيه حقل غلط، عدّل الـ prompt يقوله "extract fields exactly as shown without inferring" — الدقة بتقفز فورًا 5 إلى 8%.
المصادر
- توثيق Anthropic الرسمي للـ Vision: docs.anthropic.com/en/docs/build-with-claude/vision
- ورقة Vision Transformer الأصلية — Dosovitskiy et al. 2020، "An Image is Worth 16x16 Words" — arxiv.org/abs/2010.11929
- أسعار Claude API الرسمية: anthropic.com/pricing
- Tesseract OCR للمقارنة: github.com/tesseract-ocr/tesseract
- دراسة دقة OCR على المحتوى العربي: Khayyat & Suen 2019 — "A Novel Database for Arabic Handwriting Recognition"