समस्या हल करने के लिए गाइड

Gemini API को कॉल करते समय आने वाली सामान्य समस्याओं का पता लगाने और उन्हें हल करने के लिए, इस गाइड का इस्तेमाल करें. आपको Gemini API की बैकएंड सेवा या क्लाइंट SDK टूल से जुड़ी समस्याएं आ सकती हैं. हमारे क्लाइंट एसडीके, इन रिपॉज़िटरी में ओपन सोर्स के तौर पर उपलब्ध हैं:

अगर आपको एपीआई पासकोड से जुड़ी समस्याएं आ रही हैं, तो पुष्टि करें कि आपने एपीआई पासकोड सेटअप करने की गाइड के मुताबिक, एपीआई पासकोड को सही तरीके से सेट अप किया है.

गड़बड़ी के कोड

गड़बड़ी के सभी कोड के बारे में पूरी जानकारी पाने के लिए, एपीआई से जुड़ी गड़बड़ियां पेज देखें. इसमें एचटीटीपी स्टेटस कोड, जनरेशन ब्लॉक करने वाले कोड, और कॉन्टेंट से जुड़ी गड़बड़ी के कोड शामिल हैं.

फिर से कोशिश करने की रणनीति

अगर आपको कोई गड़बड़ी मिलती है, जिसमें आपको अपने अनुरोध को फिर से भेजने के लिए कहा गया है (जैसे कि 429 RESOURCE_EXHAUSTED या 503 UNAVAILABLE), तो हमारा सुझाव है कि आप एक्स्पोनेंशियल बैकऑफ़ रणनीति लागू करें. इसका मतलब है कि पहली बार फिर से कोशिश करने से पहले, आपको कुछ देर इंतज़ार करना होगा. इसके बाद, फिर से कोशिश करने के बीच इंतज़ार का समय धीरे-धीरे बढ़ता जाएगा.

Gemini API के लिए आधिकारिक क्लाइंट एसडीके, जैसे कि Python SDK में, डिफ़ॉल्ट रूप से एक्स्पोनेंशियल बैकऑफ़ के साथ अपने-आप फिर से कोशिश करने का लॉजिक शामिल होता है. इससे टाइम आउट, नेटवर्क से जुड़ी समस्याएं, और अनुरोध संख्या सीमित करने (429 और 5xx स्टेटस कोड) जैसी अस्थायी गड़बड़ियों को ठीक किया जा सकता है. उदाहरण के लिए, Python SDK टूल, कुछ समय के लिए होने वाली गड़बड़ियों को अपने-आप ठीक करने की कोशिश करता है. इसके लिए, वह ज़्यादा से ज़्यादा चार बार कोशिश करता है. पहली कोशिश में करीब एक सेकंड और आखिरी कोशिश में 60 सेकंड तक का समय लगता है.

अगर सीधे तौर पर REST API अनुरोध किए जा रहे हैं या फिर से कोशिश करने के लॉजिक को पसंद के मुताबिक बनाया जा रहा है, तो अनुरोध के सफल होने की संभावना बढ़ाने और सेवा को ओवरलोड होने से बचाने के लिए, इन सबसे सही तरीकों को अपनाएं:

  • एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करें: पहली बार फिर से कोशिश करने से पहले, कुछ देर इंतज़ार करें (उदाहरण के लिए, एक सेकंड). इसके बाद, इंतज़ार करने के समय को एक्स्पोनेंशियल तरीके से बढ़ाएं (उदाहरण के लिए, दो सेकंड, चार सेकंड, आठ सेकंड).
  • जिटर जोड़ें: देरी में रैंडम "जिटर" जोड़ें, ताकि सभी क्लाइंट एक ही समय पर फिर से कोशिश न करें.
  • कुछ गड़बड़ियों के लिए फिर से कोशिश करें: सिर्फ़ कुछ समय के लिए होने वाली गड़बड़ियों (जैसे, 429, 408 या 5xx) के लिए फिर से कोशिश करें. क्लाइंट की गड़बड़ियों (जैसे, 400, 402 या 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 टेबल जनरेट करने के लिए, खास दिशा-निर्देश देने के लिए अपने प्रॉम्प्ट में निर्देश जोड़ें. ऐसे उदाहरण दें जो इन दिशा-निर्देशों का पालन करते हों. तापमान में बदलाव करके भी देखा जा सकता है. कोड या 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.
        
मार्कडाउन टेबल में टोकन दोहराए गए हैं बार-बार हाइफ़न इस्तेमाल करने की तरह ही, ऐसा तब होता है, जब मॉडल टेबल के कॉन्टेंट को विज़ुअल तौर पर अलाइन करने की कोशिश करता है. मार्कडाउन में अलाइनमेंट की ज़रूरत नहीं होती.
  • अपने सिस्टम प्रॉम्प्ट में इस तरह के निर्देश जोड़कर देखें:
                FOR TABLE HEADINGS, IMMEDIATELY ADD ' |' AFTER THE TABLE HEADING.
              
  • तापमान अडजस्ट करके देखें. ज़्यादा तापमान (>= 0.8) से, आम तौर पर आउटपुट में दोहराव या डुप्लीकेट कॉन्टेंट को हटाने में मदद मिलती है.
स्ट्रक्चर्ड आउटपुट में बार-बार नई लाइनें (\n) इस्तेमाल करना जब मॉडल के इनपुट में यूनिकोड या एस्केप सीक्वेंस जैसे कि \u या \t शामिल होते हैं, तो बार-बार नई लाइनें बन सकती हैं.
  • अपने प्रॉम्प्ट में, प्रतिबंधित एस्केप सीक्वेंस की जांच करें और उन्हें UTF-8 वर्णों से बदलें. उदाहरण के लिए, JSON के उदाहरणों में \u एस्केप सीक्वेंस की वजह से, मॉडल अपने आउटपुट में भी उनका इस्तेमाल कर सकता है.
  • मॉडल को बताएं कि किन एस्केप सीक्वेंस का इस्तेमाल किया जा सकता है. सिस्टम को इस तरह का निर्देश दें:
                In quoted strings, the only allowed escape sequences are \\, \n, and \". Instead of \u escapes, use UTF-8.
              
स्ट्रक्चर्ड आउटपुट का इस्तेमाल करते समय टेक्स्ट को दोहराना जब मॉडल आउटपुट में फ़ील्ड का क्रम, तय किए गए स्ट्रक्चर्ड स्कीमा से अलग होता है, तो टेक्स्ट दोहराया जा सकता है.
  • अपने प्रॉम्प्ट में फ़ील्ड का क्रम तय न करें.
  • सभी आउटपुट फ़ील्ड को ज़रूरी बनाएं.
टूल को बार-बार कॉल करना ऐसा तब हो सकता है, जब मॉडल पिछली बातों का कॉन्टेक्स्ट भूल जाए और/या किसी ऐसे एंडपॉइंट को कॉल करे जो उपलब्ध न हो. मॉडल को निर्देश दें कि वह अपनी सोच की प्रोसेस में स्टेट को बनाए रखे. इसे अपने सिस्टम के निर्देशों के आखिर में जोड़ें:
        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.
      
बार-बार दोहराया गया टेक्स्ट, जो व्यवस्थित आउटपुट का हिस्सा नहीं है ऐसा तब हो सकता है, जब मॉडल किसी ऐसे अनुरोध पर अटक जाए जिसे वह पूरा नहीं कर सकता.
  • अगर थिंकिंग मोड चालू है, तो निर्देशों में यह साफ़ तौर पर न बताएं कि किसी समस्या को कैसे हल करना है. बस फ़ाइनल आउटपुट के लिए कहें.
  • टेंपरेचर को 0.8 या इससे ज़्यादा पर सेट करके देखें.
  • "कम शब्दों में जवाब दो", "एक ही बात को बार-बार मत दोहराओ" या "एक बार में ही जवाब दो" जैसे निर्देश जोड़ें.

प्रोजेक्ट पर पाबंदी लगी है या वह उपलब्ध नहीं है

अगर आपके एपीआई अनुरोधों के जवाब में 403 PERMISSION_DENIED ("आपके प्रोजेक्ट को ऐक्सेस करने की अनुमति नहीं दी गई है") दिखता है या Google AI Studio में आपके प्रोजेक्ट की स्थिति प्रतिबंधित है, फ़्री टियर उपलब्ध नहीं है, पेमेंट करना ज़रूरी है या उपलब्ध नहीं है दिखती है, तो देखें कि आपके प्रोजेक्ट पर इनमें से कौनसा सेक्शन लागू होता है:

Gemini API का फ़्री टियर उपलब्ध नहीं है

Gemini API के फ़्री टियर का इस्तेमाल, Google Cloud के सभी प्रोजेक्ट या खातों के लिए नहीं किया जा सकता. अगर आपके प्रोजेक्ट पर फ़्री टियर का इस्तेमाल करने पर पाबंदी लगाई गई है, तो:

  • उसी प्रोजेक्ट में नया एपीआई पासकोड बनाने से गड़बड़ी ठीक नहीं होगी. Google, Google Cloud प्रोजेक्ट लेवल पर ज़रूरी शर्तों का आकलन करता है.
  • इस प्रोजेक्ट के साथ Gemini API का इस्तेमाल करने के लिए, आपको पैसे चुकाकर लिए जाने वाले टियर पर अपग्रेड करना होगा. इसके लिए, एक चालू Cloud बिलिंग खाता लिंक करें.
  • ध्यान दें: किसी प्रोजेक्ट को पैसे चुकाकर लिए जाने वाले टियर में अपग्रेड करने से, फ़्री टियर का कोटा अनलॉक नहीं होता. Google, पेड टियर के इस्तेमाल के लिए, Gemini API की कीमत के हिसाब से बिल भेजता है या ज़रूरी शर्तें पूरी करने वाले Google Cloud क्रेडिट से पैसे काटता है.

Cloud बिलिंग खाते से पेमेंट करना ज़रूरी है

अगर आपका प्रोजेक्ट पहले से ही किसी Cloud बिलिंग खाते से लिंक है और उसमें पेमेंट करना ज़रूरी है स्टेटस दिख रहा है या बकाया पेमेंट की वजह से 403 PERMISSION_DENIED स्टेटस दिख रहा है, तो:

  • बकाया पेमेंट करने या पेमेंट का तरीका अपडेट करने के लिए, AI Studio के बिलिंग पेज या Google Cloud के बिलिंग कंसोल पर जाएं.
  • बिलिंग खाते की स्थिति ठीक होने पर, आपके प्रोजेक्ट को एपीआई का ऐक्सेस अपने-आप मिल जाता है.

लीक या ब्लॉक किए गए एपीआई पासकोड

अगर 403 PERMISSION_DENIED गड़बड़ी में यह बताया गया है कि आपके एपीआई पासकोड के लीक होने या ब्लॉक होने की शिकायत की गई है, तो:

  • नया एपीआई पासकोड जनरेट करने और अपने ऐप्लिकेशन के क्रेडेंशियल अपडेट करने के लिए, AI Studio के एपीआई पासकोड पेज पर जाएं.
  • एपीआई पासकोड को सीधे क्लाइंट-साइड कोड या सार्वजनिक रिपॉज़िटरी में कभी एम्बेड न करें.

प्रोजेक्ट या बिलिंग खाते से जुड़ी नीतियों के उल्लंघन की वजह से निलंबन

अगर Google, नीति के उल्लंघन की वजह से आपके Google Cloud प्रोजेक्ट या Cloud Billing खाते को निलंबित कर देता है, तो उससे जुड़ा ईमेल पता देखें. Google Cloud Console पर जाकर, निलंबन से जुड़ी सूचनाएं देखें. साथ ही, प्रोजेक्ट के निलंबन से जुड़े दिशा-निर्देशों का पालन करें.

ब्लॉक किए गए या काम न करने वाले एपीआई पासकोड

इस सेक्शन में बताया गया है कि आपका 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 के एआई डेवलपर फ़ोरम पर चर्चा में शामिल हों.