איך להשתמש ב-API של Claude
חמישה דפוסי קוד אמיתיים לעבודה עם ה-API של Claude: קריאה בסיסית, system prompt, שיחה מרובת תורות, extended thinking, ו-prompt caching להוזלת עלות.

יש הבדל בין לשלוח ל-Claude הודעה בודדת לבין לבנות איתו שיחה עם הקשר - וה-API סטטלס לגמרי, כלומר בכל קריאה חוזרת צריך לשלוח את כל היסטוריית השיחה מחדש, לא רק את ההודעה האחרונה. ההבדל הזה קובע גם איך בונים את הקוד וגם כמה זה עולה.
דפוס 1 - קריאה בסיסית
מתי: שאלה עצמאית בודדת, בלי הקשר קודם.
from anthropic import Anthropic
client = Anthropic()
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "מה ההבדל בין RAG ל-fine-tuning?"}]
)
print(response.content[0].text)
מה לשנות: model לפי המשימה (טבלה למטה), ו-max_tokens לפי אורך התשובה הצפוי - סיווג קצר צריך מעט, סיכום ארוך צריך יותר.
דפוס 2 - system prompt קבוע
מתי: אותה הנחיית התנהגות חוזרת על עצמה בהרבה קריאות - עוזר כתיבה, בוט תמיכה, מסווג.
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system="אתה עוזר כתיבה שמסביר מושגי AI בעברית פשוטה, בלי ז'רגון מיותר.",
messages=[{"role": "user", "content": "מה זה חלון הקשר?"}]
)
מה לשנות: את תוכן ה-system, אבל שומרים אותו קבוע בין קריאות - כך אפשר להשתמש ב-caching (דפוס 5) ולחסוך.
דפוס 3 - שיחה מרובת תורות
מתי: צ'אטבוט או כל ממשק שבו המשתמש שולח כמה הודעות ברצף וצריך זיכרון בין ביניהן.
messages = [{"role": "user", "content": "קוראים לי דנה."}]
r1 = client.messages.create(model="claude-sonnet-5", max_tokens=200, messages=messages)
messages.append({"role": "assistant", "content": r1.content[0].text})
messages.append({"role": "user", "content": "מה השם שלי?"})
r2 = client.messages.create(model="claude-sonnet-5", max_tokens=200, messages=messages)
מה לשנות: לשמור את messages בזיכרון או במסד נתונים לפי משתמש, ולצרף אליו כל תור חדש - זה מה שהופך קריאות בודדות לשיחה.

דפוס 4 - extended thinking למשימות קשות
מתי: ניתוח מורכב, בעיית קוד רב-שלבית, או כל דבר שדורש "לחשוב לפני שעונים" ולא רק להשלים טקסט.
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
thinking={"type": "adaptive"},
messages=[{"role": "user", "content": "נתח את הבאג הבא ומצא את הגורם השורשי: ..."}]
)
מה לשנות: להשתמש בזה רק כשהמשימה מצדיקה - חשיבה מורכבת מוסיפה זמן תגובה ועלות טוקנים, ולשאלה פשוטה היא לא משפרת כלום.
דפוס 5 - prompt caching לחיסכון בעלות
מתי: אותו system prompt ארוך או אותו מסמך רקע נשלח שוב ושוב בקריאות שונות.
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system=[{"type": "text", "text": long_document, "cache_control": {"type": "ephemeral"}}],
messages=[{"role": "user", "content": "סכם את המסמך"}]
)
טוקנים שנכתבים למטמון בקריאה הראשונה עולים כ-1.25 פעמים מהמחיר הרגיל, אבל קריאה חוזרת לאותו תוכן קרוב יותר לעשירית מהמחיר המקורי - חיסכון משמעותי בכל אפליקציה ששולחת את אותו הקשר שוב ושוב.
כמה זה עולה בפועל
| מודל | Model ID | מחיר לכל מיליון טוקנים (קלט/פלט) | מתאים ל |
|---|---|---|---|
| Claude Opus 5 | claude-opus-5 | 5$ / 25$ | ניתוח מורכב, קוד, משימות שדורשות דיוק מקסימלי |
| Claude Sonnet 5 | claude-sonnet-5 | 2$ / 10$ | רוב האפליקציות בפרודקשן |
| Claude Haiku 4.5 | claude-haiku-4-5 | 1$ / 5$ | סיווג, תיוג, משימות פשוטות בנפח גבוה |
מחירים נכונים ל-8.9.2026 לפי עמוד המחירים הרשמי של Anthropic.
איפה זה נשבר
ה-API סטטלס באמת - שכחה לצרף את היסטוריית השיחה המלאה בכל קריאה גורמת ל-Claude "לשכוח" הכל, אפילו שם שנאמר משפט קודם. זו טעות נפוצה במיוחד כשעוברים מבדיקה בממשק אינטראקטיבי (שם ההיסטוריה נשמרת אוטומטית) לקוד עצמאי (ששם צריך לנהל אותה בעצמכם). גם caching לא עובד "סתם כי הגדרתם אותו" - אם משהו בתוך ה-prefix משתנה בין קריאה לקריאה (חותמת זמן, מזהה משתמש שמוזרק לתוך ה-system prompt), המטמון מתאפס בלי הודעת שגיאה, ורואים את זה רק כשבודקים את cache_read_input_tokens ומגלים שהוא תמיד אפס. ולבסוף - extended thinking על Claude Opus 5 מוסיף זמן תגובה משמעותי; בממשק שדורש תשובה מיידית (כמו צ'אט חי) עדיף Sonnet 5 בלי thinking, ולשמור את השילוב הכבד למשימות שרצות ברקע.
איך למדוד הצלחה
בודקים בשדה usage שמוחזר עם כל תשובה: input_tokens ו-output_tokens מראים בדיוק מה נספר, ו-cache_read_input_tokens אם הוא לא אפס אחרי כמה קריאות - זה הסימן שה-caching אכן עובד ולא רק מוגדר בקוד בלי להשפיע.
מה לנסות עכשיו
מתחילים עם דפוס 1 ו-Claude Haiku 4.5 כדי לוודא שהקריאה הבסיסית עובדת, עוברים ל-Sonnet 5 כשהמשימה דורשת יותר דיוק, ושומרים את Opus 5 ואת extended thinking למקרים שבהם באמת רואים שהמודל הזול טועה.
שווה גם להרגיל את עצמכם לקרוא את הודעת השגיאה במלואה כשקריאה נכשלת, לא רק את קוד הסטטוס. שגיאת 429 אומרת שחרגתם ממכסת הקצב ושכדאי לנסות שוב עם השהיה, ואילו שגיאת 400 כמעט תמיד מצביעה על בעיה במבנה הבקשה עצמה - למשל max_tokens שגדול מדי ביחס למודל, או שדה חסר. ההבדל בין השתיים קובע אם צריך לתקן קוד או פשוט להמתין ולנסות שוב.
שאלות נפוצות
מה ההבדל בין Sonnet, Opus ו-Haiku?
Opus הוא המודל היכולתי והיקר ביותר, Sonnet הוא איזון בין יכולת למחיר לרוב המשימות, ו-Haiku הזול והמהיר ביותר - מתאים למשימות פשוטות בנפח גבוה.
צריך להפעיל extended thinking בכל קריאה?
לא. הוא מיועד למשימות שדורשות שלבי חשיבה - ניתוח מורכב, קוד, מתמטיקה. לשאלה פשוטה או סיווג טקסט הוא רק מוסיף זמן תגובה ועלות בלי לשפר את התוצאה.
SOURCES
- Anthropic - Claude API Pricing · נבדק 8 בספטמבר 2026