মূল content-এ যাও

AI Engineering/LLM API-র ভিত্তি/Lesson 01

LLM API-র প্রথম call

Code থেকে একটা LLM-কে প্রশ্ন করা — request-এর গঠন (model, system, messages, max_tokens), response-এর content block, stop_reason, token usage আর খরচের হিসাব।

সময়
22 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

ChatGPT বা Claude-এর website-এ তুমি লেখো আর উত্তর পাও। API মানে একই কাজ, কিন্তু code থেকে। তোমার program একটা request পাঠায় আর একটা structured response পায়। প্রতিটা AI প্রোডাক্ট এভাবেই LLM ব্যবহার করে: chatbot, অনুবাদ app, আর এই platform-এর AI tutor।

তোমার app ──request (JSON)──► LLM provider ──response (JSON)──► তোমার app
           model, system,                  content, stop_reason,
           messages, max_tokens            usage

কেন দরকার?

AI Engineering মানে মূলত LLM-কে ঘিরে নির্ভরযোগ্য software বানানো। আর সবকিছুর শুরু এই একটা call দিয়ে। Request-এর প্রতিটা field আর response-এর প্রতিটা অংশ ঠিকভাবে বোঝা জরুরি। এটা না বুঝলে bug, অপ্রত্যাশিত খরচ আর মাঝপথে কাটা উত্তরের ঝুঁকি থাকে।

প্রথম call

Anthropic-এর Python SDK দিয়ে:

import anthropic

client = anthropic.Anthropic()   # ANTHROPIC_API_KEY environment variable থেকে key নেয়

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    system="তুমি একজন ধৈর্যশীল শিক্ষক। সবসময় বাংলায়, সহজ ভাষায় উত্তর দাও।",
    messages=[{"role": "user", "content": "Machine learning কী, এক অনুচ্ছেদে বলো।"}],
)

print(response.content[0].text)
print(response.stop_reason, response.usage.input_tokens, response.usage.output_tokens)

(Playground-এ internet নেই। এই code তোমার computer-এ চালাবে: pip install anthropic, তারপর export ANTHROPIC_API_KEY=...।)

Request-এর অংশগুলো

Fieldকীমনে রাখো
modelকোন modelবড় model বেশি সক্ষম কিন্তু দামি আর ধীর
max_tokensউত্তরের সর্বোচ্চ দৈর্ঘ্য (token)কম দিলে উত্তর কেটে যায়
systemভূমিকা, নিয়ম, প্রসঙ্গপুরো কথোপকথনে প্রযোজ্য
messagesকথোপকথন: user আর assistant পালাক্রমেপরের lesson-এ বিস্তারিত

Response-এর অংশগুলো

Response আসলে JSON। SDK এটাকে object বানায়, কিন্তু ভেতরটা এরকম:

main.py
  • content একটা list, কারণ উত্তরে একাধিক block থাকতে পারে: লেখা, tool call (শেষ lesson-এ), বা model-এর "চিন্তা"। তাই সবসময় content[0].text ধরে নেওয়া ঝুঁকিপূর্ণ।
  • stop_reason: end_turn হলে সাধারণভাবে শেষ, max_tokens হলে কেটে গেছে, tool_use হলে model একটা tool চায়।
  • usage: input আর output token-এর সংখ্যা। খরচের হিসাব এখান থেকেই।

খরচ

দাম ধরা হয় প্রতি ১০ লাখ (million) token-এ, আর output token সাধারণত input-এর চেয়ে কয়েক গুণ দামি। নিচের দামগুলো শুধু উদাহরণ। আসল দাম provider-এর pricing page-এ দেখো, কারণ এগুলো প্রায়ই বদলায়।

main.py

এক request-এর খরচ সামান্য মনে হয়, কিন্তু scale-এ মোট খরচ বড় হয়ে যায়। খরচ কমানোর উপায় (caching, ছোট model) পরের module-এ।

Exercise

Exercise

Request বানাও

+20 XP

build_request(prompt, system=None, max_tokens=1024) লেখো। এটা Messages API-র request body একটা dict হিসেবে return করবে:

  • "model": "claude-opus-5-5"
  • "max_tokens": max_tokens
  • "messages": একটাই message-এর list — {"role": "user", "content": prompt}
  • "system": শুধু তখনই রাখবে যখন system দেওয়া হয়েছে। None হলে key-টাই থাকবে না।
solution.py

Quiz

  1. Q1system prompt কী কাজে লাগে?
  2. Q2Response-এর stop_reason হলো "max_tokens"। এর মানে কী?
  3. Q3API key কোথায় রাখবে?
0/3 answered

Challenge

Challenge

Response পড়ো, খরচ হিসাব করো

+50 XP

API response (JSON থেকে আসা dict) পড়ার দুটো function লেখো:

  1. response_text(response) — content list-এর সব "type": "text" block-এর text জুড়ে একটা string। অন্য ধরনের block বাদ যাবে, আর মাঝে কোনো separator থাকবে না।
  2. cost_usd(response, input_price, output_price) — দাম দেওয়া আছে প্রতি ১০ লাখ token হিসেবে। usage.input_tokens আর usage.output_tokens দিয়ে মোট খরচ (USD) হিসাব করো, তারপর round(…, 6)।

আর যদি stop_reason == "max_tokens" হয়, মানে উত্তর মাঝপথে কেটে গেছে, তাহলে response_text একটা ValueError raise করবে।

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

এই platform-এর AI tutor ঠিক এভাবেই কাজ করে। Server-এ একটা route আছে। সেটা তোমার প্রশ্ন আর lesson-এর প্রসঙ্গ নিয়ে Messages API call করে, আর উত্তর stream করে browser-এ পাঠায়। API key কখনো browser-এ যায় না।

Interview প্রশ্ন

  • Beginner: LLM API-তে একটা request-এর মূল অংশগুলো কী কী?
  • Intermediate: stop_reason কেন দেখা জরুরি? max_tokens-এ কেটে গেলে কী করবে?
  • Advanced: দিনে ১ লাখ request-এর একটা app-এর খরচ অনুমান করো। কোন কোন উপায়ে কমাবে?

এরপর কী?

একটা প্রশ্ন, একটা উত্তর। কিন্তু chatbot-কে আগের কথা মনে রাখতে হয়। মজার ব্যাপার হলো API নিজে কিছুই মনে রাখে না। পরের lesson: Conversation আর memory।