Gemini API को कॉल करते समय आने वाली सामान्य समस्याओं का पता लगाने और उन्हें हल करने के लिए, इस गाइड का इस्तेमाल करें. आपको Gemini API की बैकएंड सेवा या क्लाइंट SDK टूल से जुड़ी समस्याएं आ सकती हैं. हमारे क्लाइंट एसडीके, इन रिपॉज़िटरी में ओपन सोर्स किए गए हैं:
अगर आपको एपीआई पासकोड से जुड़ी समस्याएं आ रही हैं, तो पुष्टि करें कि आपने एपीआई पासकोड सेट अप करने से जुड़ी गाइड के मुताबिक, एपीआई पासकोड को सही तरीके से सेट अप किया है.
गड़बड़ी के कोड
सभी गड़बड़ी कोड के बारे में पूरी जानकारी पाने के लिए, एपीआई से जुड़ी गड़बड़ियां पेज देखें. इसमें एचटीटीपी स्टेटस कोड, जनरेशन ब्लॉक किए गए कोड, और कॉन्टेंट से जुड़ी गड़बड़ी के कोड शामिल हैं.
फिर से कोशिश करने की रणनीति
अगर आपको कोई ऐसी गड़बड़ी मिलती है जिससे पता चलता है कि आपको अपना अनुरोध फिर से करना चाहिए (जैसे कि 429 RESOURCE_EXHAUSTED या 503 UNAVAILABLE), तो हम आपको एक्सपोनेंशियल बैकऑफ़ रणनीति लागू करने का सुझाव देते हैं. इसका मतलब है कि पहली बार फिर से कोशिश करने से पहले, कुछ समय इंतज़ार करें. इसके बाद, फिर से कोशिश करने के बीच इंतज़ार का समय धीरे-धीरे बढ़ाएं.
Gemini API के आधिकारिक क्लाइंट एसडीके, जैसे कि Python SDK में, कुछ समय के लिए होने वाली गड़बड़ियों को ठीक करने के लिए, डिफ़ॉल्ट रूप से अपने-आप फिर से कोशिश करने की सुविधा शामिल होती है. इसमें एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल किया जाता है. जैसे, टाइमआउट, नेटवर्क की समस्याएं, और दर की सीमाएं (429 और 5xx स्टेटस कोड). उदाहरण के लिए, Python SDK टूल, कुछ समय के लिए होने वाली गड़बड़ियों को चार बार तक अपने-आप ठीक करने की कोशिश करता है. इसमें, पहली बार में करीब एक सेकंड और ज़्यादा से ज़्यादा 60 सेकंड का समय लगता है.
अगर आपको सीधे तौर पर REST API अनुरोध करने हैं या बार-बार किए जाने वाले अनुरोधों के लॉजिक को पसंद के मुताबिक बनाना है, तो अनुरोध पूरा होने की संभावना बढ़ाने और सेवा पर ज़्यादा असर पड़ने से रोकने के लिए, इन सबसे सही तरीकों का पालन करें:
- एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें: पहली बार फिर से कोशिश करने से पहले कुछ समय इंतज़ार करें. उदाहरण के लिए, एक सेकंड. इसके बाद, इंतज़ार के समय को तेज़ी से बढ़ाएं. उदाहरण के लिए, 2 सेकंड, 4 सेकंड, 8 सेकंड.
- जिटर जोड़ें: देरी में कुछ रैंडम "जिटर" जोड़ें, ताकि सभी क्लाइंट एक ही समय पर फिर से कोशिश न करें.
- कुछ गड़बड़ियों के लिए फिर से कोशिश करें: सिर्फ़ अस्थायी गड़बड़ियों (जैसे कि
429,408या5xx) के लिए फिर से कोशिश करें. क्लाइंट की गड़बड़ियों (जैसे कि400या403) के लिए फिर से कोशिश न करें, क्योंकि इनसे अमान्य एपीआई कुंजियों या खराब सिंटैक्स जैसी समस्याओं का पता चलता है. - ज़्यादा से ज़्यादा बार कोशिश करने की संख्या सेट करें: इनफ़िनिट लूप को रोकने के लिए, ज़्यादा से ज़्यादा बार कोशिश करने की संख्या तय करें.
मॉडल पैरामीटर से जुड़ी गड़बड़ियों के लिए, अपने एपीआई कॉल की जांच करना
पुष्टि करें कि आपके मॉडल पैरामीटर, यहां दी गई वैल्यू के बीच में हों:
| मॉडल पैरामीटर | वैल्यू (रेंज) |
| उम्मीदवारों की संख्या | 1-8 (पूर्णांक) |
| तापमान | 0.0-1.0 |
| ज़्यादा से ज़्यादा आउटपुट टोकन | मॉडल पेज का इस्तेमाल करके, यह पता लगाएं कि आपके इस्तेमाल किए जा रहे मॉडल के लिए, ज़्यादा से ज़्यादा कितने टोकन इस्तेमाल किए जा सकते हैं. |
| TopP | 0.0-1.0 |
पैरामीटर की वैल्यू की जांच करने के साथ-साथ, यह भी पक्का करें कि आपने सही एपीआई वर्शन (जैसे, /v1 या /v1beta) और मॉडल का इस्तेमाल किया हो. साथ ही, यह भी पक्का करें कि मॉडल में वे सुविधाएं मौजूद हों जिनकी आपको ज़रूरत है. उदाहरण के लिए, अगर कोई सुविधा बीटा रिलीज़ में है, तो वह सिर्फ़ /v1beta एपीआई वर्शन में उपलब्ध होगी.
देखें कि आपके पास सही मॉडल है या नहीं
पुष्टि करें कि हमारे मॉडल पेज पर दिए गए मॉडल में से किसी एक का इस्तेमाल किया जा रहा हो.
सूझ-बूझ वाले मॉडल का इस्तेमाल करने पर, इंतज़ार का समय ज़्यादा लगता है या टोकन का इस्तेमाल ज़्यादा होता है
ज़्यादा इंतज़ार का समय या टोकन का इस्तेमाल अक्सर इसलिए होता है, क्योंकि Gemini 3.x मॉडल में सोचने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. Gemini 2.5 के बंद किए गए मॉडल भी डिफ़ॉल्ट थिंकिंग का इस्तेमाल करते हैं.
थिंकिंग मॉडल, क्वालिटी को बेहतर बनाने के लिए इंटरनल रीज़निंग टोकन जनरेट करते हैं. इस तरह से गहराई से विश्लेषण करने में, इंतज़ार का समय और टोकन का कुल उपभोग, दोनों बढ़ जाते हैं.
अगर आपको कम समय में जवाब चाहिए या लागत कम करनी है, तो सोचने के लेवल को कम किया जा सकता है या सोचने की सुविधा बंद की जा सकती है.
कॉन्फ़िगरेशन की जानकारी और कोड के उदाहरणों के लिए, थिंकिंग गाइड देखें.
सुरक्षा से जुड़ी समस्याएं
अगर आपको यह सूचना मिलती है कि एपीआई कॉल में सुरक्षा सेटिंग की वजह से किसी प्रॉम्प्ट को ब्लॉक कर दिया गया है, तो एपीआई कॉल में सेट किए गए फ़िल्टर के हिसाब से प्रॉम्प्ट की समीक्षा करें.
अगर आपको BlockedReason.OTHER दिखता है, तो हो सकता है कि क्वेरी या जवाब, सेवा की शर्तों का उल्लंघन करता हो या किसी और वजह से काम न कर रहा हो.
पढ़ने से जुड़ी समस्या
अगर आपको RECITATION की वजह से मॉडल का आउटपुट जनरेट होना बंद होता दिखता है, तो इसका मतलब है कि मॉडल का आउटपुट, किसी डेटा से मिलता-जुलता हो सकता है. इस समस्या को ठीक करने के लिए, प्रॉम्प्ट / कॉन्टेक्स्ट को जितना हो सके उतना यूनीक बनाएं और ज़्यादा तापमान का इस्तेमाल करें.
टोकन के दोहराव से जुड़ी समस्या
अगर आपको आउटपुट टोकन बार-बार दिख रहे हैं, तो उन्हें कम करने या हटाने के लिए, यहां दिए गए सुझावों को आज़माएं.
| ब्यौरा | वजह | समस्या हल करने का सुझाया गया तरीका |
|---|---|---|
| Markdown टेबल में हाइफ़न का बार-बार इस्तेमाल किया गया हो | ऐसा तब हो सकता है, जब टेबल में मौजूद कॉन्टेंट बहुत ज़्यादा हो. इसकी वजह यह है कि मॉडल, विज़ुअल तौर पर अलाइन की गई Markdown टेबल बनाने की कोशिश करता है. हालांकि, सही रेंडरिंग के लिए, Markdown में अलाइनमेंट ज़रूरी नहीं है. |
अपने प्रॉम्प्ट में निर्देश जोड़ें, ताकि मॉडल को मार्कडाउन टेबल जनरेट करने के लिए खास दिशा-निर्देश दिए जा सकें. ऐसे उदाहरण दें जिनमें उन दिशा-निर्देशों का पालन किया गया हो. इसके अलावा, तापमान को अडजस्ट करके भी देखा जा सकता है. कोड जनरेट करने या मार्कडाउन टेबल जैसे बहुत स्ट्रक्चर्ड आउटपुट के लिए, ज़्यादा टेंपरेचर (>= 0.8) बेहतर तरीके से काम करता है. यहां दिशा-निर्देशों का एक उदाहरण दिया गया है. इस समस्या से बचने के लिए, इन्हें अपने प्रॉम्प्ट में जोड़ा जा सकता है:
# 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.
|
| Markdown टेबल में टोकन दोहराए गए हैं | बार-बार हाइफ़न दिखने की तरह ही, ऐसा तब होता है, जब मॉडल टेबल के कॉन्टेंट को विज़ुअल तौर पर अलाइन करने की कोशिश करता है. सही रेंडरिंग के लिए, Markdown में अलाइनमेंट की ज़रूरत नहीं होती. |
|
स्ट्रक्चर्ड आउटपुट में बार-बार नई लाइनें (\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.
|
| बार-बार दोहराया गया ऐसा टेक्स्ट जो स्ट्रक्चर्ड आउटपुट का हिस्सा नहीं है | ऐसा तब हो सकता है, जब मॉडल किसी ऐसे अनुरोध पर अटक जाए जिसे वह पूरा नहीं कर सकता. |
|
ब्लॉक किए गए या काम न करने वाले एपीआई पासकोड
इस सेक्शन में, यह देखने का तरीका बताया गया है कि आपका Gemini API पासकोड ब्लॉक किया गया है या नहीं. साथ ही, यह भी बताया गया है कि इस बारे में क्या करना चाहिए.
जानें कि कुंजियां क्यों ब्लॉक की जाती हैं
हमें एक ऐसी जोखिम की आशंका का पता चला है जिसमें कुछ एपीआई पासकोड सार्वजनिक तौर पर उपलब्ध हो सकते हैं. आपके डेटा को सुरक्षित रखने और बिना अनुमति के ऐक्सेस को रोकने के लिए, हमने लीक हुए इन पासकोड को Gemini API ऐक्सेस करने से पहले ही रोक दिया है.
पुष्टि करें कि आपकी कुंजियों पर असर पड़ा है या नहीं
अगर आपकी कुंजी लीक हो गई है, तो Gemini API के साथ उस कुंजी का इस्तेमाल नहीं किया जा सकेगा. Google AI Studio का इस्तेमाल करके, यह देखा जा सकता है कि क्या आपके किसी एपीआई पासकोड को Gemini API को कॉल करने से ब्लॉक किया गया है. साथ ही, नए पासकोड जनरेट किए जा सकते हैं. इन कुंजियों का इस्तेमाल करते समय, आपको यह गड़बड़ी भी दिख सकती है:
Your API key was reported as leaked. Please use another API key.
ब्लॉक किए गए एपीआई पासकोड के लिए कार्रवाई
आपको Google AI Studio का इस्तेमाल करके, Gemini API इंटिग्रेशन के लिए नए एपीआई पासकोड जनरेट करने चाहिए. हमारा सुझाव है कि आप एपीआई कुंजियां मैनेज करने के तरीकों की समीक्षा करें. इससे यह पक्का किया जा सकेगा कि आपकी नई कुंजियां सुरक्षित रखी गई हैं और उन्हें सार्वजनिक तौर पर नहीं दिखाया गया है.
कमज़ोरी की वजह से, अनचाहे शुल्क लगना
बिलिंग से जुड़ा सहायता अनुरोध सबमिट करें. हमारी बिलिंग टीम इस समस्या को ठीक करने के लिए काम कर रही है. हम आपको जल्द से जल्द अपडेट देंगे.
लीक हुई कुंजियों के लिए, Google के सुरक्षा उपाय
अगर मेरे एपीआई कुंजियां लीक हो जाती हैं, तो Google मेरे खाते को ज़्यादा शुल्क और गलत इस्तेमाल से कैसे बचाएगा?
- हम Google AI Studio का इस्तेमाल करके नया पासकोड पाने का अनुरोध करने पर, एपीआई पासकोड जारी करने की प्रोसेस पर काम कर रहे हैं. यह पासकोड डिफ़ॉल्ट रूप से सिर्फ़ Google AI Studio के लिए मान्य होगा. साथ ही, यह अन्य सेवाओं के पासकोड स्वीकार नहीं करेगा. इससे एक से ज़्यादा कुंजियों का अनजाने में इस्तेमाल होने से रोका जा सकेगा.
- हम डिफ़ॉल्ट रूप से, लीक हुए और Gemini API के साथ इस्तेमाल किए गए एपीआई पासकोड को ब्लॉक कर रहे हैं. इससे लागत और आपके ऐप्लिकेशन के डेटा का गलत इस्तेमाल रोकने में मदद मिलती है.
- आपको Google AI Studio में जाकर, अपनी एपीआई कुंजियों की स्थिति के बारे में पता चल पाएगा. साथ ही, अगर हमें पता चलता है कि आपकी एपीआई कुंजियां लीक हो गई हैं, तो हम आपको तुरंत इसकी सूचना देंगे, ताकि आप ज़रूरी कार्रवाई कर सकें.
मॉडल आउटपुट को बेहतर बनाना
मॉडल से बेहतर आउटपुट पाने के लिए, ज़्यादा स्ट्रक्चर्ड प्रॉम्प्ट लिखने की कोशिश करें. प्रॉम्प्ट इंजीनियरिंग गाइड पेज पर, आपको कुछ बुनियादी कॉन्सेप्ट, रणनीतियों, और सबसे सही तरीकों के बारे में जानकारी मिलेगी. इससे आपको शुरुआत करने में मदद मिलेगी.
टोकन की सीमाओं के बारे में जानकारी
टोकन और उनकी सीमाएं गिनने के तरीके को बेहतर तरीके से समझने के लिए, हमारी टोकन गाइड पढ़ें.
ज्ञात समस्याएं
- यह एपीआई, सिर्फ़ चुनिंदा भाषाओं के साथ काम करता है. जिन भाषाओं में प्रॉम्प्ट सबमिट करने की सुविधा उपलब्ध नहीं है उनमें प्रॉम्प्ट सबमिट करने पर, अनचाहे जवाब मिल सकते हैं या जवाब मिलने में समस्या आ सकती है. अपडेट के लिए, उपलब्ध भाषाएं देखें.
गड़बड़ी की शिकायत करें
अगर आपका कोई सवाल है, तो Google AI डेवलपर फ़ोरम पर जाकर चर्चा में शामिल हों.