OpenRouter API दस्तावेज़ीकरण
मानक OpenAI-कम्पैटिबल इंटरफ़ेस का उपयोग करके अपनी एप्लिकेशन को हमारे अनसेंसर्ड LLM से कनेक्ट करें। यह गाइड प्रमाणीकरण, अनुरूप प्रारूप और तेज़ एकीकरण के लिए स्ट्रीमिंग को कवर करती है।
क्विकस्टार्ट: Python के साथ कनेक्ट करें
आधिकारिक SDK को इंस्टॉल करें और इसे हमारे बेस यूआरएल की ओर इशारा करें।
हमारा API मानक OpenAI इंटरफ़ेस की तरह व्यवहार करता है लेकिन एकल अनसेंसर्ड मॉडल की ओर रूट करता है। यह दृष्टिकोण प्रॉक्सी जटिलता को समाप्त करता है जबकि आपके कोड को पोर्टेबल रखता है।
- लाइब्रेरी को pip के माध्यम से इंस्टॉल करें।
- अपनी API कुंजी को पर्यावरण में
- हमारे एंडपॉइंट के लिए बेस यूआरएल परिभाषित करें।
from openai import OpenAI
client = OpenAI(base_url="https://api.apiopenrouter.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)प्लेसहोल्डर कुंजी को अपनी खुद की क्रेडेंशियल से बदलें। आप सरल प्रॉम्प्ट या जटिल संरचित डेटा भेज सकते हैं।
प्रमाणीकरण और कुंजियां
डैशबोर्ड पर एक कुंजी जनरेट करें और इसे Authorization हेडर में पास करें।
प्रत्येक खाता एक समय में एक सक्रिय कुंजी का समर्थन करता है। जब आप एक नई कुंजी बनाते हैं, तो पुरानी कुंजी तुरंत काम करना बंद कर देती है। यह जटिल रोटेशन लॉजिक की आवश्यकता के बिना सुरक्षा प्रबंधन को सरल बनाता है।
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'ऊपर दिया गया अनुरोध Bearer स्कीम का उपयोग करता है। सुनिश्चित करें कि आपकी कुंजी से शुरू होती है sk- और अतिरिक्त स्पेस के बिना होना चाहिए।
चैट कंप्लीशंस एंडपॉइंट
को संदेश भेजें /v1/chat/completions मानक JSON का उपयोग करने वाला एंडपॉइंट।
मॉडल स्वीकार करता user और assistant भूमिकाएं। आप आउटपुट शैली को नियंत्रित करने के लिए तापमान, top-p और स्टॉप सीक्वेंस को कॉन्फ़िगर कर सकते हैं। यदि स्ट्रीमिंग सक्षम है, तो प्रतिक्रियाएं अंतिम चंक में टोकन उपयोग वापस करती हैं।
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiopenrouter.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);सेट करें max_tokens आउटपुट की लंबाई को नियंत्रित करने के लिए। यदि इसे छोड़ दिया जाए, तो डिफ़ॉल्ट 2,048 टोकन है। मॉडल प्रति अनुरोध 16,000 टोकन तक समर्थित करता है।
स्ट्रीमिंग रिस्पॉन्सेस
सेटिंग करके स्ट्रीमिंग सक्षम करें stream: true अपने अनुरोध बॉडी में।
टोकन उपयोग विवरण स्ट्रीम के अंतिम चंक में ही दिखाई देते हैं। यह रियल-टाइम UI अपडेट की अनुमति देता है जबकि सटीक बिलिंग डेटा को बनाए रखता है। स्ट्रीमिंग के दौरान त्रुटियाँ भी चार्ज किए गए टोकन के लिए उपयोग रिपोर्ट करती हैं।
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)आंशिक प्रतिक्रियाओं को सहजता से हैंडल करें। स्ट्रीम तब सामान्य रूप से बंद हो जाती है जब मॉडल जनरेशन समाप्त कर देता है या संदर्भ सीमा पर पहुंच जाता है।
फंक्शन कॉलिंग & JSON मोड
उपयोग करें response_format: {type: "json_object"} कठोर JSON आउटपुट के लिए।
में टूल्स परिभाषित करें tools एरे और सेट tool_choice फ़ंक्शन कॉल लागू करने के लिए। मॉडल प्रोग्रामेटिक प्रोसेसिंग के लिए उपयुक्त संरचित डेटा लौटाता है। यह हमारे अनसेंसर्ड वेट्स के साथ विश्वसनीय रूप से काम करता है।
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'इंटरैक्टिव अनुभवों के लिए फ़ंक्शन कॉलिंग को स्ट्रीमिंग के साथ जोड़ें। अपने एप्लिकेशन लॉजिक में इसे पास करने से पहले JSON आउटपुट की जांच करें।
सीमाएं और क्वोट्स
अंतराल से बचने के लिए प्रति-कुंजी सीमाओं के सापेक्ष अपने उपयोग की निगरानी करें।
प्रत्येक कुंजी प्रति मिनट 300 अनुरोधों और 8 समवर्ती अनुरोधों की अनुमति देती है। अनुरोध बॉसी साइज लिमिट 8 MB है। यदि आप इन सीमाओं से अधिक हो जाते हैं, तो API 429 स्टेटस कोड लौटाता है। प्रमाणीकरण त्रुटियां 401 लौटाती हैं और अपर्याप्त क्रेडिट 402 लौटाता है।
curl https://api.apiopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
}'संदर्भ विंडो कुल 100,000 टोकन है। त्रुटियां क्रेडिट नहीं खर्च करतीं। हल्की सामग्री उल्लंघनों के लिए अस्वीकृतियां भी मुफ्त रहती हैं।
सामान्य प्रश्न
openrouter API मानक OpenAI से कैसे भिन्न है?
हमारा API एकल अनसेंसर्ड मॉडल है जो कानूनी वयस्क और रचनात्मक सामग्री के लिए अनुकूलित है और अस्वीकृतियों के बिना। यह OpenAI के साथ समान अनुरोध और प्रतिक्रिया संरचना बनाए रखता है, जिससे आप बिना कोड बदले एंडपॉइंट स्विप कर सकते हैं।
यदि क्रेडिट्स खत्म हो जाते हैं तो क्या होता है?
अगर आपका पूर्व-भुगतान बैलेंस शून्य है, तो अनुरोध 402 त्रुटि के साथ विफल हो जाते हैं। क्रेडिट कभी समाप्त नहीं होते, इसलिए आप किसी भी समय क्रिप्टो के माध्यम से टॉप अप कर सकते हैं। त्रुटियाँ और अस्वीकृतियाँ आपके बैलेंस को खपत नहीं करती हैं।
क्या मैं अलग-अलग प्रोजेक्ट्स के लिए एक से अधिक कुंजियों का उपयोग कर सकता हूँ?
प्रत्येक खाता एक सक्रिय कुंजी का समर्थन करता है। एक नई कुंजी बनाने से पिछली कुंजी स्वचालित रूप से अमान्य हो जाती है। आप बिना अपने बिलिंग इतिहास को खोए डैशबोर्ड से तुरंत एक नई कुंजी जनरेट कर सकते हैं।
अपनी API कुंजी पुनः प्राप्त करें
साइन अप करें, टोकन कॉपी करें, और अपना बेस यूआरएल अपडेट करें। यह पूरी कॉन्फ़िगरेशन है।