Cost & Latency Math
Day 21-22-এ tool আর guardrail বানিয়েছ। আজ (Day 23) সেই সবকিছুর দাম আর গতির অঙ্ক — token, cost formula, model tier, latency, আর prompt caching।
- •Token-ই সব খরচের একক — input + output, কীভাবে আনুমানিক গোনা যায়।
- •খরচের সূত্র: cost = (in×inPrice + out×outPrice) ÷ 1M; output ≈ ৫× দামি।
- •Model tier (Opus/Sonnet/Haiku) — দাম বনাম গতি, কখন কোনটা (routing)।
- •Latency-র আসল lever output length — কেন, আর streaming কী করে।
- •Prompt caching — stable prefix ৯০% সস্তা; কখন কাজে লাগে।
- •Cost levers একসাথে: ঠিক model + ছোট output + caching + batch + count_tokens।
- •Day 2 — tokenization (token কী, কেন সংখ্যা/script-এ তারতম্য)।
- •Day 21 — single-tool prompt (system prompt + tools সবই token খায়)।
- •Day 22 — failure modes (infinite loop কেন bill বাড়ায়, এখানে সংখ্যায়)।
Tokens Are The Unit
API-তে সবকিছুর দাম token-এ — input আর output, দুটোই।
Day 21-22-এ tool wire করেছ, guardrail দিয়ে agent-কে safe রেখেছ। এবার bill আসে, আর কিছু উত্তর ধীর লাগে। আজ (Day 23) সেই অঙ্কটা শিখবে — API-তে সবকিছুর দাম আর গতির একক token।
Tokens are the uniteverything is metered in tokens
API-তে সবকিছুর দাম token-এ — input (system prompt + tools + তোমার message + image সব) আর output, দুটোই। মোটামুটি ইংরেজিতে ~৪ অক্ষর = ১ token। পাঠানোর আগে `count_tokens` দিয়ে মেপে নিতে পারো (free)।
Token না বুঝলে খরচ বা context window কোনোটাই হিসাব করতে পারবে না। আর এই audience-এর জন্য বিশেষ: একই অর্থের বাংলা ইংরেজির চেয়ে বেশি token খায় — তাই prompt ইংরেজিতে লেখা মানে সস্তাও। রাফির system prompt যত বড়, প্রতি call তত দামি।
The Cost Formula
cost = (in×inPrice + out×outPrice) ÷ 1M — output সাধারণত ~৫× দামি।
Token বোঝা হলে এবার আসল অঙ্ক — একটা call-এর খরচ কীভাবে বের করবে। একটা সূত্রেই যেকোনো feature-এর খরচ আগে থেকে আন্দাজ করা যায়।
The cost formulaoutput is ~5× the price of input
খরচ = (input_tokens × input_price + output_tokens × output_price) ÷ ১,০০০,০০০। মূল কথা: output সাধারণত input-এর প্রায় ৫× দামি (Opus: $5 input, $25 output per million)। তাই লম্বা উত্তর শুধু ধীর না, দামিও।
এই একটা সূত্র জানলে যেকোনো feature-এর খরচ আগেই আন্দাজ করতে পারবে — "হাজারটা invoice process করতে কত লাগবে?" output ছোট রাখা ("answer in 2 sentences") সবচেয়ে সহজ ও সরাসরি খরচ-কমানোর উপায়।
Model Tiers & Routing
Haiku সস্তা-দ্রুত, Opus চৌকস-দামি — কাজের সাথে model মেলাও।
সবচেয়ে বড় model সবসময় সেরা পছন্দ না। সহজ কাজে সস্তা model পাঠানো — আর কঠিন কাজে দামি model — বিল নিয়ন্ত্রণের প্রথম lever।
Model tier routingHaiku cheap+fast, Opus smart
তিন স্তর: Haiku ($1/$5) — সস্তা ও দ্রুত; Sonnet ($3/$15) — ভারসাম্য; Opus ($5/$25) — সবচেয়ে চৌকস কিন্তু দামি ও ধীর। সহজ কাজে Haiku, কঠিনে Opus — সহজ turn সস্তা model-এ, কঠিন turn দামি model-এ পাঠানোকে বলে model routing।
বড় model সবসময় ভালো পছন্দ না। রাফির invoice থেকে total বের করা সহজ — Haiku-তেই নির্ভুল, খরচ এক-পঞ্চমাংশ। দামি model শুধু সেখানে যেখানে সত্যিই reasoning লাগে। এটাই বড় scale-এ bill নিয়ন্ত্রণের প্রথম lever।
Output Drives Latency
Output এক token করে তৈরি হয় — তাই output length-ই main lever।
উত্তর ধীর লাগলে দোষটা প্রায়ই model-এর না — output length-এর। এই ধাপে দেখবে latency ঠিক কোথা থেকে আসে, আর কমানোর সবচেয়ে সরাসরি উপায় কী।
Output length leverone token at a time + TTFT + streaming
Model output এক token করে তৈরি করে — তাই উত্তর যত লম্বা, তত বেশি সময়। দুটো মাপ: TTFT (প্রথম token আসতে কত সময়) আর মোট সময়। streaming দিলে ব্যবহারকারী প্রথম শব্দ সাথে সাথে দেখে — মোট সময় একই, কিন্তু perceived latency অনেক কম।
ধীর লাগলে দোষটা প্রায়ই model-এর না, output length-এর। "explain in detail" সরিয়ে "answer in 2 sentences" দিলে দ্রুত + সস্তা দুটোই। max_tokens দিয়ে output bound করা যায়, আর streaming UX বাঁচায়।
Prompt Caching & The Cost Levers
Stable prefix cache করলে ৯০% সস্তা — আর বাকি lever-গুলো একসাথে দেখো।
রাফির agent-এ একই বড় system prompt আর tool list প্রতি turn-এ যায়। সেই stable অংশটা cache করলে বিশাল সাশ্রয় — আর এটাই আজকের শেষ, সবচেয়ে বড় lever। শেষে সবগুলো lever একসাথে দেখে নাও।
Prompt cachingcache the stable prefix → reads 90% off
Prompt-এর যে অংশ বারবার একই থাকে (system prompt, tool list, বড় document) সেটা cache করো — `cache_control` দিয়ে। প্রথমবার একটু বেশি দাম (cache write, ১.২৫×), পরের প্রতিবার পড়া ৯০% সস্তা (cache read, ০.১×)। default TTL ৫ মিনিট।
এটা answer cache না — prompt-এর prefix cache; উত্তর প্রতিবার fresh, quality একই। multi-turn chat বা একই বড় context বারবার পাঠানো কাজে বিশাল সাশ্রয়। তবে একটা minimum length লাগে (~১০২৪ token), আর prefix-এ এক token বদলালে cache miss।
The cost leversmodel + short output + cache + batch + measure
একসাথে: (১) ঠিক model বাছো (সহজে Haiku), (২) output ছোট রাখো, (৩) stable prefix cache করো (৯০%), (৪) non-urgent কাজ batch API-তে দাও (৫০%), (৫) পাঠানোর আগে count_tokens দিয়ে মাপো। caching + batch একসাথে → ~৯৫% পর্যন্ত সাশ্রয়।
এই levers-গুলো জানা মানে তুমি "কাজ করছে" থেকে "সস্তায় ও দ্রুত কাজ করছে"-তে যেতে পারো — production-এর আসল পার্থক্য। আর Day 22-র guardrail (max iterations) মনে আছে? loop থামানো মানে খরচও থামানো — failure design আর cost একই মুদ্রার দুই পিঠ। (caching নিয়ে আরও গভীরে পরে যাব।)
Check Your Understanding
ভুল হলে সমস্যা নেই — প্রতিটার ব্যাখ্যা আছে।
এক word = এক token
input আর output token-এর দাম একই
সবচেয়ে বড় (smart) model সবসময় সেরা পছন্দ
উত্তর ধীর মানে model নিজেই ধীর
Prompt caching মানে একই উত্তর cache করে ফেরত দেওয়া
যেকোনো ছোট prompt-এও caching সাহায্য করবে
API-তে সবকিছুর দামের একক কী?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
input না output — কোনটা বেশি দামি?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Latency-র সবচেয়ে বড় lever কোনটা?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Prompt caching ঠিক কী সস্তা করে?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
সহজ, পুনরাবৃত্ত কাজে কোন model বাছবে আর কেন?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
খরচ কমানোর levers একসাথে কোনগুলো?
ভুল হলেও সমস্যা নেই — প্রতিটা option-এর সাথে ব্যাখ্যা আছে।
Prove It To Yourself
চারটা takeaway মনে রাখো।
চারটা জিনিস মনে রাখো — Everything is priced in tokens: input + output, দুটোই। output সাধারণত ~৫× দামি — ছোট রাখো। cost = (in × inPrice + out × outPrice) ÷ 1M: একটা সূত্রেই যেকোনো feature-এর খরচ আগে আন্দাজ করা যায়। Output length drives latency: এক token করে তৈরি হয়। ছোট output + smaller model + streaming = দ্রুত। Cache the stable prefix: system/tools/বড় doc বারবার গেলে caching ~৯০% সস্তা; উত্তর fresh-ই।
আজকের শব্দগুলো — token, input_tokens, output_tokens, per million tokens, count_tokens, context window, max_tokens, time to first token, streaming, prompt caching, cache_control, cache write/read, TTL, batch API, model routing — এখন থেকে English-ই থাকবে; নিজের project-এ এভাবেই ব্যবহার করবে। পুরো তালিকা নিচের glossary-তে। পরের lesson-এ (Day 24 — Module 3-র exit) এই ভিত্তির ওপরই আরও এগোবে।
শব্দার্থ — পরে ফিরে দেখার জন্য
একনজরে সব key term। কোনো শব্দ ভুলে গেলে এখানে এসে খুঁজে নিও।
- batch API
- Non-urgent কাজ একসাথে — ৫০% সস্তা।
- cache write / read
- write ১.২৫× (একবার), read ০.১× (বারবার)।
- cache_control
- কোন অংশ cache হবে তা চিহ্নিত করার field।
- context window
- এক request-এ মোট কত token ধরে।
- count_tokens
- পাঠানোর আগে token গোনার endpoint (free)।
- input_tokens
- যা পাঠাও: system + tools + message + image।
- max_tokens
- output-এর সর্বোচ্চ সীমা — খরচ/latency bound করে।
- model routing
- সহজে সস্তা model, কঠিনে দামি model।
- output_tokens
- Model যা লেখে — সাধারণত ~৫× দামি।
- per million tokens (MTok)
- দাম যে এককে বলা হয় — প্রতি ১০ লক্ষ token।
- prompt caching
- Stable prefix cache — read ৯০% সস্তা।
- streaming
- উত্তর টুকরো টুকরো আসে — perceived latency কমায়।
- time to first token (TTFT)
- প্রথম token আসতে কত সময়।
- token
- Model-এর শব্দের টুকরো — দামের একক (Day 2)।
- TTL
- Cache কতক্ষণ টেকে — default ৫ মিনিট।
Sources consulted to author this lesson. Citation style is informal — follow the links if you want to dig deeper.
- Token counting — Anthropic (2025)
- Prompt caching — Anthropic (2025)
- Reduce latency — Anthropic (2025)
- Claude API pricing (2026 breakdown) — CloudZero / Finout (2026)
- Batch processing — Anthropic (2025)
দুই বাক্যে নিজের ভাষায় লেখো
নিজের ভাষায় দুই বাক্যে লেখো — খরচের সূত্রটা কী (এক লাইনে), আর latency কমানোর সবচেয়ে বড় lever কোনটা আর কেন।