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 বানায়, কিন্তু ভেতরটা এরকম:
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-এ দেখো, কারণ এগুলো প্রায়ই বদলায়।
এক request-এর খরচ সামান্য মনে হয়, কিন্তু scale-এ মোট খরচ বড় হয়ে যায়। খরচ কমানোর উপায় (caching, ছোট model) পরের module-এ।
Exercise
Exercise
Request বানাও
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-টাই থাকবে না।
Quiz
Challenge
Challenge
Response পড়ো, খরচ হিসাব করো
API response (JSON থেকে আসা dict) পড়ার দুটো function লেখো:
response_text(response)—contentlist-এর সব"type": "text"block-এরtextজুড়ে একটা string। অন্য ধরনের block বাদ যাবে, আর মাঝে কোনো separator থাকবে না।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 করবে।
বাস্তবে কোথায় ব্যবহার হয়?
এই 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।