Gemini API কল করার সময় যেসব সাধারণ সমস্যা দেখা দেয় সেগুলি ডায়াগনসিস ও সমাধান করতে এই গাইড ব্যবহার করুন। আপনি হয়ত Gemini API ব্যাকএন্ড পরিষেবা বা ক্লায়েন্ট SDK থেকে সমস্যার সম্মুখীন হতে পারেন। আমাদের ক্লায়েন্ট SDK নিম্নলিখিত রিপোজিটরিতে ওপেন সোর্স করা হয়েছে:
API কী সংক্রান্ত কোনও সমস্যা হলে, API কী সেট-আপ গাইড অনুযায়ী আপনার API কী সঠিকভাবে সেট-আপ করেছেন কিনা তা যাচাই করুন।
সমস্যার কোড
HTTP স্ট্যাটাস কোড, জেনারেশন ব্লক করা কোড এবং কন্টেন্ট সংক্রান্ত সমস্যার কোড সহ সব সমস্যার কোডের সম্পূর্ণ রেফারেন্সের জন্য, API সংক্রান্ত সমস্যা পৃষ্ঠা দেখুন।
আবার চেষ্টা করার কৌশল
আপনি যদি এমন কোনও সমস্যার মেসেজ পান যা থেকে বোঝা যায় যে আপনাকে অনুরোধটি আবার করতে হবে (যেমন 429 RESOURCE_EXHAUSTED বা 503 UNAVAILABLE), তাহলে আমরা এক্সপোনেনশিয়াল ব্যাকঅফ স্ট্র্যাটেজি প্রয়োগ করার সাজেশন দিই। এর অর্থ হল, প্রথমবার আবার চেষ্টা করার আগে আপনি অল্প সময় অপেক্ষা করবেন এবং তারপরে পরবর্তী আবার চেষ্টা করার মধ্যে অপেক্ষার সময় ধীরে ধীরে বাড়াবেন।
Gemini API-এর জন্য অফিসিয়াল ক্লায়েন্ট SDK, যেমন Python SDK-তে টাইমআউট, নেটওয়ার্ক সমস্যা ও রেট লিমিটের (429 ও 5xx স্ট্যাটাস কোড) মতো ক্ষণস্থায়ী সমস্যা ম্যানেজ করার জন্য ডিফল্ট হিসেবে এক্সপোনেনশিয়াল ব্যাক-অফ সহ অটোমেটিক রিট্রাই লজিক অন্তর্ভুক্ত থাকে। যেমন, Python SDK, প্রাথমিক বিলম্ব হিসেবে আনুমানিক ১ সেকেন্ড এবং সর্বাধিক বিলম্ব হিসেবে ৬০ সেকেন্ড সহ ক্ষণস্থায়ী সমস্যাগুলি অটোমেটিক চারবার পর্যন্ত আবার চেষ্টা করে।
আপনি সরাসরি REST API অনুরোধ করলে বা আপনার আবার চেষ্টা করার লজিক কাস্টমাইজ করলে, অনুরোধ সফল হওয়ার সম্ভাবনা বাড়াতে এবং পরিষেবা ওভারলোড হওয়া আটকাতে এইসব পেশাদার পদ্ধতি অনুসরণ করুন:
- এক্সপোনেনশিয়াল ব্যাকঅফ ব্যবহার করুন: প্রথমবার আবার চেষ্টা করার আগে অল্প সময় অপেক্ষা করুন (যেমন, ১ সেকেন্ড), তারপর বিলম্বের সময়সীমা এক্সপোনেনশিয়ালি বাড়ান (যেমন, ২ সেকেন্ড, ৪ সেকেন্ড, ৮ সেকেন্ড)।
- জিটার যোগ করুন: সব ক্লায়েন্ট যাতে ঠিক একই সময়ে আবার চেষ্টা না করে, সেই জন্য বিলম্বের মধ্যে র্যান্ডম "জিটার" যোগ করুন।
- নির্দিষ্ট সমস্যার ক্ষেত্রে আবার চেষ্টা করুন: শুধুমাত্র ক্ষণস্থায়ী সমস্যার (যেমন
429,408বা5xx) ক্ষেত্রে আবার চেষ্টা করুন। ক্লায়েন্ট সমস্যার (যেমন400,402বা403) ক্ষেত্রে আবার চেষ্টা করবেন না কারণ সেগুলি ভুল API কী, প্রিপে ক্রেডিট শেষ হয়ে যাওয়া বা ভুল সিনট্যাক্সের মতো সমস্যা নির্দেশ করে। - আবার চেষ্টা করার সর্বাধিক সংখ্যা সেট করুন: অসীম লুপ এড়াতে আবার চেষ্টা করার সর্বাধিক সংখ্যা নির্ধারণ করুন।
মডেল প্যারামিটার সংক্রান্ত সমস্যার জন্য আপনার API কল চেক করুন
আপনার মডেল প্যারামিটার নিম্নলিখিত মানের মধ্যে আছে কিনা তা যাচাই করুন:
| মডেল প্যারামিটার | মান (রেঞ্জ) |
| প্রার্থীর সংখ্যা | ১-৮ (পূর্ণসংখ্যা) |
| তাপমাত্রা | ০.০-১.০ |
| সর্বাধিক আউটপুট টোকেন | আপনি যে মডেল ব্যবহার করছেন তার জন্য সর্বাধিক টোকেনের সংখ্যা নির্ধারণ করতে মডেল পৃষ্ঠা ব্যবহার করুন। |
| TopP | ০.০-১.০ |
প্যারামিটারের মান চেক করার পাশাপাশি, আপনি সঠিক
API ভার্সন (যেমন, /v1 বা /v1beta) এবং
আপনার প্রয়োজনীয় ফিচার কাজ করে এমন মডেল ব্যবহার করছেন কিনা তা নিশ্চিত করুন। যেমন, কোনও ফিচার বিটা ভার্সনে রিলিজ করা হলে, সেটি শুধু /v1beta API ভার্সনে উপলভ্য হবে।
আপনার কাছে সঠিক মডেল আছে কিনা তা চেক করুন
আমাদের মডেল পৃষ্ঠায় তালিকাভুক্ত কাজ করে এমন মডেল ব্যবহার করছেন কিনা তা যাচাই করুন।
থিঙ্কিং মডেলের সাথে বেশি লেটেন্সি বা টোকেন ব্যবহার
Gemini 3.x মডেলে ডিফল্ট হিসেবে থিংকিং চালু থাকার কারণে প্রায়ই বেশি লেটেন্সি বা টোকেন ব্যবহার হয়। বন্ধ হয়ে যাওয়া Gemini 2.5 মডেলও ডিফল্ট Thinking ব্যবহার করে।
কোয়ালিটি উন্নত করতে থিঙ্কিং মডেল ইন্টার্নাল রিজনিং টোকেন জেনারেট করে। এই যুক্তিপূর্ণ প্রসেস, উত্তর দেওয়ার লেটেন্সি ও মোট টোকেন খরচ, দুটিই বাড়িয়ে দেয়।
আপনি যদি কম লেটেন্সিকে অগ্রাধিকার দেন বা খরচ কমাতে চান, তাহলে থিঙ্কিং লেভেল কমাতে বা থিঙ্কিং বন্ধ করতে পারেন।
কনফিগারেশনের বিবরণ ও কোড স্যাম্পেলের জন্য, থিংকিং গাইড দেখুন।
নিরাপত্তা সংক্রান্ত সমস্যা
আপনার API কলে কোনও নিরাপত্তা সেটিংসের কারণে কোনও প্রম্পট ব্লক করা হয়েছে বলে দেখতে পেলে, API কলে আপনার সেট করা ফিল্টার অনুযায়ী প্রম্পটটি পর্যালোচনা করুন।
আপনি BlockedReason.OTHER দেখতে পেলে, কোয়েরি বা উত্তর পরিষেবার
শর্তাবলী লঙ্ঘন করতে পারে অথবা অন্য কোনও কারণে কাজ নাও করতে পারে।
আবৃত্তি সংক্রান্ত সমস্যা
আপনি যদি দেখেন যে RECITATION-এর কারণে মডেল আউটপুট জেনারেট করা বন্ধ করে দিয়েছে, তাহলে এর অর্থ হল মডেল আউটপুট নির্দিষ্ট ডেটার মতো হতে পারে। এটি সমাধান করতে, প্রম্পট / কন্টেক্সটকে যতটা সম্ভব অনন্য করে তোলার চেষ্টা করুন এবং আরও বেশি তাপমাত্রা ব্যবহার করুন।
বারবার টোকেন ব্যবহার করা সংক্রান্ত সমস্যা
আপনি যদি বারবার আউটপুট টোকেন দেখতে পান, তাহলে সেগুলি কমাতে বা বাদ দিতে নিম্নলিখিত সাজেশনগুলি ব্যবহার করে দেখুন।
| বিবরণ | কারণ | সাজেস্ট করা বিকল্প সমাধান |
|---|---|---|
| মার্কডাউন টেবিলে একাধিকবার হাইফেন ব্যবহার করা | মডেল যখন একটি ভিজ্যুয়ালি অ্যালাইন করা মার্কডাউন টেবিল তৈরি করার চেষ্টা করে, তখন টেবিলের কন্টেন্ট দীর্ঘ হলে এটি ঘটতে পারে। তবে, সঠিক রেন্ডারিংয়ের জন্য মার্কডাউনে অ্যালাইনমেন্টের প্রয়োজন নেই। |
Markdown টেবিল তৈরি করার জন্য মডেলকে নির্দিষ্ট নির্দেশিকা দিতে আপনার প্রম্পটে নির্দেশাবলী যোগ করুন। সেইসব নির্দেশিকা মেনে চলে এমন উদাহরণ প্রদান করুন। এছাড়াও, আপনি তাপমাত্রা অ্যাডজাস্ট করে দেখতে পারেন। কোড বা মার্কডাউন টেবিলের মতো খুব স্ট্রাকচার্ড আউটপুট জেনারেট করার জন্য, বেশি টেম্পারেচার ভালো কাজ করে (>= ০.৮)। এই সমস্যা এড়াতে আপনার প্রম্পটে যোগ করার জন্য নির্দেশিকার একটি উদাহরণ সেট নিচে দেওয়া হল:
# Markdown Table Format
* Separator line: Markdown tables must include a separator line below
the header row. The separator line must use only 3 hyphens per
column, for example: |---|---|---|. Using more hypens like
----, -----, ------ can result in errors. Always
use |:---|, |---:|, or |---| in these separator strings.
For example:
| Date | Description | Attendees |
|---|---|---|
| 2024-10-26 | Annual Conference | 500 |
| 2025-01-15 | Q1 Planning Session | 25 |
* Alignment: Do not align columns. Always use |---|.
For three columns, use |---|---|---| as the separator line.
For four columns use |---|---|---|---| and so on.
* Conciseness: Keep cell content brief and to the point.
* Never pad column headers or other cells with lots of spaces to
match with width of other content. Only a single space on each side
is needed. For example, always do "| column name |" instead of
"| column name |". Extra spaces are wasteful.
A markdown renderer will automatically take care displaying
the content in a visually appealing form.
|
| মার্কডাউন টেবিলে বারবার টোকেন ব্যবহার করা হয়েছে | পুনরাবৃত্ত হাইফেনের মতোই, মডেলটি যখন টেবিলের কন্টেন্টকে ভিজ্যুয়ালি অ্যালাইন করার চেষ্টা করে তখন এটি ঘটে। সঠিক রেন্ডারিংয়ের জন্য মার্কডাউনে অ্যালাইনমেন্টের প্রয়োজন নেই। |
|
স্ট্রাকচার্ড আউটপুটে বারবার নতুন লাইন (\n) ব্যবহার করা হয়েছে
|
মডেল ইনপুটে ইউনিকোড বা এস্কেপ সিকোয়েন্স যেমন
\u বা \t থাকলে, এটি বারবার নতুন লাইন তৈরি করতে পারে।
|
|
| স্ট্রাকচার্ড আউটপুট ব্যবহার করার সময় টেক্সট রিপিট করা হয়েছে | মডেল আউটপুটে ফিল্ডের ক্রম যদি নির্দিষ্ট স্ট্রাকচার্ড স্কিমার থেকে আলাদা হয়, তাহলে টেক্সট রিপিট হতে পারে। |
|
| টুল কলিংয়ের পুনরাবৃত্তি | মডেলটি আগের চিন্তাভাবনার প্রসঙ্গ হারিয়ে ফেললে এবং/অথবা সেটি বাধ্য হয়ে এমন কোনও উপলভ্য নয় এমন এন্ডপয়েন্ট কল করলে এটি হতে পারে। |
মডেলকে তার চিন্তাভাবনার প্রসেসের মধ্যে স্টেট বজায় রাখার নির্দেশ দিন।
আপনার সিস্টেম নির্দেশাবলীর শেষে এটি যোগ করুন:
When thinking silently: ALWAYS start the thought with a brief
(one sentence) recap of the current progress on the task. In
particular, consider whether the task is already done.
|
| স্ট্রাকচার্ড আউটপুটের অংশ নয় এমন পুনরাবৃত্তিমূলক টেক্সট | মডেল কোনও অনুরোধের সমাধান করতে না পারলে এমনটি হতে পারে। |
|
ব্লক করা বা কাজ করছে না এমন API key
এই বিভাগে আপনার Gemini API 'কী' ব্লক করা হয়েছে কিনা তা কীভাবে চেক করবেন এবং সেই বিষয়ে কী করবেন তা বর্ণনা করা হয়েছে।
'কী' কেন ব্লক করা হয়েছে তা বোঝা
আমরা একটি দুর্বলতা শনাক্ত করেছি যেখানে কিছু API কী সর্বজনীনভাবে প্রকাশিত হতে পারে। আপনার ডেটা সুরক্ষিত রাখতে এবং অননুমোদিত অ্যাক্সেস আটকাতে, আমরা Gemini API অ্যাক্সেস করা থেকে এইসব পরিচিত ফাঁস হয়ে যাওয়া কী প্রোঅ্যাক্টিভভাবে ব্লক করেছি।
আপনার 'কী' প্রভাবিত হয়েছে কিনা তা কনফার্ম করুন
আপনার API কী যে ফাঁস হয়ে গেছে তা জানা থাকলে, আপনি আর সেই কী Gemini API-এর সাথে ব্যবহার করতে পারবেন না। আপনার কোনও API কী Gemini API-কে কল করা থেকে ব্লক করা হয়েছে কিনা তা দেখতে এবং নতুন কী জেনারেট করতে, আপনি Google AI Studio ব্যবহার করতে পারেন। এছাড়াও, এইসব কী ব্যবহার করার চেষ্টা করলে, আপনি নিম্নলিখিত সমস্যা সংক্রান্ত মেসেজ পেতে পারেন:
Your API key was reported as leaked. Please use another API key.
ব্লক করা API কী-এর জন্য অ্যাকশন
Google AI Studio ব্যবহার করে আপনার Gemini API ইন্টিগ্রেশনের জন্য নতুন API কী তৈরি করা উচিত। আপনার নতুন কী সুরক্ষিত রাখা হয়েছে এবং তা সর্বজনীনভাবে প্রকাশ করা হয়নি কিনা তা নিশ্চিত করতে, আমরা আপনার API কী ম্যানেজমেন্ট সংক্রান্ত পেশাদার পদ্ধতি পর্যালোচনা করার জন্য অত্যন্ত সাজেস্ট করি।
দুর্বলতার কারণে অপ্রত্যাশিত চার্জ
বিলিং সহায়তা কেস জমা দিন। আমাদের বিলিং টিম এই বিষয়টি নিয়ে কাজ করছে এবং যত তাড়াতাড়ি সম্ভব আমরা আপনাকে আপডেট জানাব।
লিক হওয়া 'কী'-এর জন্য Google-এর নিরাপত্তা সংক্রান্ত ব্যবস্থা
আমার API কী ফাঁস হয়ে গেলে, Google কীভাবে আমার অ্যাকাউন্টকে অতিরিক্ত খরচ ও অপব্যবহার থেকে সুরক্ষিত রাখতে সাহায্য করবে?
- আপনি Google AI Studio ব্যবহার করে নতুন কীয়ের অনুরোধ করলে, আমরা API কী ইস্যু করার দিকে এগোচ্ছি যা ডিফল্ট হিসেবে শুধুমাত্র Google AI Studio-তে সীমাবদ্ধ থাকবে এবং অন্যান্য পরিষেবা থেকে কী গ্রহণ করবে না। এটি অনিচ্ছাকৃতভাবে ক্রস-কী ব্যবহার করা আটকাবে।
- আমরা ডিফল্ট হিসেবে সেইসব API কী ব্লক করছি যেগুলি ফাঁস হয়ে গেছে এবং Gemini API-এর সাথে ব্যবহার করা হচ্ছে। এর ফলে, খরচ ও আপনার অ্যাপ্লিকেশন ডেটার অপব্যবহার প্রতিরোধ করা সম্ভব হচ্ছে।
- আপনি Google AI Studio-তে আপনার API কী-এর স্ট্যাটাস দেখতে পাবেন এবং আপনার API কী ফাঁস হয়ে গেছে বলে শনাক্ত করলে, আমরা অবিলম্বে ব্যবস্থা নেওয়ার জন্য আপনার সাথে যোগাযোগ করার চেষ্টা করব।
মডেল আউটপুট উন্নত করা
মডেলের আউটপুট আরও ভালো কোয়ালিটির পেতে, আরও স্ট্রাকচার্ড প্রম্পট লেখার চেষ্টা করুন। প্রম্পট ইঞ্জিনিয়ারিং গাইড পৃষ্ঠা আপনাকে শুরু করতে সাহায্য করার জন্য কিছু প্রাথমিক ধারণা, কৌশল এবং পেশাদার পদ্ধতি পরিচয় করিয়ে দেয়।
টোকেনের সীমা সম্পর্কে বোঝা
টোকেন ও তার সীমা কীভাবে গণনা করতে হয় তা আরও ভালভাবে বুঝতে আমাদের টোকেন গাইড পড়ুন।
পরিচিত সমস্যা
- API শুধুমাত্র কয়েকটি বেছে নেওয়া ভাষা সমর্থন করে। কাজ করে না এমন ভাষায় প্রম্পট জমা দিলে, প্রত্যাশিত নয় এমন উত্তর পাওয়া যেতে পারে বা উত্তর ব্লক করা হতে পারে। আপডেটের জন্য উপলভ্য ভাষা দেখুন।
সমস্যার ব্যাপারে অভিযোগ জানান
আপনার কোনও প্রশ্ন থাকলে, Google AI ডেভেলপার ফোরামে আলোচনায় যোগ দিন।