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

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 टेबल जैसे स्ट्रक्चर्ड आउटपुट के लिए, ज़्यादा टेंपरेचर (>= 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 में अलाइनमेंट की ज़रूरत नहीं होती.
  • अपने सिस्टम प्रॉम्प्ट में, इस तरह के निर्देश जोड़कर देखें:
                FOR TABLE HEADINGS, IMMEDIATELY ADD ' |' AFTER THE TABLE HEADING.
              
  • तापमान को कम या ज़्यादा करके देखें. ज़्यादा तापमान (>= 0.8) से, आम तौर पर जवाब में दोहराव या डुप्लीकेट कॉन्टेंट को हटाने में मदद मिलती है.
स्ट्रक्चर्ड आउटपुट में नई लाइनों (\n) का दोहराव जब मॉडल के इनपुट में यूनिकोड या एस्केप सीक्वेंस होते हैं, जैसे कि \u या \t, तो इससे बार-बार नई लाइनें बन सकती हैं.
  • अपने प्रॉम्प्ट में, पाबंदी वाले एस्केप सीक्वेंस ढूंढें और उन्हें UTF-8 वर्णों से बदलें. उदाहरण के लिए, \u आपके JSON उदाहरणों में मौजूद एस्केप सीक्वेंस की वजह से, मॉडल अपने आउटपुट में भी उनका इस्तेमाल कर सकता है.
  • मॉडल को बताएं कि किन स्थितियों में जवाब को बदला जा सकता है. इस तरह का सिस्टम इंस्ट्रक्शन जोड़ें:
                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 से ज़्यादा करके देखें.
  • "कम शब्दों में जवाब दो", "एक ही बात को बार-बार न दोहराओ" या "जवाब सिर्फ़ एक बार दो" जैसे निर्देश जोड़ें.

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

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