ব্লগে ফিরে যান

শিক্ষানবিসদের জন্য AIগাইড

ইনপুট বনাম আউটপুট টোকেন: একটি AI API আপনার কাছে কী বিল করে

কেন একটি AI API ইনপুট ও আউটপুট টোকেন আলাদাভাবে গণনা করে, usage ফিল্ডে সেগুলো কোথায় পড়বেন, এবং একটি রিকোয়েস্টের খরচ কীভাবে বের করবেন।

CheapTokens Team দ্বারাপ্রকাশিত হয়েছে আপডেট করা হয়েছে 10 মিনিট পড়ার সময়

গাঢ় গ্রিড ব্যাকগ্রাউন্ডে “Input vs output tokens” শিরোনাম এবং “What you pay for in an API request” লাইনসহ কভার
এই পৃষ্ঠায়
  1. ইনপুট হিসেবে কী গণনা হয় এবং আউটপুট হিসেবে কী গণনা হয়
  2. সংখ্যাগুলো কোথায় পড়বেন: usage ব্লক
  3. কেন দুই পক্ষের দাম আলাদা
  4. সূত্র
  5. একটি বাস্তব মডেলের সাথে একটি কার্যকর উদাহরণ
  6. কোডে এটি ব্যবহার করা
  7. কীভাবে কম টোকেন খরচ করবেন
  8. যা মনে রাখতে হবে

আপনি যদি সবেমাত্র একটি ভাষা মডেলে আপনার প্রথম API কল করে থাকেন, তাহলে সম্ভবত রেসপন্সে একটি usage ব্লক দেখেছেন এবং ভেবেছেন এটি ঠিক কী গণনা করে। সংক্ষিপ্ত উত্তর: প্রতিটি রিকোয়েস্টে দুটি মিটার থাকে। একটি গণনা করে আপনি যে টোকেন পাঠান (ইনপুট), অন্যটি গণনা করে মডেল যে টোকেন ফেরত লেখে (আউটপুট)। প্রতিটি মিটারের নিজস্ব দাম আছে, এবং একটি রিকোয়েস্টের খরচ হলো দুটির যোগফল।

এই গাইডে দেখানো হয়েছে সংখ্যাগুলো কোথায় পাবেন, কীভাবে সেগুলোকে ডলারে রূপান্তর করবেন, এবং কম খরচ করতে কী কী পরিবর্তন করতে পারেন। যদি "টোকেন" শব্দটি এখনো অস্পষ্ট লাগে, তাহলে শুরু করুন What is a token in AI? দিয়ে।

ইনপুট হিসেবে কী গণনা হয় এবং আউটপুট হিসেবে কী গণনা হয়#

ইনপুট টোকেন হলো সেই সবকিছু যা মডেলকে আপনার উত্তর দিতে পড়তে হয়:

  • আপনার সর্বশেষ বার্তা;
  • সিস্টেম প্রম্পট (যেমন "সংক্ষেপে, বাংলায় উত্তর দাও" জাতীয় নির্দেশনা);
  • কথোপকথনের আগের বার্তাগুলো, যদি আপনি সেগুলো আবার পাঠান;
  • আপনি অনুরোধে পেস্ট করা ডকুমেন্ট, কোড বা সার্চ ফলাফল।

আউটপুট টোকেন হলো মডেল উত্তরে যা তৈরি করে, তার সবকিছু। OpenAI-সামঞ্জস্যপূর্ণ ফরম্যাটে এটি choices[0].message.content-এর ভেতরের টেক্সট। থিংকিং মোডে থাকা কিছু মডেল চূড়ান্ত উত্তরের আগে রিজনিং টোকেনও তৈরি করে; সেগুলো আউটপুট হিসেবে বিল হয় কি না তা দেখতে মডেলের প্রাইসিং পেজ দেখুন।

নতুনদের জন্য গুরুত্বপূর্ণ বিষয়: মডেল অনুরোধের মধ্যে আপনার চ্যাট মনে রাখে না। একটি চ্যাট অ্যাপ প্রতিবার পুরো হিস্ট্রি আবার পাঠায়, তাই একটি দীর্ঘ কথোপকথনের ইনপুট প্রতি টার্নে বাড়তে থাকে, এমনকি আপনার নতুন বার্তা এক লাইন হলেও।

সংখ্যাগুলো কোথায় পড়বেন: usage ব্লক#

OpenAI-সামঞ্জস্যপূর্ণ API-এর প্রতিটি নন-স্ট্রিমিং রেসপন্স একটি usage অবজেক্ট দিয়ে শেষ হয়। এটি তার গঠনের একটি শিক্ষামূলক উদাহরণ:

json
{
  "choices": [
    { "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" }
  ],
  "usage": {
    "prompt_tokens": 2000,
    "completion_tokens": 500,
    "total_tokens": 2500
  }
}
ফিল্ড এর অর্থ যেভাবে বিল হয়
prompt_tokens আপনি যা পাঠিয়েছেন তার সবকিছুর টোকেন ইনপুট
completion_tokens মডেল যে টোকেন তৈরি করেছে আউটপুট
total_tokens prompt_tokens + completion_tokens আলাদা কোনো মূল্য নয়: এটি শুধু যোগফল

নতুনদের একটি সাধারণ ভুল হলো total_tokens-কে একটি দাম দিয়ে গুণ করা। ইনপুট ও আউটপুটের দাম আলাদা হওয়ায় আপনার দুটি সংখ্যা আলাদাভাবে দরকার।

কিছু প্রোভাইডার অতিরিক্ত ফিল্ড যোগ করে। উদাহরণস্বরূপ, DeepSeek-এর নিজস্ব API prompt_tokens-কে prompt_cache_hit_tokens এবং prompt_cache_miss_tokens-এ ভাগ করে এবং থিংকিং মোডে reasoning_tokens রিপোর্ট করে (সূত্র: DeepSeek API docs, যাচাই ২১ অক্টোবর ২০২৬)। টেবিলের তিনটি ফিল্ডই হলো যেগুলোর উপর আপনি যেকোনো OpenAI-সামঞ্জস্যপূর্ণ রেসপন্সে নির্ভর করতে পারেন।

যখন আপনি উত্তর স্ট্রিম করেন, শুরুতেই usage জানা যায় না। DeepSeek-এর নিজস্ব API-তে এটি data: [DONE]-এর আগে শেষ কনটেন্ট চাঙ্কে আসে (DeepSeek API docs, যাচাই ২১ অক্টোবর ২০২৬); অন্য API ভিন্নভাবে বা শুধু অনুরোধে পাঠাতে পারে, তাই আপনার ক্লায়েন্ট কী পায় তা যাচাই করুন। স্ট্রিমিং নিয়ে বিস্তারিত আছে Streaming responses in Python-এ।

কেন দুই পক্ষের দাম আলাদা#

আপনার প্রম্পট পড়া এবং উত্তর লেখা ভিন্ন ধরনের কাজ। মডেলটি পুরো প্রম্পট একবারে প্রসেস করে, কিন্তু উত্তরটি একবারে একটি টোকেন করে তৈরি করতে হয়, এবং প্রতিটি নতুন টোকেন আগের টোকেনগুলোর উপর নির্ভর করে। এ কারণেই প্রোভাইডাররা সাধারণত ইনপুটের চেয়ে আউটপুটের দাম বেশি রাখে, এবং যে কোনো মূল্যতালিকায় প্রতি মডেলের জন্য দুটি সংখ্যা দেখতে পান।

নিচে উদাহরণ হিসেবে যে মডেলটি ব্যবহার করছি, MiniMax-M2.7 (id minimax-m2.7), সেটি এই প্যাটার্ন অনুসরণ করে। প্রতি 1M টোকেনের বর্তমান মূল্য ইনপুটের জন্য $0.05 এবং আউটপুটের জন্য $0.15।

সূত্র#

দাম প্রতি ১ মিলিয়ন টোকেনে উদ্ধৃত হয়, তাই একটি অনুরোধের খরচ:

text
cost = input_tokens × input_price ÷ 1,000,000
     + output_tokens × output_price ÷ 1,000,000

এখানে শুধু গাণিতিক হিসাব দেখানোর জন্য বানানো গোল দাম দিয়ে দেওয়া হলো (উদাহরণ, নিচের টেবিল থেকে বর্তমান দাম বসান):

python
# example, substitute current prices from the table
price_in = 0.20    # USD per 1M input tokens
price_out = 0.80   # USD per 1M output tokens

prompt_tokens = 2000
completion_tokens = 500

cost = (prompt_tokens * price_in + completion_tokens * price_out) / 1_000_000
# 2000 × 0.20 ÷ 1,000,000 = 0.0004 (input)
# 500 × 0.80 ÷ 1,000,000 = 0.0004 (output)
# 0.0004 + 0.0004 = 0.0008 USD

একটি বাস্তব মডেলের সাথে একটি কার্যকর উদাহরণ#

উপরের usage উদাহরণের অনুরোধটি ধরুন: 2,000 ইনপুট টোকেন এবং 500 আউটপুট টোকেন। CheapTokens-এর মাধ্যমে MiniMax-M2.7-এ এর খরচ $0.00018। পৃষ্ঠাটি প্রতিবার দেখানোর সময় বর্তমান মূল্য তালিকা থেকে সংখ্যাটি গণনা করা হয়।

একটি একক অনুরোধ খুবই ছোট, তাই স্কেল আপ করা সহায়ক। একটি ছোট অ্যাপ যা এই আকারের 10,000টি অনুরোধ পাঠায়, সেটি 20,000,000 ইনপুট টোকেন এবং 5,000,000 আউটপুট টোকেন ব্যবহার করে, যার মোট দাঁড়ায় $1.75।

আমাদের তালিকার অন্যান্য মডেলে একই অনুরোধ:

মডেল খরচ OpenRouter
GLM-5.3-Flash $0.00006 $0.00012
DeepSeek-V4-Flash $0.00008 $0.00017
MiniMax-M2.7 $0.00018 $0.0012

মোট ২,০০০ ইনপুট এবং ৫০০ আউটপুট টোকেন। প্রতি 1M টোকেনের দাম বর্তমান এবং আমাদের ট্যারিফের সাথে পরিবর্তিত হয়; OpenRouter কলামটি একই ওয়ার্কলোডের জন্য রেফারেন্স মূল্য দেখায়।

লক্ষ্য করুন, এখানে টোকেন সংখ্যার একটি ছোট অংশ আউটপুট (2,500-এর মধ্যে 500) কিন্তু টোকেনের অংশের তুলনায় বিলের একটি বড় অংশ, কারণ আউটপুট টোকেনের মূল্য বেশি (টেবিলটি দেখুন)। এই মডেলের ক্ষেত্রে আউটপুট দিকটিই সেই জায়গা যেখানে OpenRouter-এর রেফারেন্স মূল্যের বিপরীতে সাশ্রয় নিশ্চিত হয়, যা আপনার অ্যাপ দীর্ঘ উত্তর লিখলে উপকারী।

কোডে এটি ব্যবহার করা#

আপনি অফিসিয়াল openai Python প্যাকেজ থেকে usage পড়তে পারেন, এটিকে CheapTokens বেস URL-এ নির্দেশ করে:

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key="YOUR_API_KEY",
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",
    messages=[{"role": "user", "content": "Explain input and output tokens in two sentences."}],
)

usage = response.usage
print("input:", usage.prompt_tokens)
print("output:", usage.completion_tokens)
print("total:", usage.total_tokens)

# example, substitute current prices from the table above
price_in, price_out = 0.20, 0.80
cost = (usage.prompt_tokens * price_in + usage.completion_tokens * price_out) / 1_000_000
print(f"approx. cost: ${cost:.6f}")

আপনি যদি এখনও কোনো রিকোয়েস্ট না পাঠিয়ে থাকেন, তাহলে প্রথমে CheapTokens দিয়ে আপনার প্রথম API রিকোয়েস্ট অনুসরণ করুন।

কীভাবে কম টোকেন খরচ করবেন#

  • প্রম্পট ছোট করুন। সিস্টেম প্রম্পট ছেঁটে ফেলুন এবং মডেলের প্রয়োজন নেই এমন নির্দেশনা সরিয়ে দিন। আপনি যে টোকেন পাঠান, প্রতিটি অনুরোধে তার বিল হয়।
  • হিস্টরি ছোট করুন। দীর্ঘ চ্যাটে পুরো কথোপকথনের বদলে শেষ কয়েকটি টার্ন বা একটি সংক্ষিপ্ত সারাংশ রাখুন।
  • ডকুমেন্টের শুধু প্রাসঙ্গিক অংশ পাঠান। এক পাতা টেক্সট পুরো ফাইলের চেয়ে সস্তা।
  • যে ফরম্যাট দরকার সেটাই চান। "তিনটি বুলেট পয়েন্টে উত্তর দিন" খোলা প্রশ্নের প্রবন্ধের চেয়ে কম আউটপুট টোকেন তৈরি করে।
  • সচেতনভাবে max_tokens সেট করুন। এটি শুধু আউটপুট সীমিত করে। খুব কম হলে উত্তর কেটে যায়; বিস্তারিত আছে কেন একটি AI উত্তর মাঝবাক্যে থেমে যায়?-এ। CheapTokens-এ MiniMax-M2.7 প্রতি উত্তরে সর্বোচ্চ 8,192 আউটপুট টোকেন এবং 180K কনটেক্সট উইন্ডো সমর্থন করে।

বড় ওয়ার্কফ্লোর খরচ অনুমান করতে দেখুন কীভাবে একটি AI এজেন্টের খরচ অনুমান করবেন।

যা মনে রাখতে হবে#

  1. প্রতিটি অনুরোধে ইনপুট টোকেন (prompt_tokens) এবং আউটপুট টোকেন (completion_tokens) থাকে।
  2. এদের আলাদা মূল্য রয়েছে, সাধারণত আউটপুটের মূল্য বেশি।
  3. খরচ = ইনপুট টোকেন × ইনপুট মূল্য + আউটপুট টোকেন × আউটপুট মূল্য, যেখানে মূল্যগুলো প্রতি 1M টোকেনের জন্য।
  4. অনুমান না করে রেসপন্সের usage থেকে সংখ্যাগুলো পড়ুন।

CheapTokens-এ একটি প্রিপেইড ব্যালেন্স সব মডেলের জন্য প্রযোজ্য, প্রতিটি মডেলের মূল্য নির্ধারিত এবং পিক-আওয়ার মূল্য নির্ধারণ নেই, আর API-টি OpenAI Chat Completions এবং Anthropic Messages-এর সাথে সামঞ্জস্যপূর্ণ। উপরের উদাহরণটি চেষ্টা করতে, একটি API key নিন এবং আপনার প্রথম অনুরোধ পাঠান।

প্রতিটি মডেলের বর্তমান মূল্য: CheapTokens pricing।