अपडेट किया गया
DeepSeek API कुंजी काम नहीं कर रही: कारण और समाधान
जब deepseek api कुंजी काम नहीं कर रही त्रुटि दिखाई देती है, तो कुंजी स्वयं उतनी ही कम बार दोषी होती है जितना आप सोचते हैं। अधिकांश विफलताएँ बेस URL, खाली शेष राशि, गलत मॉडल नाम या गलत स्थान पर कुंजी भेजने वाले क्लाइंट से आती हैं।


एक-लाइन टेस्ट से शुरुआत करें
अपने ऐप में कुछ भी बदलने से पहले, क्लाइंट को बाहर रखें। एक अकेला curl कॉल बताता है कि क्या कुंजी, URL और मॉडल नाम एक साथ काम करते हैं। अपने प्रदाता के डैशबोर्ड और दस्तावेज़ों से मानों के साथ प्लेसहोल्डर को बदलें।
curl -i https://YOUR-PROVIDER/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"YOUR-MODEL","messages":[{"role":"user","content":"ping"}]}'
-i फ्लैग स्टेटस लाइन और हेडर प्रिंट करता है, और वे बॉडी से ज़्यादा मायने रखते हैं। यदि curl काम कर रहा है और आपका ऐप नहीं, तो दोष ऐप की सेटिंग्स में है। यदि curl भी फेल हो जाता है, तो समस्या कुंजी, खाते या एंडपॉइंट की है।
सबसे पहले स्टेटस कोड पढ़ें
| स्थिति | सामान्य अर्थ | क्या जाँचें |
|---|---|---|
| 401 | कुंजी को अस्वीकार कर दिया गया | कॉपी करते समय त्रुटियाँ, अतिरिक्त स्पेस, रद्द या हटाई गई कुंजी, अलग प्रोवाइडर से कुंजी |
| 402 या बैलेंस संदेश | कोई क्रेडिट शेष नहीं | खाता बैलेंस और बिलिंग पेज |
| 404 | गलत पथ या मॉडल | बेस URL, अंत में /v1, मॉडल नाम की वर्तनी |
| 429 | बहुत सारे अनुरोध | प्रति मिनट अनुरोध, समानांतर अनुरोध, पुनः प्रयास हेडर |
| 5xx या टाइमआउट | प्रोवाइडर पक्ष या नेटवर्क | प्रोवाइडर स्टेटस पेज, बाद में पुनः प्रयास करें, क्षेत्रीय रूटिंग |
ये OpenAI-शैली प्रदाताओं के बीच सामान्य अर्थ हैं। प्रत्येक प्रदाता अपने सटीक कोड दस्तावेज़ित करता है, इसलिए विवरण के लिए उनकी वर्तमान दस्तावेज़ जाँचें।
कुंजी स्वयं
कुंजी लंबी स्ट्रिंग होती हैं, और वे उबाऊ तरीकों से टूट जाती हैं। कुंजी को एक सादे पाठ संपादक में पेस्ट करें और ट्रेलिंग स्पेस या नया लाइन, शुरुआती उद्धरण चिह्न, या चैट ऐप द्वारा जोड़े गए लाइन ब्रेक के लिए देखें। सुनिश्चित करें कि हेडर Authorization: Bearer KEY हो, Bearer के बाद एक ही स्पेस के साथ। यदि आप कुंजी को एक पर्यावरण चर में सेट करते हैं, तो अपने ऐप में इसकी लंबाई प्रिंट करें (इसके मान को नहीं) यह पुष्टि करने के लिए कि यह लोड हो गया।
दूसरे दो मामले आम हैं। पहला, आपने एक कुंजी बनाई, पेज बंद किया, और एक मास्क्ड संस्करण कॉपी किया। अधिकांश डैशबोर्ड एक बार कुंजी दिखाते हैं, इसलिए एक नई बनाएँ। दूसरा, आप एक सेवा से एक कुंजी का उपयोग दूसरी सेवा के URL के लिए कर रहे हैं। एक कुंजी केवल उसी प्रोवाइडर के लिए वैध होती है जिसने इसे जारी किया है।
बैलेंस, बिलिंग और मुफ़्त क्रेडिट
अक्सर API कुंजी तब तक काम करती है जब खाते में क्रेडिट होता है। खाली बैलेंस टूटी हुई कुंजी जैसा दिख सकता है। अपने प्रदाता की बिलिंग पेज खोलें और पुष्टि करें कि आपके पास फंड हैं, टॉप-अप वास्तव में प्रक्रिया पूरी हो गया है, और कोई प्रोमोशनल क्रेडिट समाप्त नहीं हुआ है। क्रिप्टो और कार्ड टॉप-अप में दिखाई देने में कुछ मिनट लग सकते हैं।
यदि आप तुलना करना चाहते हैं कि कोई अन्य प्रीपेड सेवा इसे कैसे संभालती है, तो हमारा मॉडल सरल है: आप क्रेडिट खरीदते हैं, कॉल्स इसे $0.15 प्रति 1M इनपुट टोकन और $0.50 प्रति 1M आउटपुट टोकन पर कम करती हैं, विफल या अस्वीकृत अनुरोधों के लिए चार्ज नहीं होते, और क्रेडिट कभी समाप्त नहीं होता है। आप GET /v1/balance से या प्रत्येक प्रतिक्रिया पर X-Balance-USD हेडर से बैलेंस पढ़ सकते हैं।
बेस यूआरएल और मॉडल नाम
सबसे आम कारण SillyTavern, Janitor AI और एडिटर प्लगइन्स जैसे टूल में बेस URL में थोड़ी गलती टाइप करना है। सामान्य गलतियाँ: /v1 का चूक जाना, /v1/v1 का दोहरा होना, http का उपयोग https की जगह करना, या पूरा पाथ /chat/completions उस फ़ील्ड में पेस्ट करना जो इसे पहले से जोड़ देता है। मॉडल फ़ील्ड दूसरा फँसाना है। इसे प्रोवाइडर द्वारा सूचीबद्ध मॉडल आईडी से मेल होना चाहिए। यदि प्रोवाइडर समर्थन करता है, तो GET /v1/models से उन्हें सूचीबद्ध करें, या वर्तमान दस्तावेज़ पढ़ें।
विशिष्ट टूल के लिए सेटअप गाइड इस साइट पर हैं: SillyTavern में कुंजी का उपयोग, Janitor AI में और VS Code में।
रेट लिमिट और समानांतर अनुरोध
समानांतर अनुरोधों का एक झटका एक वैध कुंजी पर भी 429 त्रुटि ट्रिगर कर सकता है। Retry-After हेडर खोजें और बैक ऑफ़ करें। Python में एक न्यूनतम पुनर्प्रयास इस प्रकार दिखता है:
import time
from openai import OpenAI, RateLimitError
client = OpenAI(base_url="https://api.deepseekapikey.com/v1", api_key="YOUR_KEY")
def ask(prompt):
for attempt in range(4):
try:
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": prompt}],
)
return r.choices[0].message.content
except RateLimitError:
time.sleep(5 * (attempt + 1))
raise RuntimeError("still rate limited")
हमारे एंडपॉइंट पर एक पूर्ण कुंजी 8 समकाली अनुरोधों और प्रति मिनट 300 अनुरोधों की अनुमति देती है। एक स्ट्रीम किए गए अनुरोध में स्ट्रीम समाप्त होने तक उसकी स्लॉट बनी रहती है। त्रुटि कोड rate_limited या concurrency है, और अस्थायी ओवरलोड 429 लौटाता है Retry-After: 5 के साथ।
नेटवर्क और क्षेत्रीय समस्याएं
यदि curl हंग हो जाता है या रीसेट हो जाता है, तो समस्या आपके और प्रोवाइडर के बीच हो सकती है: एक कॉर्पोरेट प्रॉक्सी, VPN, DNS, या क्षेत्रीय ब्लॉक। एक अलग नेटवर्क आज़माएँ, जाँचें कि आपका प्रॉक्सी Authorization हेडर पास करता है, और लंबी जनरेशन के लिए अपने क्लाइंट टाइमआउट बढ़ाएँ। स्ट्रीमिंग प्रतिक्रियाएँ बफ़र करने वाले प्रॉक्सी द्वारा भी काटी जा सकती हैं; दो समस्याओं को अलग करने के लिए stream: false से टेस्ट करें।
एक चेकलिस्ट जिसे आप पांच मिनट में चला सकते हैं
- curl टेस्ट चलाएं और स्थिति कोड नोट करें।
- एक नई कुंजी बनाएं और उसका परीक्षण करें। यदि नई कुंजी काम करती है, तो पुरानी कुंजी गलत कॉपी की गई थी या रद्द कर दी गई थी।
- बैलेंस और क्रेडिट की किसी भी समाप्ति तिथि की जांच करें।
- बेस यूआरएल और मॉडल आईडी को प्रदाता के दस्तावेज़ों से, अक्षर-दर-अक्षर तुलना करें।
- बिना स्ट्रीमिंग, बिना टूल्स और एक छोटे प्रॉम्प्ट के साथ एक अनुरोध भेजें। सुविधाओं को एक-एक करके वापस जोड़ें।
- समानांतर कॉल्स की जांच करें। यदि आपका एप्लिकेशन एक साथ कई अनुरोध भेजता है, तो समकालता कम करें।
- एक अलग नेटवर्क आज़माएं या VPN बंद करें।
- प्रतिक्रिया हेडर देखें, किसी भी अनुरोध आईडी सहित। एक सहायता टीम उस आईडी से आपका कॉल ढूंढ सकती है।
पंचम चरण में बग की एक आश्चर्यजनक संख्या मिलती है। थोड़ी अमान्य टूल परिभाषाएँ, बहुत बड़ा max_tokens मान, या साइज लिमिट से ऊपर का बॉडी सभी कुंजी समस्याओं जैसी दिखने वाली त्रुटियाँ लौटा सकते हैं। हमारे एंडपॉइंट पर बॉडी लिमिट 8 MB है, और हर प्रतिक्रिया में एक X-Request-Id हेडर होता है जिसे आप सहायता के लिए उद्धृत कर सकते हैं।
एक बैकअप एंडपॉइंट सेट करें
आउटेज और लिमिट किसी भी प्रोवाइडर के साथ होते हैं, इसलिए अपनी कॉन्फ़िगरेशन में एक दूसरा OpenAI-संगत एंडपॉइंट रखें। हमारा एक होस्टेड ओपन-वेट मॉडल है जिसे कानूनी वयस्क उपयोग के लिए बिना सामग्री अस्वीकृति के उत्तर देने के लिए ट्यून्ड किया गया है। यह DeepSeek की आधिकारिक API नहीं है और यह एक रूटर भी नहीं है, इसलिए अलग उत्तर और अलग व्यवहार की उम्मीद करें। स्विच करने में दो सेटिंग्स लगती हैं: बेस URL https://api.deepseekapikey.com/v1 और मॉडल uncensored।
curl https://api.deepseekapikey.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"ping"}]}'
नए उपयोगकर्ता API कुंजी पेज पर एक क्लिक से $0.50 का ट्रायल क्रेडिट दावा कर सकते हैं, जो 7 दिनों के लिए मान्य है। क्रिप्टो के माध्यम से $20 से $500 तक टॉप-अप किए जा सकते हैं; विवरण के लिए मूल्य निर्धारण पेज और दस्तावेज़ देखें।
अधिक गाइड
प्रश्न और उत्तर
मेरी कुंजी curl में काम करती है लेकिन मेरे एप्लिकेशन में क्यों नहीं?
ऐप की सेटिंग्स में शायद गलत बेस URL, गलत मॉडल नाम या एक पुरानी प्रति कुंजी है। अपनी काम करने वाली curl कॉल के साथ ऐप की सेटिंग्स को अक्षर-दर-अक्षर तुलना करें।
क्या एक वैध कुंजी यह गारंटी देती है कि अनुरोध सफल होंगे?
नहीं। खाली बैलेंस, रेट लिमिट या अज्ञात मॉडल नाम एक वैध कुंजी होने के बावजूद विफल हो सकते हैं।
क्या मैं अलग प्रदाता के साथ वही कोड उपयोग कर सकता हूँ?
यदि दोनों OpenAI-compatible हैं, तो हाँ। Base URL, कुंजी और मॉडल ID बदलें।
क्या आपका एंडपॉइंट DeepSeek के समान मॉडल है?
नहीं। यह एक ओपन-वेट मॉडल है जो एक स्वतंत्र प्रदाता द्वारा चलाया जाता है, और यह किसी भी विक्रेता की आधिकारिक API नहीं है।
आपकी कुंजी बस एक फॉर्म दूर है
एक खाता बनाएँ, कुंजी कॉपी करें, बेस URL बदलें। सेटअप यही है।