هزینه 1 میلیون توکن در Claude چقدر است؟
هزینه 1 میلیون توکن در مدلهای Claude به نوع ورودی و خروجی بستگی دارد. قیمت خروجی 5 برابر ورودی است. در این مطلب نحوه محاسبه دقیق صورتحساب API را بررسی میکنیم.
هزینه 1 میلیون توکن در Claude چقدر است؟
1 میلیون توکن به معنای یک میلیون توکن است و واحدی است که قیمتهای مدلهای Claude API (رابط برنامهنویسی اپلیکیشن) بر اساس آن اعلام میشود. قیمت ثابتی برای آن وجود ندارد، زیرا ورودی و خروجی با نرخهای متفاوتی محاسبه میشوند و هر مدل نرخهای خاص خود را دارد. مدل Claude Haiku 5.5 دارای دو جفت نرخ است: یکی برای پرامپتهای تا 100,000 توکن و دیگری با نرخ بالاتر برای پرامپتهای بیش از آن. تا اکتبر 2026، هزینه یک میلیون توکن ورودی در Claude Haiku 4.5 برابر با $1، در Claude Sonnet 5 برابر با $2 و در Claude Opus 5 برابر با $5 است.
خروجی بخش گرانتر است. در تمام مدلهای فعلی، نرخ خروجی پنج برابر نرخ ورودی است، بنابراین نسبت بین این دو بیش از رقم کلی، تعیینکننده صورتحساب شماست. اپلیکیشنی که اسناد طولانی ارسال میکند و پاسخهای کوتاه میگیرد، رفتار بسیار متفاوتی نسبت به اپلیکیشنی دارد که از یک پرامپت کوتاه، پاسخهای طولانی مینویسد.
این صفحه درباره اقتصاد واحدهاست: هزینه هر توکن چقدر است و چگونه پیش از ساخت، صورتحساب را تخمین بزنیم. برای اطلاع از اینکه توکنها هنگام کار دقیقاً کجا میروند، جایی که توکنها در یک نشست Claude Code میروند را مطالعه کنید.
یک میلیون توکن چه حجمی دارد
توکن بخشی از متن است که مدل آن را میخواند یا مینویسد. واژهنامه Anthropic هر توکن را تقریباً معادل 3.5 کاراکتر انگلیسی در مدلهای پیش از Claude 4.7 در نظر میگیرد. طبق بررسی کلی مدلهای Anthropic، یک میلیون توکن در آن مدلها حدود 750,000 کلمه را در خود جای میدهد؛ با احتساب 3.5 کاراکتر برای هر توکن، این مقدار تقریباً 3.5 میلیون کاراکتر یا حدود 3.5 مگابایت متن ساده انگلیسی است. در توکنایزر جدیدی که با Claude Opus 4.7 معرفی شد، همان یک میلیون توکن حدود 555,000 کلمه یا تقریباً 2.5 میلیون کاراکتر را شامل میشود.
برآوردهای منتشرشده برای ورودیهای رایج، درک بهتری از این مقیاس به دست میدهند.
دادههای پشت این نمودار
[
{
"label": "Average web page (10 kB)",
"tokens": "2,500"
},
{
"label": "Documentation page (100 kB)",
"tokens": "25,000"
},
{
"label": "Research paper PDF (500 kB)",
"tokens": "125,000"
}
]با این نرخ، 1 میلیون توکن تقریباً معادل 400 صفحه وب معمولی است که یکبار خوانده شود، یا هشت مقاله پژوهشی با همان اندازه. این مقدار برابر با یکبار بررسی یک پایگاه کد (codebase) با اندازه متوسط یا یک ماه استفاده سبک از چت توسط یک نفر است.
همه این موارد را به عنوان یک تخمین در نظر بگیرید. کد، JSON و متنهایی به زبانهایی غیر از انگلیسی، کلمات کمتری را در هر توکن جای میدهند، بنابراین آن تعداد کلمات، خوشبینانهترین حالت است. یک عامل دیگر نیز این تعداد را تغییر میدهد: Claude Opus 4.7 و نسخههای پس از آن، شامل Opus 5 و Sonnet 5، از توکنایزر جدیدی استفاده میکنند که برای متن یکسان، تقریباً 30 درصد توکن بیشتری نسبت به Sonnet 4.6 و نسخههای پیش از آن تولید میکند. مدل Claude Haiku 4.5 از توکنایزر قدیمیتر استفاده میکند. بنابراین، تعدادی که با Haiku 4.5 اندازهگیری کردهاید، برای ورودی یکسان در Sonnet 5 کمتر از مقدار واقعی نشان داده میشود؛ این یعنی مقایسه مستقیم قیمت به ازای هر میلیون توکن در این دو مدل، منصفانه نیست. پیش از تصمیمگیری، یک پرامپت یکسان را با هر دو مدل بسنجید.
هزینه Claude به ازای هر میلیون توکن
دادههای پشت این نمودار
[
{
"label": "Haiku 4.5",
"input_usd": 1,
"output_usd": 5
},
{
"label": "Sonnet 5",
"input_usd": 2,
"output_usd": 10
},
{
"label": "Sonnet 4.6",
"input_usd": 3,
"output_usd": 15
},
{
"label": "Opus 5",
"input_usd": 5,
"output_usd": 25
}
]مدل Claude Sonnet 5 با قیمت 2 دلار برای ورودی و 10 دلار برای خروجی عرضه میشود. Anthropic ابتدا این قیمت را به عنوان نرخ مقدماتی تا تاریخ 31 August 2026 اعلام کرد، اما سپس آن را به قیمت استاندارد تبدیل کرده و افزایش قیمت برنامهریزیشده به 3 دلار و 15 دلار را لغو نمود. مدل Claude Opus 5 با قیمت 5 دلار برای ورودی و 25 دلار برای خروجی قیمتگذاری شده است. مدلهای Fable کاملاً در سطحی بالاتر قرار دارند: Claude Fable 5 و مدل جدیدتر Claude Fable 5.1 هر دو با قیمت 10 دلار برای ورودی و 50 دلار برای خروجی لیست شدهاند، بنابراین اینکه آیا پرداخت این نرخها ارزشش را دارد یا خیر به نوع وظایفی بستگی دارد که به آن محول میکنید.
مجموعه فعلی مدلهای Anthropic جدیدتر از مدلهایی است که قیمت آنها در این صفحه درج شده است. مدل Claude Opus 5.5 با قیمت 4 دلار برای ورودی و 20 دلار برای خروجی، Claude Sonnet 5.5 با قیمت 2 دلار برای ورودی و 10 دلار برای خروجی، و Claude Haiku 5.5 با قیمت پایه 0.10 دلار برای ورودی و 0.50 دلار برای خروجی لیست شدهاند. مدلهای Opus 5، Sonnet 5، Haiku 4.5 و Fable 5 اکنون به عنوان مدلهای قدیمی (legacy) شناخته میشوند که همچنان در دسترس هستند، بنابراین مثالهای عملی زیر همچنان طبق متن اجرا میشوند. هزینه Haiku 5.5 و جایگاه آن به بررسی ارزانترین مدلهای جدید میپردازد.
نرخها تغییر میکنند. تمام ارقام موجود در این صفحه را به عنوان مثالهای عملی مربوط به تاریخ October 2026 در نظر بگیرید و پیش از تصویب بودجه، اعداد فعلی را در صفحه رسمی قیمتگذاری تأیید کنید.
این نرخها نشاندهنده هزینه Claude هستند، اما مشخص نمیکنند که آیا این مدل گزینه ارزانتری برای حجم کاری شماست یا خیر؛ سه وظیفه قیمتگذاریشده روی Claude و ChatGPT نشان میدهد که هر API در چه مواردی عملکرد بهتری دارد.
یک مورد وجود دارد که نرخ را تغییر نمیدهد و آن طول کانتکست (context length) است، البته با یک استثنا. در مدلهای Claude 4.6 و نسخههای بعد از آن، به جز Claude Haiku 5.5، کل پنجره کانتکست 1 میلیون توکنی با قیمت استاندارد محاسبه میشود؛ بنابراین هزینه یک درخواست 900,000 توکنی به ازای هر توکن، مشابه یک درخواست 9,000 توکنی است. یک پرامپت طولانی هزینه بیشتری دارد چون تعداد توکنهای آن بیشتر است و نرخ جداگانهای برای کانتکست طولانی اعمال نمیشود. قیمتگذاری Claude Haiku 5.5 بر اساس طول پرامپت متفاوت است: درخواستی که پرامپت آن بیش از 100,000 توکن باشد، به جای 0.10 دلار و 0.50 دلار، مشمول نرخ 0.50 دلار برای ورودی و 2.50 دلار برای خروجی به ازای هر میلیون توکن میشود و عملیات خواندن و نوشتن در کش (cache) نیز در این آستانه محاسبه میگردند.
محاسباتی که پس از تغییر قیمت معتبر باقی میمانند
هر صورتحساب شامل دو ضرب و یک جمع است.
cost = (input_tokens / 1,000,000) * input_rate
+ (output_tokens / 1,000,000) * output_rateبه صورت کدی که میتوانید اجرا کنید:
INPUT_RATE = 2.00 # USD per million input tokens, Sonnet 5, October 2026
OUTPUT_RATE = 10.00 # USD per million output tokens
def cost(input_tokens, output_tokens):
return (input_tokens * INPUT_RATE + output_tokens * OUTPUT_RATE) / 1_000_000
print(f"{cost(4300, 400):.4f}")این کد مقدار 0.0126 را چاپ میکند. درخواستی که 4300 توکن ورودی ارسال کرده و 400 توکن خروجی دریافت میکند، در مدل Sonnet 5 حدود 1.3 سنت هزینه دارد. هر دو نرخ را در یک جای کد خود نگه دارید. هنگامی که قیمت تغییر میکند، فقط دو خط را ویرایش میکنید و تمام برآوردهای سیستم شما با آن بهروز میشوند.
برآورد عملی برای یک برنامه واقعی
یک دستیار پشتیبانی را در نظر بگیرید. پرامپت سیستم و مستندات محصول آن در مجموع 4000 توکن هستند. از آنجا که Messages API بدون وضعیت (stateless) است و مدل هیچ چیزی را بین فراخوانیها به خاطر نمیسپارد، این مقدار در هر درخواست ارسال میشود. سوال کاربر حدود 300 توکن اضافه میکند. پاسخ نیز حدود 400 توکن است. این یعنی 4300 توکن ورودی و 400 توکن خروجی در هر درخواست.
یک میلیون توکن ورودی، هزینه حدود 232 درخواست با این مشخصات را پوشش میدهد. با 1000 درخواست در روز، برنامه روزانه 4.3 میلیون توکن ورودی مصرف میکند، بنابراین "1 میلیون توکن" کمتر از شش ساعت ترافیک را پوشش میدهد.
دادههای پشت این نمودار
[
{
"label": "Opus 5, list rates",
"cost_per_1k_usd": "31.50"
},
{
"label": "Sonnet 5, list rates",
"cost_per_1k_usd": "12.60"
},
{
"label": "Sonnet 5, Batch API",
"cost_per_1k_usd": "6.30"
},
{
"label": "Haiku 4.5, list rates",
"cost_per_1k_usd": "6.30"
},
{
"label": "Sonnet 5, warm prompt cache",
"cost_per_1k_usd": "5.40"
}
]با استفاده از Claude Opus 5، هزینه این ترافیک به ازای هر 1000 درخواست برابر با $31.50 است. در Sonnet 5 این هزینه $12.60 است. کاهش به Claude Haiku 4.5 هزینه را به $6.30 میرساند و استفاده از prompt cache فعال در Sonnet 5 هزینه را حتی به $5.40 کاهش میدهد.
این ارقام را در 30 ضرب کنید تا هزینه یک ماه ترافیک به دست آید. هزینه Sonnet 5 با نرخهای لیست حدود 378 دلار در ماه است. همان برنامه با کش فعال حدود 162 دلار هزینه دارد. انتخاب مدل و تصمیم شما برای استفاده از کش، هر کدام بیش از هر نرخی که در این حجم از ترافیک مذاکره کنید، اهمیت دارند. اینکه کدام مدل را اجرا کنید موضوعی جداگانه است و ارزانترین مدلی که از ارزیابیهای شما سربلند بیرون بیاید، برنده است: انتخاب بین Opus، Sonnet و Haiku نحوه تست صحیح این موضوع را پوشش میدهد.
کش کردن پرامپت بخشهای تکراری را حذف میکند
آن پیشوند 4,000 توکنی در هر درخواست یکسان است و شما هر بار هزینه کامل ورودی را برای آن میپردازید. کش کردن پرامپت (Prompt caching)، پیشوند پردازششده را ذخیره میکند و برای استفاده مجدد از آن، نرخ کاهشیافتهای دریافت میکند.
در مدلهای موجود در جدول قیمت و مثالهای این صفحه (Haiku 4.5، Sonnet 5، Sonnet 4.6 و Opus 5) و همچنین در Fable 5، هزینه خواندن از کش 0.1 برابر نرخ پایه ورودی است. برخی مدلهای جدیدتر هزینه کمتری برای خواندن دریافت میکنند: Opus 5.5 و Sonnet 5.5 هزینه 0.05 برابر، و Fable 5.1 و Mythos 5.1 هزینه 0.025 برابر را اعمال میکنند. نوشتن در کش برای طول عمر 5 دقیقه، 1.25 برابر نرخ پایه و برای طول عمر 1 ساعت، 2 برابر نرخ پایه هزینه دارد. بنابراین در مدلهایی با ضریب 0.1، کش 5 دقیقهای پس از یکبار خواندن هزینهاش را جبران میکند، زیرا هزینه نوشتن 0.25 اضافه است در حالی که هر بار خواندن 0.9 صرفهجویی ایجاد میکند. کش 1 ساعته برای رسیدن به نقطه سربهسر به دو بار خواندن نیاز دارد.
سادهترین راه برای فعالسازی آن، استفاده از یک فیلد واحد در سطح بالا است:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"max_tokens": 1024,
"cache_control": {"type": "ephemeral"},
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "What are the key themes in Pride and Prejudice?"}
]
}'سپس بلوک usage را که بازگردانده میشود، بخوانید:
{
"usage": {
"cache_creation_input_tokens": 5120,
"cache_read_input_tokens": 1800,
"input_tokens": 50,
"output_tokens": 503
}
}آن سه شمارنده ورودی با سه نرخ متفاوت محاسبه میشوند و مجموع آنها حجم واقعی ورودی شما را تشکیل میدهد: total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens. برآورد هزینهای که فقط input_tokens را میخواند، پس از فعال شدن کشگذاری بهشدت اشتباه خواهد بود.
دو عامل مانع از صرفه اقتصادی کش میشوند و هر دو بدون نمایش خطا شکست میخورند.
پیشوند باید از نظر بایت یکسان باشد. جستجوی کش بر اساس تطابق پیشوند است، بنابراین یک برچسب زمانی (timestamp) یا نام کاربر در ابتدای پرامپت سیستم، آن را در هر درخواست تغییر میدهد. در این صورت شما هر بار 1.25 برابر ورودی پایه را میپردازید و هرگز از کش استفاده نمیکنید. نشانه این وضعیت این است که cache_creation_input_tokens بالا میماند در حالی که cache_read_input_tokens صفر باقی میماند. cache_control را در آخرین بلوکی قرار دهید که محتوای آن در درخواستهای مختلف یکسان است و هر چیزی که تغییر میکند را پس از آن قرار دهید. تغییر تعاریف tools، کل کش زیر آنها را باطل میکند، زیرا فرآیند ابطال به ترتیب از ابزارها (tools)، سپس سیستم و در نهایت پیامها (messages) انجام میشود.
پیشوند باید به اندازه کافی طولانی باشد. حداقل طول قابل کش شدن 512 توکن در Opus 5، 1,024 توکن در Sonnet 5 و 4,096 توکن در Haiku 4.5 است. پرامپت کوتاهتر کش نمیشود و هیچ خطایی نیز بازگردانده نمیشود. پیشوند 4,000 توکنی در مثال بالا در Sonnet 5 کش میشود اما در Haiku 4.5 کش نمیشود، زیرا 4,000 کمتر از حد مجاز آن مدل است. وقتی هر دو شمارنده 0 را نشان میدهند، یعنی چیزی کش نشده است.
پردازش دستهای نرخ را نصف میکند
Batch API درخواستها را بهصورت ناهمگام (asynchronous) با 50 درصد تخفیف در ورودی و خروجی پردازش میکند. در مثال بالا، این موضوع هزینه $12.60 برای هر 1,000 درخواست را به $6.30 کاهش میدهد. این تخفیف با قابلیت prompt caching نیز ترکیب میشود، بنابراین یک job دستهایِ کششده، ارزانترین روش برای اجرای کارهای حجیم است.
آنچه در این روش از دست میدهید، تأخیر (latency) است؛ به همین دلیل پردازش دستهای برای هر کاری که کاربر منتظر پاسخ آن است، مناسب نیست. این روش برای طبقهبندیهای شبانه و تکمیل دادههای اسناد (backfill) مناسب است.
چرا هزینههای چت در طول یک گفتگو افزایش مییابد
از آنجا که API هیچ وضعیتی (state) را ذخیره نمیکند، کلاینت شما در هر مرحله کل گفتگو را مجدداً ارسال میکند. بنابراین، میزان مصرف توکن در یک چت به جای رشد خطی، با توان دوم طول گفتگو افزایش مییابد.
مراحل گفتگو را با میانگین 500 توکن در نظر بگیرید. مرحله 1 شامل 500 توکن ورودی است. مرحله 2 شامل 1,000 توکن است. مرحله 20 شامل 10,000 توکن خواهد بود. با استفاده از فرمول n(n+1)/2، یک گفتگوی 20 مرحلهای حدود 105,000 توکن ورودی ارسال کرده است، در حالی که طول خودِ متن گفتگو تنها 10,000 توکن است.
به همین دلیل است که هزینه یک قابلیت چت بیش از آن چیزی است که از روی متن آن به نظر میرسد، و به همین دلیل است که کش کردن پیشوند (prefix) ثابت یا خلاصهسازی مراحل قدیمیتر در رشتههای طولانی گفتگو، از نظر اقتصادی بهصرفه است. عاملی (agent) که روی فراخوانی ابزارها (tool calls) حلقه میزند نیز همین الگو را دارد، با این تفاوت که وضعیت بدتر است: هر نتیجهٔ ابزار در تاریخچه باقی میماند و در هر مرحلهٔ بعدی مجدداً ارسال میشود. تعیین سقف هزینه برای عاملی که خودتان اجرا میکنید در اینجا اهمیت حیاتی دارد، زیرا این رشد بهصورت خودکار رخ میدهد و کسی بر آن نظارت نمیکند.
تعداد توکنها را پیش از حدسزدن بشمارید
محاسبه تعداد توکنها را بر اساس تعداد کلمات انجام ندهید. API این کار را بهصورت رایگان برای شما انجام میدهد و محدودیت نرخ آن از محدودیت ایجاد پیام جداست.
curl https://api.anthropic.com/v1/messages/count_tokens \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"system": "You are a scientist",
"messages": [{
"role": "user",
"content": "Hello, Claude"
}]
}'پاسخ شامل یک فیلد است:
{ "input_tokens": 14 }System prompt و تعاریف ابزارهای خود را به همراه یک پیام نمونه از کاربر به آن بدهید، سپس عدد بهدستآمده را در تابع هزینه بالا قرار دهید. این endpoint همان بدنه درخواست پیام را میپذیرد، بنابراین تصاویر و فایلهای PDF که بهصورت base64 ارسال میشوند نیز بهدرستی شمارش خواهند شد. این ابزار، ابزارهای سمت سرور مانند جستجوی وب و دریافت محتوای وب، و همچنین تصاویر یا اسنادی که با URL یا ارجاع فایل ارسال شدهاند را نمیپذیرد. دو نکته مهم وجود دارد. این شمارش یک تخمین است و ممکن است تفاوت جزئی با رقم نهایی صورتحساب داشته باشد. همچنین این مقدار با توکنایزر مدلی که ارسال میکنید اندازهگیری میشود، بنابراین مدلی را ارسال کنید که واقعاً قصد اجرای آن را دارید.
تعداد توکنهای خروجی را نمیتوان از پیش شمارش کرد، زیرا هنوز تولید نشدهاند. آنها را با max_tokens محدود کنید و سپس توزیع واقعی را از usage.output_tokens روی ترافیک زنده اندازهگیری کنید.
چه موارد دیگری در صورتحساب لحاظ میشود
بخش عمده صورتحساب مربوط به توکنها است. چند مورد دیگر نیز وجود دارند که توکن محسوب نمیشوند و اغلب باعث تعجب کاربران میشوند.
- تعاریف ابزارها (Tool definitions) در هر درخواست به عنوان توکن ورودی محاسبه میشوند. تنها پرامپت سیستم برای استفاده از ابزار در Opus 5، پیش از احتساب اسکیماهای شخصی شما، بین 286 تا 406 توکن اضافه میکند. ده توصیف مفصل برای ابزارها میتواند حجم یک پرامپت کوچک را دو برابر کند.
- هزینه جستجوی وب (Web search) به ازای هر 1,000 جستجو 10 دلار است؛ این هزینه علاوه بر توکنهایی است که نتایج پس از ورود به کانتکست مصرف میکنند.
- واکشی وب (Web fetch) هزینه جداگانهای ندارد، اما صفحه واکشیشده به توکنهای ورودی تبدیل میشود. یک صفحه مستندات 100 کیلوبایتی تقریباً معادل 25,000 توکن است.
- درخواست استنتاج (Inference) صرفاً در ایالات متحده با استفاده از
inference_geoدر Claude 4.6 و نسخههای پس از آن، ضریب 1.1 را برای تمامی دستههای توکن، شامل خواندن و نوشتن در کش (cache)، اعمال میکند.
اینکه آیا خرید API انتخاب درستی است یا خیر، به حجم استفاده شما بستگی دارد. رسیدن به سقف استفاده در یک طرح اشتراکی معمولاً نقطه شروع این پرسش است و مسیرهای خروج از محدودیت از انتظار برای پایان بازه زمانی تا انتقال آن حجم کاری به APIهای مبتنی بر پرداخت متغیر (metered) متفاوت است. در سطوح پایین استفاده، طرحهای ماهانه با قیمت ثابت بهصرفهتر هستند و مقایسه API با اشتراک Claude این بررسی را با اعداد واقعی انجام میدهد.
FAQ
هزینه 1 میلیون توکن در Claude چقدر است؟
این به مدل و اینکه توکنها ورودی باشند یا خروجی بستگی دارد. تا اکتبر 2026، هزینه یک میلیون توکن ورودی در Claude Haiku 4.5 برابر با $1، در Claude Sonnet 5 برابر با $2 و در Claude Opus 5 برابر با $5 است. مدل جدیدتر Claude Haiku 5.5 برای پرامپتهای تا 100,000 توکن با قیمت $0.10 به ازای هر میلیون توکن ورودی شروع میشود و برای بیش از آن $0.50 دریافت میکند. هزینه خروجی در هر یک از این مدلها پنج برابر نرخ ورودی است. نرخها تغییر میکنند، بنابراین پیش از اختصاص بودجه، آنها را در صفحه رسمی قیمتگذاری تأیید کنید.
آیا 1 میلیون توکن با 1 میلیون کلمه برابر است؟
خیر. در مدلهای پیش از Claude Opus 4.7، شرکت Anthropic هر توکن را تقریباً معادل 3.5 کاراکتر انگلیسی در نظر میگرفت و اعلام میکرد که یک میلیون توکن شامل حدود 750,000 کلمه است. در توکنایزر جدیدتری که Claude Opus 4.7 و نسخههای بعد از آن استفاده میکنند، یک میلیون توکن شامل حدود 555,000 کلمه است، زیرا آن توکنایزر برای متن یکسان، حدود 30 درصد توکن بیشتری نسبت به Claude Sonnet 4.6 و نسخههای قدیمیتر تولید میکند. این نسبتها فقط یک راهنما هستند. کد، JSON و زبانهای غیر از انگلیسی توکن بیشتری به ازای هر کلمه مصرف میکنند و شمارشها بین نسلهای مختلف مدل قابل تعمیم نیستند. با استفاده از اندپوینت رایگان /v1/messages/count_tokens و ارسال مدلی که قصد استفاده از آن را دارید، اندازهگیری کنید.
آیا کش کردن پرامپت همیشه باعث صرفهجویی در هزینه میشود؟
خیر. نوشتن در کش 5 دقیقهای 1.25 برابر نرخ پایه ورودی هزینه دارد، بنابراین پیشوندی که نوشته شود و هرگز خوانده نشود، 25 درصد گرانتر از ارسال عادی آن است. کش از اولین خواندن، هزینه خود را جبران میکند. این فرآیند به دو صورت شکست میخورد که هر دو بدون اعلام خطا هستند. اگر پیشوند کششده بین درخواستها تغییر کند، جستجو هرگز مطابقت پیدا نمیکند، زیرا تطابق دقیق پیشوند لازم است. اگر پیشوند کوتاهتر از حداقل طول قابل کش شدن مدل باشد (که 1,024 توکن در Sonnet 5 و 4,096 توکن در Haiku 4.5 است)، چیزی کش نمیشود و هیچ خطایی بازگردانده نمیشود. وقتی cache_creation_input_tokens و cache_read_input_tokens هر دو 0 را نشان میدهند، کش هیچ کاری انجام نمیدهد.
چرا صورتحساب من سریعتر از تعداد پیامهایم رشد کرد؟
زیرا کل گفتگو در هر نوبت دوباره ارسال میشود. Messages API هیچ حالتی (state) را نگه نمیدارد، بنابراین نوبت 20 یک چت، تمام 19 نوبت قبلی را دوباره به عنوان ورودی حمل میکند. با میانگین 500 توکن در هر نوبت، یک گفتگوی 20 نوبتی حدود 105,000 توکن ورودی ارسال میکند در حالی که طول متن گفتگو تنها 10,000 توکن است. حلقههای عامل (Agent loops) نیز به همین شکل عمل میکنند، زیرا نتیجه هر ابزار در تاریخچه باقی میماند. پیشوند ثابت را کش کنید یا نوبتهای قدیمیتر را خلاصه کرده و از درخواست حذف کنید.