DEV Community

Cover image for كيف تخفض فاتورة Claude API (أوبوس 4.8 و فابل 5)
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيف تخفض فاتورة Claude API (أوبوس 4.8 و فابل 5)

تعتمد فاتورة Claude غالبًا على رموز الإدخال أكثر من الإخراج. لأن واجهة Claude API عديمة الحالة، فأنت تعيد إرسال موجه النظام، تعريفات الأدوات، المستندات، وسجل المحادثة في كل طلب. في حلقات الوكلاء أو جلسات Claude Code الطويلة، يصبح هذا السياق المعاد إرساله هو الجزء الأكبر من التكلفة.

جرّب Apidog اليوم

لخفض الفاتورة فعليًا، ركّز على ثلاثة محاور: تقليل ما ترسله، اختيار نموذج أرخص عندما يكفي، ومنع إعادة إرسال السياق غير المستخدم. هذا الدليل يقدّم خطوات عملية قابلة للتطبيق: التخزين المؤقت للموجه، اختيار النموذج، Batch API، ضبط حدود الطلب، ضغط السياق، اختبار pxpipe، واستخدام Mock API أثناء التطوير.

إذا كنت تحتاج إلى أساسيات التسعير أولًا، مثل معنى الرمز، آلية العد، وتكلفة التخزين المؤقت والدُفعات، راجع: شرح تكلفة واجهة برمجة تطبيقات Claude.

الرافعة 1: فعّل التخزين المؤقت للموجه Prompt Caching

استخدم التخزين المؤقت للموجه عندما يكون لديك جزء ثابت يتكرر في كل طلب، مثل:

  • موجه النظام.
  • تعريفات الأدوات.
  • وثائق طويلة.
  • تعليمات ثابتة للوكلاء.
  • أمثلة ثابتة لا تتغير بين الطلبات.

الفكرة: تجعل هذا الجزء قابلًا للتخزين المؤقت. عند إرسال طلب لاحق يبدأ بنفس البايتات، يقرأ Claude هذا الجزء من الذاكرة المؤقتة بدلًا من إعادة معالجته بالسعر الكامل.

اقتصاديًا، قراءات الذاكرة المؤقتة تكلف تقريبًا 0.1x من سعر الإدخال الأساسي، أي توفير يصل إلى حوالي 90% على الجزء المخزن. لكن الكتابة الأولى أغلى:

  • 1.25x لمدة صلاحية 5 دقائق.
  • 2x لمدة صلاحية ساعة واحدة.

لذلك لا تستخدم التخزين المؤقت لبادئة تُستخدم مرة واحدة فقط. نقطة التعادل تقريبًا:

  • طلبان لذاكرة 5 دقائق.
  • 3 طلبات لذاكرة ساعة واحدة.

قاعدة مهمة: البادئة يجب أن تكون ثابتة بايتًا ببايت

التخزين المؤقت يعتمد على مطابقة البادئة على مستوى البايت. أي تغيير داخل المنطقة المخزنة يبطلها.

تجنّب وضع هذه العناصر داخل الجزء المخزن:

timestamp
request_id
session_id
random UUID
عداد الطلبات
ترتيب أدوات يتغير بين الطلبات
Enter fullscreen mode Exit fullscreen mode

كيف تتحقق أن التخزين المؤقت يعمل؟

افحص الحقل التالي في استجابة Claude:

{
  "usage": {
    "cache_read_input_tokens": 12345
  }
}
Enter fullscreen mode Exit fullscreen mode

إذا ظل cache_read_input_tokens يساوي صفرًا في طلبات متكررة، فأنت غالبًا تغيّر شيئًا داخل البادئة الثابتة.

للتفاصيل حول الآلية، راجع: ما هو التخزين المؤقت للموجه وكيف يعمل.

الرافعة 2: اختر حجم النموذج حسب المهمة

أحد أكثر أسباب الهدر شيوعًا هو تشغيل نموذج كبير على مهمة لا تحتاجه. لا تجعل النموذج الأعلى تكلفة هو الافتراضي لكل شيء.

التسعير الحالي لكل مليون رمز:

النموذج معرف النموذج الإدخال الإخراج نافذة السياق
Fable 5 claude-fable-5 $10 $50 1M
Opus 4.8 claude-opus-4-8 $5 $25 1M
Sonnet 5 claude-sonnet-5 $3 ($2 تمهيدي) $15 ($10 تمهيدي) 1M
Haiku 4.5 claude-haiku-4-5 $1 $5 200K

استخدم هذا التوجيه العملي:

  • Fable 5: للمهام الصعبة جدًا التي تحتاج استدلالًا طويلًا وتستفيد فعلًا من قدرته الإضافية.
  • Opus 4.8: خيار افتراضي جيد لمعظم أعمال الوكلاء والبرمجة وClaude Code.
  • Sonnet 5: لحركة إنتاج كبيرة تحتاج جودة جيدة بسعر أقل.
  • Haiku 4.5: للتصنيف، الاستخراج، التوجيه، الردود القصيرة، والمهام الحساسة للسرعة.

مثال بسيط لمنطق توجيه حسب المهمة:

function selectClaudeModel(task: {
  type: "classification" | "coding" | "long_reasoning" | "bulk_extraction";
  latencySensitive?: boolean;
}) {
  if (task.type === "classification") return "claude-haiku-4-5";
  if (task.type === "bulk_extraction") return "claude-sonnet-5";
  if (task.type === "coding") return "claude-opus-4-8";
  if (task.type === "long_reasoning") return "claude-fable-5";

  return "claude-opus-4-8";
}
Enter fullscreen mode Exit fullscreen mode

ملاحظة خاصة بـ Fable 5: إذا رفض مصنف الأمان طلبًا، يمكن للمعامل التجريبي fallbacks إعادة توجيه الدور إلى Opus 4.8، ويتم فوترة هذا الدور بأسعار Opus. هذا غالبًا خصم وليس تكلفة إضافية مفاجئة، لكنه قد يظهر في تفاصيل الفاتورة.

للمزيد:

الرافعة 3: انقل العمل غير الفوري إلى Batch API

إذا لم تكن تحتاج الرد في الوقت الحقيقي، استخدم Batch API. ترسل المهام إلى:

/v1/messages/batches
Enter fullscreen mode Exit fullscreen mode

ثم تعالج بشكل غير متزامن. معظم الدُفعات تنتهي خلال ساعة، والحد الأقصى 24 ساعة. الخصم: 50% على جميع الرموز داخل الدفعة، سواء إدخال أو إخراج.

استخدمها مع:

  • التقييمات على مجموعات اختبار.
  • التصنيف أو الاستخراج بالجملة.
  • توليد ملخصات أو وسوم لسجلات موجودة.
  • أي معالجة ليلية أو خلفية لا تحتاج استجابة فورية.

قاعدة عملية:

إذا كان الطلب لا يحتاج إجابة مباشرة للمستخدم، فكّر في Batch API أولًا.
Enter fullscreen mode Exit fullscreen mode

مثال قرار معماري:

function shouldUseBatch(job: {
  userWaiting: boolean;
  deadlineMinutes: number;
  itemCount: number;
}) {
  if (job.userWaiting) return false;
  if (job.deadlineMinutes >= 10) return true;
  if (job.itemCount > 100) return true;

  return false;
}
Enter fullscreen mode Exit fullscreen mode

إذا كان نصف إنفاقك الحالي يأتي من معالجة ليلية عبر نقطة النهاية المتزامنة، فإن نقلها إلى Batch API يخفض تكلفة هذا الجزء مباشرة بنسبة 50%.

الرافعة 4: اضبط effort و max_tokens واستخدم count_tokens

كل طلب يجب أن يكون له سقف تكلفة واضح. ركّز على ثلاثة إعدادات.

1. effort

المعامل:

output_config.effort
Enter fullscreen mode Exit fullscreen mode

يمكن أن يأخذ قيمًا مثل:

low
medium
high
xhigh
max
Enter fullscreen mode Exit fullscreen mode

كلما زاد الجهد، زادت رموز التفكير والإخراج. لا تستخدم high أو max كافتراض عام.

ابدأ بهذه السياسة:

function selectEffort(task: string) {
  if (task === "simple_json_extraction") return "low";
  if (task === "classification") return "low";
  if (task === "coding_fix") return "medium";
  if (task === "architecture_review") return "high";

  return "medium";
}
Enter fullscreen mode Exit fullscreen mode

اختبر خفض المستوى درجة أو درجتين، ثم قارن الجودة والتكلفة.

2. max_tokens

max_tokens لا يقلل تكلفة استجابة قصيرة أصلًا، لكنه يمنع الحالات الهاربة.

مثال:

{
  "max_tokens": 800
}
Enter fullscreen mode Exit fullscreen mode

استخدم حدودًا حسب نوع المهمة:

const MAX_TOKENS_BY_TASK = {
  classification: 50,
  json_extraction: 300,
  code_patch: 1200,
  long_explanation: 2500
};
Enter fullscreen mode Exit fullscreen mode

إذا كنت تتوقع JSON صغيرًا، لا تترك النموذج قادرًا على إنتاج 4000 رمز.

3. count_tokens

قبل إرسال طلب كبير، استخدم count_tokens لمعرفة عدد رموز الإدخال الفعلي.

لا تستخدم tiktoken لتقدير Claude. tiktoken خاص بـ OpenAI وقد يقلل تقدير رموز Claude بحوالي 15–20%.

استخدم count_tokens عندما:

  • لديك مستندات كبيرة.
  • الطلب قريب من حد ميزانية لكل استدعاء.
  • تريد رفض أو ضغط الطلب قبل إرساله.
  • تبني CI يمنع الموجهات الضخمة من الدخول للإنتاج.

مثال منطق:

const MAX_INPUT_TOKENS = 100_000;

async function guardPromptBeforeSend(request: unknown) {
  const tokenCount = await countClaudeTokens(request);

  if (tokenCount > MAX_INPUT_TOKENS) {
    throw new Error(`الطلب كبير جدًا: ${tokenCount} رمز إدخال`);
  }

  return request;
}
Enter fullscreen mode Exit fullscreen mode

الرافعة 5: قلّص السياق الذي تعيد إرساله

بما أن API عديمة الحالة، فإن حلقة الوكيل الطويلة تعيد إرسال السجل كاملًا في كل دور. بعد 20 أو 30 دورًا، يحتوي السجل غالبًا على:

  • نتائج أدوات قديمة.
  • ملفات قرأها النموذج ولم يعد يحتاجها.
  • مسارات استكشاف تم التخلي عنها.
  • محادثات وسيطة لا تؤثر على القرار الحالي.

هذا كله يستمر في الظهور كرموز إدخال مدفوعة.

استخدم ميزتين على جانب الخادم:

  • تحرير السياق Context editing عبر clear_tool_uses_20250919: يزيل نتائج الأدوات القديمة من السياق المعاد إرساله.
  • الضغط Compaction عبر compact_20260112: يلخص السجل القديم إلى تمثيل أقصر.

الميزة هنا أنك لا تحتاج إلى بناء ملخص يدويًا أو تقطيع مصفوفة الرسائل بنفسك.

بالنسبة لجلسات Claude Code الطويلة، راجع: نافذة رموز Claude Code وإعادة التعيينات.

القاعدة العملية:

لا تدفع لإعادة إرسال سياق لم يعد النموذج يحتاجه.
Enter fullscreen mode Exit fullscreen mode

المضي قدمًا: اختبار pxpipe لعرض السياق كصور

الرافعات السابقة تقلل الرموز أو تعيد تسعيرها. أما pxpipe فيتبع زاوية مختلفة: تحويل أجزاء ضخمة وثابتة من السياق إلى صور PNG مضغوطة، بحيث تُرمّز بتكلفة أقل.

ما هو pxpipe؟

pxpipe وكيل محلي مرخص MIT ومكتوب بـ TypeScript. تضعه بين عميلك وواجهة Anthropic API عبر ANTHROPIC_BASE_URL.

يشغّل محليًا، ويفحص الطلب قبل إرساله.

كيف يمكن أن يخفض التكلفة؟

النص الكثيف مكلف كرموز. يقوم pxpipe بتحويل أجزاء مثل:

  • موجه النظام الطويل.
  • وثائق الأدوات.
  • السجل القديم.
  • كتل مرجعية ضخمة.

إلى صور PNG قبل إرسالها.

حسب المشروع، المحتوى الكثيف قد يعطي تقريبًا:

3.1 حرف لكل رمز صورة
مقابل حوالي 1 حرف لكل رمز نص
Enter fullscreen mode Exit fullscreen mode

ويذكر مثالًا لموجه نظام مع وثائق أدوات بحوالي 48 ألف حرف ينتج تقريبًا:

2.7K رمز صورة
بدلًا من 25K رمز نص
Enter fullscreen mode Exit fullscreen mode

هذه أرقام المشروع نفسه، وليست ضمانًا على حركة مرورك.

التثبيت والتشغيل

شغّل الوكيل:

npx pxpipe-proxy
Enter fullscreen mode Exit fullscreen mode

سيعمل على:

127.0.0.1:47821
Enter fullscreen mode Exit fullscreen mode

ثم وجّه Claude Code إليه:

ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude
Enter fullscreen mode Exit fullscreen mode

دعم النماذج

افتراضيًا، يصوّر pxpipe الطلبات لـ:

claude-fable-5
GPT 5.6
Enter fullscreen mode Exit fullscreen mode

أما Opus 4.7/4.8 و GPT 5.5 فهي اختيارية، لأن المشروع يشير إلى أنها تقرأ السياق المصور بشكل أسوأ. يمكن تفعيلها عبر:

PXPIPE_MODELS=...
Enter fullscreen mode Exit fullscreen mode

أو من لوحة التحكم على عنوان الوكيل.

متى تختبر pxpipe؟

اختبره إذا كان سياقك:

  • كبيرًا جدًا.
  • ثابتًا نسبيًا.
  • كثيفًا بالنص.
  • لا يعتمد على رموز دقيقة يمكن أن تُقرأ خطأ من الصورة.

المقايضات

لا تعتبر التصوير توفيرًا مجانيًا دائمًا.

  1. قد يتعارض مع التخزين المؤقت للموجه

التخزين المؤقت يعتمد على مطابقة البايتات. التصوير يغيّر تمثيل الطلب، وقد يمنع استخدام بادئة مخزنة مؤقتًا.

اختبر الاثنين:

   prompt caching فقط
   pxpipe فقط
   prompt caching + pxpipe
Enter fullscreen mode Exit fullscreen mode

ثم قارن التكلفة والجودة.

  1. النموذج يقرأ السياق المصور عبر الرؤية

السلاسل الدقيقة مثل معرفات hex الطويلة أو الرموز البرمجية الحساسة قد تُقرأ بشكل خاطئ. والأسوأ أن الخطأ قد يكون صامتًا.

  1. هو وكيل طرف ثالث في مسار الطلبات

رغم أنه يعمل محليًا، فهو لا يزال يعترض حركة المرور. قيّمه أمنيًا قبل استخدامه في الإنتاج.

خفض رموز التطوير والاختبار أثناء البناء

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

  • اختبار شكل الطلب.
  • اختبار تحليل الاستجابة.
  • اختبار معالجة الأخطاء.
  • تشغيل CI.
  • إعادة محاولات فاشلة.
  • تجارب موجهات أولية.

هنا يفيد Apidog، لكن ضمن نطاق محدد: لا يخفض فاتورة Claude الإنتاجية، بل يقلل إنفاق التطوير والاختبار.

استخدم واجهة Anthropic وهمية في Apidog:

  1. عرّف عقد الطلب لنقطة Claude التي تستدعيها.
  2. عرّف شكل الاستجابة المتوقعة.
  3. أنشئ Mock API.
  4. وجّه اختباراتك وCI إلى الواجهة الوهمية.
  5. استخدم Claude الحقيقي فقط عندما تحتاج التحقق من جودة النموذج.

مثال عملي:

Development / CI  →  Apidog Mock API
Staging quality tests  →  Claude API
Production  →  Claude API
Enter fullscreen mode Exit fullscreen mode

بهذه الطريقة، تستطيع اختبار الاتصال، العقود، parsing، ومعالجة الأخطاء بدون استهلاك رموز مدفوعة في كل تكرار.

خطة تطبيق مختصرة

طبّق الرافعات بهذا الترتيب:

  1. فعّل التخزين المؤقت للبادئة الثابتة

    • موجه النظام.
    • الأدوات.
    • الوثائق.
    • تحقق من cache_read_input_tokens.
  2. وجّه الطلبات حسب المهمة

    • Haiku للمهام البسيطة.
    • Sonnet للحجم.
    • Opus لمعظم البرمجة والوكلاء.
    • Fable فقط عندما تحتاجه فعليًا.
  3. انقل المهام غير الفورية إلى Batch API

    • تقييمات.
    • استخراج بالجملة.
    • تصنيف.
    • معالجة ليلية.
  4. ضع سقفًا لكل طلب

    • اضبط effort.
    • اضبط max_tokens.
    • استخدم count_tokens.
  5. قلّص السجل المعاد إرساله

    • Context editing.
    • Compaction.
    • إزالة نتائج الأدوات القديمة.
  6. اختبر pxpipe فقط إذا كان سياقك مناسبًا

    • قارن الجودة والتكلفة.
    • لا تفترض أنه يتراكم مع prompt caching.
  7. استخدم Mock API أثناء التطوير

    • لا تجعل CI يحرق رموزًا حقيقية بلا حاجة.

ابدأ بالتخزين المؤقت وتوجيه النموذج، لأنهما غالبًا يعطيان أكبر خفض مباشر. بعد كل تغيير، قِس الفاتورة الفعلية بدل الاعتماد على التوقعات.

الأسئلة الشائعة

هل تكلفة الإدخال أم الإخراج أعلى؟

لكل رمز، الإخراج أغلى. لكن في أعباء عمل الوكلاء والبرمجة، الإدخال غالبًا هو الجزء الأكبر من الفاتورة لأنك تعيد إرسال السجل كاملًا في كل طلب.

هل prompt caching يوفر أكثر أم Batch API؟

يعتمد على نمط العمل. التخزين المؤقت قد يوفر حتى 90% على البادئة المتكررة في المرور التفاعلي. Batch API يخفض 50% من كل الرموز، لكنه مناسب فقط للعمل غير المتزامن. غالبًا ستستخدم الاثنين معًا.

هل أجعل Fable 5 هو الافتراضي؟

لا. Fable 5 يكلف ضعف Opus 4.8. استخدمه فقط عندما تؤثر قدرته الإضافية على النتيجة. لمعظم البرمجة والوكلاء، Opus 4.8 خيار افتراضي أفضل تكلفة.

هل يعمل pxpipe بسلاسة مع prompt caching؟

ليس دائمًا. التصوير يغيّر بايتات الطلب، والتخزين المؤقت يعتمد على مطابقة البادئة. اختبر الاثنين على حركة مرورك الفعلية.

هل يقلل Apidog فاتورة Claude الإنتاجية؟

لا. Apidog يساعدك على إنشاء Mock API لاختبارات التطوير وCI، بحيث لا تستهلك رموزًا مدفوعة أثناء بناء التكامل. الإنتاج لا يزال يستخدم Claude API الحقيقي.

Top comments (0)