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

শুরু করাগাইড

Google Colab থেকে প্রথম রিকোয়েস্ট: API কী Secrets-এ রাখুন

Colab Secrets-এ সংরক্ষিত কী দিয়ে একটি Colab নোটবুক থেকে আপনার প্রথম চ্যাট কমপ্লিশন পাঠান, তারপর উত্তর এবং টোকেন ব্যবহার পড়ুন।

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

Google Colab নোটবুক সেল Colab Secrets থেকে কী পড়ছে এবং CheapTokens API কল করছে
এই পৃষ্ঠায়
  1. আপনার যা প্রয়োজন
  2. কী-টি Colab Secrets-এ রাখুন
  3. প্রথম রিকোয়েস্ট চালান
  4. রিকোয়েস্টের খরচ কত
  5. যখন একটি সেল ব্যর্থ হয়
  6. শেয়ারিং এবং রোটেশন

আপনি আপনার কম্পিউটারে কিছু ইনস্টল না করেই একটি Colab নোটবুকে আপনার প্রথম রিকোয়েস্ট চালাতে পারেন। কী-টি Colab Secrets-এ সংরক্ষণ করুন, userdata.get(...) দিয়ে এটি পড়ুন, openai প্যাকেজটিকে https://api.cheaptokens.dev/v1-এ পয়েন্ট করুন, এবং choices[0].message.content ও usage প্রিন্ট করুন। কী কখনোই কোনো সেলে থাকে না, তাই নোটবুক শেয়ার করলে আপনার কী শেয়ার হয় না।

শেষ অংশটাই এটা করার কারণ। ধরুন আপনি নোটবুকটি শেষ করে একটি সহপাঠীকে লিংক পাঠালেন। যদি কী-টি কোনো সেলে পেস্ট করা থাকে, তাহলে এখন তাদের কাছে সেটি আছে। যদি এটি Secrets-এ থাকে, তারা শুধু কোড পায়, আর কিছুই না।

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

আপনার যা প্রয়োজন#

  • একটি Google অ্যাকাউন্ট এবং colab.research.google.com-এ একটি নতুন নোটবুক।
  • একটি CheapTokens API কী এবং একটি টপ-আপ করা ব্যালেন্স। কী এবং ব্যালেন্স আপনার অ্যাকাউন্টে আছে; ডকুমেন্টেশন সঠিক ধাপগুলো দেখায়।
  • পাঁচ মিনিট।

APIটি OpenAI Chat Completions-এর সাথে সামঞ্জস্যপূর্ণ, তাই স্ট্যান্ডার্ড openai Python প্যাকেজটি ভিন্ন base_url দিয়ে কাজ করে। openai-python README (৫ নভেম্বর ২০২৬-এ যাচাইকৃত) Python 3.10 বা তার বেশি এবং pip install openai তালিকাভুক্ত করে।

কী-টি Colab Secrets-এ রাখুন#

নোটবুকের বাম সাইডবারে একটি কী আইকন আছে, যা Secrets প্যানেল খোলে। একটি নতুন সিক্রেট যোগ করুন, এর নাম দিন CHEAPTOKENS_KEY, মান হিসেবে আপনার কী পেস্ট করুন, এবং আপনি যে নোটবুকে কাজ করছেন তার জন্য নোটবুক অ্যাক্সেস চালু করুন। বোতামের লেখা পরিবর্তন হতে পারে, তাই মেনু পাথের পরিবর্তে কী আইকনটি খুঁজুন।

এখনই আপনার পছন্দের নামটি বেছে নিন: এটিই সেই স্ট্রিং যা আপনি কোডে পাস করবেন। ভুল নাম করা একটি সহজ ভুল, এবং ত্রুটি বিভাগটি দেখায় এটি কেমন দেখায়।

আগে ও পরে: সেলে পেস্ট করা একটি কী বনাম userdata.get
বাম: কী-টি সেলে থাকে এবং নোটবুকের সাথে যায়। ডান: সেলটি শুধু সিক্রেটের নাম উল্লেখ করে।

প্রথম রিকোয়েস্ট চালান#

Colab google.colab.userdata.get(name) দিয়ে সিক্রেট পড়ে, যা Google-এর colabtools মডিউলের একটি ফাংশন (ডকস্ট্রিং ৫ নভেম্বর ২০২৬-এ যাচাইকৃত)। SDK ইনস্টল করুন, সিক্রেট পড়ুন, একটি রিকোয়েস্ট পাঠান।

ধাপে ধাপে

তিনটি সেলে আপনার প্রথম রিকোয়েস্ট

প্যাকেজ ইনস্টল করুন

এটি প্রথম সেলে চালান। -q ফ্ল্যাগ আউটপুট সংক্ষিপ্ত রাখে, এবং প্যাকেজটি ইতিমধ্যে রানটাইমে থাকুক বা না থাকুক এটি কাজ করে।

python
!pip install -q openai

কী পড়ুন এবং ক্লায়েন্ট তৈরি করুন

কী-টি Secrets থেকে আসে। এখানে কিছুই পেস্ট করা হয় না।

python
from google.colab import userdata
from openai import OpenAI

client = OpenAI(
    api_key=userdata.get('CHEAPTOKENS_KEY'),
    base_url='https://api.cheaptokens.dev/v1',
)

একটি রিকোয়েস্ট পাঠান এবং ফলাফল প্রিন্ট করুন

ডেভেলপার প্রিফিক্সসহ সম্পূর্ণ মডেল আইডি ব্যবহার করুন। সংক্ষিপ্ত আইডি গ্রহণ করা হয় না।

python
resp = client.chat.completions.create(
    model='deepseek-ai/DeepSeek-V4-Flash-0731',
    messages=[{'role': 'user', 'content': 'Explain a token in one sentence.'}],
    max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)

প্রথম print মডেলের উত্তর দেখায়। দ্বিতীয়টি দুটি সংখ্যা প্রিন্ট করে: আপনি যে টোকেন পাঠিয়েছেন এবং মডেল যে টোকেন লিখেছে। এটাই রিকোয়েস্টের সম্পূর্ণ বিল, তাই আমরা প্রতিবার এটি প্রিন্ট করি।

রিকোয়েস্টের খরচ কত#

টোকেনই হলো যা আপনি পরিশোধ করেন, তাই আউটপুটের দ্বিতীয় লাইনটি দেখুন। ধরুন উপরের মতো একটি সংক্ষিপ্ত প্রশ্নে প্রায় ৪০ টোকেন ইন এবং উত্তরটি ১৫০ টোকেন আউট। বর্তমান মূল্যে সেই রিকোয়েস্টের খরচ $0.000016, এবং এর এক হাজারটির খরচ $0.0156। ৪০ এবং ১৫০-এর জায়গায় আপনার নোটবুক যে দুটি সংখ্যা প্রিন্ট করেছে সেগুলো বসান।

DeepSeek-V4-Flash এখানে ডিফল্ট একটি কারণে: 380K কনটেক্সট, প্রতি উত্তরে সর্বোচ্চ 32,768 আউটপুট টোকেন, এবং দিনের যেকোনো সময় একই মূল্য, কোনো পিক আওয়ার নেই। একটি ব্যালেন্স সব মডেল কভার করে, তাই অন্য কিছু না বদলেই আপনি এই সেলে মডেলটি বদলাতে পারেন। zai-org/GLM-5.3-Flash (390K কনটেক্সট, সর্বোচ্চ 8,192 আউটপুট টোকেন) চেষ্টা করুন এবং সেলটি আবার চালান। সম্পূর্ণ তালিকার জন্য সব মডেল ও মূল্য দেখুন।

নিজে চেষ্টা করুনচেষ্টা করুন: resp.choices[0].finish_reason কী?উত্তর দেখান

অন্যান্য প্রিন্টের নিচে print(resp.choices[0].finish_reason) যোগ করুন। যদি উত্তরটি স্বাভাবিকভাবে শেষ হয় তাহলে আপনি stop দেখবেন। max_tokens=5 সেট করুন এবং আবার চালান: উত্তরটি কেটে যাবে এবং আপনি length দেখবেন, যার মানে সীমাটি এটিকে থামিয়েছে, মডেল নয়।

যখন একটি সেল ব্যর্থ হয়#

সিক্রেটের দিক থেকে আসা ত্রুটিগুলো প্রথমে আসে, Colab থেকে কোনো রিকোয়েস্ট বের হওয়ার আগেই। colabtools সোর্স (৫ নভেম্বর ২০২৬-এ যাচাইকৃত) অনুযায়ী userdata.get তিনটি ত্রুটি উত্থাপন করতে পারে।

Colab ত্রুটি: SecretNotFoundError
SecretNotFoundError মানে কোডের নামটি কোনো সিক্রেটের সাথে মেলে না।
  • SecretNotFoundError: সেই নামে কোনো সিক্রেট নেই। userdata.get('...')-এর স্ট্রিংটি Secrets প্যানেলের নামের সাথে অক্ষর ধরে ধরে মিলিয়ে দেখুন। বড়-ছোট হাতের অক্ষর গুরুত্বপূর্ণ।
  • NotebookAccessError: সিক্রেটটি আছে, কিন্তু এই নোটবুকের এতে অ্যাক্সেস নেই। Secrets প্যানেলে অ্যাক্সেস টগল চালু করুন এবং সেলটি আবার চালান।
  • TimeoutException: Colab সিক্রেটের অনুরোধের উত্তর দেয়নি। ত্রুটি বার্তায় বলা হয় সিক্রেট শুধু তখনই আনা যায় যখন কোডটি Colab UI থেকে চলে, তাই সেলটি Colab নোটবুকেই চালান, এক্সপোর্ট করা স্ক্রিপ্টে নয়।

যদি সিক্রেট লোড হয় এবং রিকোয়েস্টটি তবুও ব্যর্থ হয়, সমস্যাটি API-এর দিকে। একটি 401 মানে কী-টি ভুল বা অনুপস্থিত; একটি 404 সাধারণত ভুল বেস URL বা মডেল আইডি নির্দেশ করে। API 401 বা 404: কী, বেস URL, মডেল আইডি উভয়ই ধাপে ধাপে দেখায়, এবং GET /v1/models দিয়ে মডেল তালিকাভুক্ত করা দেখায় কীভাবে সঠিক আইডি কপি করতে হয়।

শেয়ারিং এবং রোটেশন#

নোটবুকটি শেয়ার করুন এবং userdata.get কল করা কোডটিও এর সাথে যায়; কী কোনো সেলে বা আউটপুটে নেই, তাই ফাঁস হওয়ার কিছু নেই। যে কেউ নোটবুকটি খোলে তার একই নামের নিজস্ব সিক্রেট প্রয়োজন, অন্যথায় তারা SecretNotFoundError পাবে (উপরে দেখুন)।

আপনি যদি একটি নতুন কী তৈরি করেন, Secrets প্যানেলে মানটি আপডেট করুন; কোড একই থাকে কারণ এটি শুধু সিক্রেটের নাম উল্লেখ করে।

একটি অভ্যাস এখনও গুরুত্বপূর্ণ: কী কখনো প্রিন্ট করবেন না। print(userdata.get('CHEAPTOKENS_KEY'))-এর মতো একটি সেল এটি আউটপুটে ফেলে দেয়, এবং আউটপুট নোটবুকের সাথে সংরক্ষিত হয়।

দ্রুত যাচাই

একটি শেয়ার করা Colab নোটবুকে API কী কোথায় থাকা উচিত?

উত্তর দেখান

উত্তর: Colab Secrets-এ, userdata.get দিয়ে পড়া

একটি সেল এবং এর আউটপুট নোটবুকের সাথে সংরক্ষিত হয় এবং এর সাথে শেয়ার হয়; কোড শুধু সিক্রেটের নাম উল্লেখ করে।

পরবর্তী ধাপ: উত্তরটি একটি লুপ, একটি চ্যাট বা একটি ছোট টুলে রাখুন। ডকুমেন্টেশন API-এর বাকি অংশ কভার করে।