פוסט

מולטימודלי: תמונות ו-PDF

איך שולחים למודל תמונות ו-PDF, איך סופרים טוקנים של תמונה, במה ראייה ממוחשבת עדיין חלשה, ומה עושים עם אודיו.

מודלי Claude הנוכחיים קוראים יותר מטקסט: הם מקבלים תמונות, ו-PDF נקרא עמוד אחר עמוד, גם כטקסט וגם כתמונה.

קוד ה-API מבוסס על התיעוד של vision ושל תמיכה ב-PDF ולא הורץ, ולכן הפלט שלו הוא פלט לדוגמה. חישוב הטוקנים הורץ עם Python 3.9, והפלט שלו אמיתי.

שליחת תמונה

תמונה היא בלוק תוכן בהודעת המשתמש, לצד בלוק טקסט. המקור יכול להיות URL, נתוני base64, או file_id מה-Files API:

import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "image", "source": {"type": "url",
                "url": "https://platform.claude.com/docs/images/vision-example.jpg"}},
            {"type": "text", "text": "Describe this image in one sentence."},
        ],
    }],
)
print(message.content[0].text)
A wide landscape photo of a mountain range under a clear sky.

התיעוד ממליץ לשים תמונות לפני השאלה, כמו מסמכים ארוכים. עם כמה תמונות, תנו תוויות (“Image 1:”, “Image 2:”) כדי להתייחס אליהן. הפורמטים: JPEG, PNG, GIF (הפריים הראשון בלבד) ו-WebP.

כמה טוקנים עולה תמונה

המודל רואה תמונה כרשת של ריבועים בגודל 28×28 פיקסלים, וכל ריבוע הוא טוקן אחד. התיעוד נותן את הנוסחה ⌈width / 28⌉ × ⌈height / 28⌉:

import math

def image_tokens(width, height):
    return math.ceil(width / 28) * math.ceil(height / 28)

for w, h in [(200, 200), (1000, 1000), (1920, 1080)]:
    print(f"{w}x{h}: {image_tokens(w, h)} tokens")
200x200: 64 tokens
1000x1000: 1296 tokens
1920x1080: 2691 tokens

תמונות שגדולות מהמגבלה מוקטנות קודם, וזה מגביל את העלות. ב-Claude 4.7 ובמודלים שאחריו המגבלה היא 2576 פיקסלים בצלע הארוכה ו-4784 טוקנים; במודלים ישנים היא נמוכה יותר. אם אין צורך בפרטים, הקטינו תמונות לפני השליחה: זה זול ומהיר יותר.

PDF

PDF הוא בלוק מסוג document. המודל מקבל את הטקסט שחולץ וגם תמונה של כל עמוד, כך שהוא יכול לקרוא גרפים, טבלאות ועמודים סרוקים:

message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "document", "source": {"type": "url",
                "url": "https://example.com/annual-report.pdf"}},
            {"type": "text", "text": "What are the key findings in this document?"},
        ],
    }],
)

בזמן הכתיבה המגבלה היא 600 עמודים ו-32 MB לבקשה (100 עמודים במודלים עם חלון הקשר קטן יותר), בלי קבצים מוצפנים או מוגני סיסמה. כל עמוד הוא גם תמונה, ולכן PDF צפוף יכול למלא את חלון ההקשר לפני מגבלת העמודים.

במה ראייה ממוחשבת עדיין חלשה

התיעוד מונה מגבלות שכדאי להכיר לפני שבונים על תמונות:

  • תמונות קטנות, מטושטשות או מסובבות (מתחת לכ-200 פיקסלים) גורמות לטעויות.
  • ספירה של הרבה עצמים קטנים, וגם קואורדינטות ומיקומים, מתקבלים רק בקירוב.
  • הוא לא יודע לזהות אם תמונה נוצרה ב-AI.
  • הוא לא מזהה אנשים לפי הפנים.
  • הוא רק מבין תמונות. הוא לא יוצר ולא עורך אותן.

אודיו

מודלי Claude הנוכחיים מקבלים טקסט ותמונות, לא אודיו. להקלטות, המירו קודם דיבור לטקסט עם שירות speech-to-text ושלחו את התמלול. בוידאו: חלצו פריימים כתמונות, או תמלול.