بايتات، لا توكنز
يختلف حد التوكنات عن حد حجم الطلب. يظهر تجاوز نافذة السياق بعد أن تقبل الخدمة الطلب وتفحص محتواه، أما الخطأ 413 فيظهر عند مقارنة حجم جسم الطلب بالحد المسموح لكل نقطة وصول. في واجهة Messages المباشرة يبلغ الحد 32 ميغابايت، وقد ترفض Cloudflare الطلب قبل وصوله إلى خوادم Anthropic.
قد يتسع النص داخل نافذة السياق ولكن يتجاوز الطلب حد الميغابايت، لأن المقياسين مختلفان. ويظهر ذلك غالباً مع المرفقات؛ فترميز الملفات بصيغة base64 يزيد حجمها بنحو الثلث، وقد تتجاوز مجموعة صور مع سجل محادثة طويل الحد رغم أن عدد التوكنات مقبول.
الحد حسب نقطة الوصول
| النقطة | أقصى حجم للطلب |
|---|---|
| Messages API | 32 ميغابايت |
| Token Counting API | 32 ميغابايت |
| Batch API | 256 ميغابايت |
| Files API | 500 ميغابايت |
تستخدم واجهة عدّ التوكنات حد الحجم نفسه الخاص بـMessages، ولذلك لا يمكن إرسال طلب ضخم إليها لمجرد قياسه. احسب حجم جسم الطلب في تطبيقك قبل الإرسال.
محتوى الرد
{
"type": "error",
"error": {
"type": "request_too_large",
"message": "Request exceeds the maximum allowed number of bytes."
},
"request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}
المظروف نفسه لكل خطأ من Anthropic: فرّع بناءً على حقل type، وفي كود الـ SDK التقط صنف الاستثناء المعنون للحالة بدل مطابقة نص الرسالة. تحمل الردود ترويسة request-id مسبوقة بـ req_ تكشفها الـ SDKs؛ اقتبسها إن تحوّل الإخفاق إلى محادثة دعم.
قلّص أو انقل
يبدأ الحل بقياس لن يفعله الـ SDK نيابةً عنك، فمكتبات العميل ترسل ما تسلّمها إياه. وتحسم دالة واحدة في غلافك الأمر:
# Python: قِس الجسم قبل أن تفعل الحافة
import json
CAP_MB = 32 # سقف Messages API، بالبايتات لا التوكنز
def body_size_mb(payload: dict) -> float:
return len(json.dumps(payload).encode("utf-8")) / 1_048_576
size = body_size_mb(payload)
if size >= CAP_MB:
# المتهم المعتاد: صور base64 مضمّنة داخل كتل المحتوى
reroute(payload) # الأصول إلى Files API، والدفعات إلى Batch
حين يعود الرقم كبيراً، يكون المتهم غالباً وسائط مضمّنة، وخريطة النقل تتبع الجدول أعلاه. الأصول الكبيرة مكانها Files API بسقفه البالغ 500 ميغابايت، تُرفع مرة وتُشار إليها من الرسالة بدل لصقها فيها. والمهام بالدفعات مكانها Batch API، الذي يأخذ 256 ميغابايت لكل طلب ويعمل بخصم 50% على تسعير Claude القياسي. توجّه وثائق Anthropic أيضاً العمل الطويل، خاصةً ما يتجاوز 10 دقائق، نحو البث أو Batch API بدل استدعاء متزامن واحد ضخم.
إن كان إخفاقك بشكل توكنز لا بشكل بايتات، فتلك صفحة أخرى: الطلب اتّسع في السلك لكنه فاض نافذة النموذج. تفصيل context_length_exceeded يغطي خطة جانب التوكنز، ومقارنة نوافذ السياق تُظهر أي النماذج يمنحك متّسعاً يُغنيك عن الاقتطاع.