प्रमाणीकरण
प्रमाणीकरण एक अकेली API कुंजी के माध्यम से किया जाता है। आप API कुंजी प्राप्त करें पृष्ठ पर Google या ईमेल पासवर्ड का उपयोग करके साइन इन कर सकते हैं। कुंजी तुरंत प्रदर्शित होती है और आपके प्रीपेड क्रेडिट से जुड़ी होती है। प्रमुख विक्रेताओं के विपरीत, ट्रायल के लिए मासिक सदस्यता या क्रेडिट कार्ड की आवश्यकता नहीं है। सभी अनुरोधों के लिए Authorization: Bearer YOUR_API_KEY हेडर का उपयोग करें। आपके खाते के लिए आपकी कुंजी एकमात्र सक्रिय प्रमाणपत्र है; एक नई कुंजी जनरेट करने से पिछली कुंजी अमान्य हो जाती है।
बुनियादी पूर्णता
एक मानक चैट कंप्लीशन अनुरोध OpenAI-कम्पैटिबल एंडपॉइंट पर भेजें। मॉडल आईडी uncensored है। यह मॉडल ओपन-वेट है और कानूनी वयस्क उपयोग के लिए बिना सेंसर उत्तर देने के लिए ट्यून्ड किया गया है। यह GPT, क्लॉड या किसी अन्य वेंडर मॉडल नहीं है। इस सेवा के लिए बेस यूआरएल नीचे दिया गया है।
curl https://api.ornith.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'YOUR_API_KEY को डैशबोर्ड से अपनी कुंजी से बदलें। प्रतिक्रिया में choices[0].message.content में जनरेटेड टेक्स्ट शामिल है। 401 जैसी त्रुटियाँ एक अमान्य कुंजी को इंगित करती हैं, जबकि 402 का अर्थ है कि आपका प्रीपेड क्रेडिट समाप्त हो गया है।
Python SDK
औपचारिक openai पायथन पैकेज का उपयोग करें। इसे Ornith बेस URL पर पॉइंट करें और अपनी API कुंजी प्रदान करें। यह मानक OpenAI क्लाइंट संरचना के साथ संगतता सुनिश्चित करता है। आप संदेशों को role और content वाले डिक्शनरी की सूची के रूप में पास कर सकते हैं। क्लाइंट HTTP अनुरोधों को स्वचालित रूप से संभालता है। यह दृष्टिकोण सरल टेक्स्ट जनरेशन और टूल्स या JSON मोड का उपयोग करके अधिक जटिल इंटरैक्शन दोनों के लिए काम करता है।
from openai import OpenAI
client = OpenAI(base_url="https://api.ornith.top/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)रिस्पॉन्स ऑब्जेक्ट मानक OpenAI संरचना को प्रतिबिंबित करता है। आप जनरेटेड टेक्स्ट को सीधे रिस्पॉन्स ऑब्जेक्ट से एक्सेस कर सकते हैं। यह विधि उन बैकएंड सेवाओं या स्क्रिप्ट्स के लिए आदर्श है जहाँ आपको मॉडल के आउटपुट तक प्रोग्रामेटिक एक्सेस की आवश्यकता होती है।
Node SDK
openai npm पैकेज इंस्टॉल करें। Ornith बेस URL और अपनी API कुंजी के साथ क्लाइंट को इनिशियलाइज करें। अनुरोध की संरचना Python SDK के समान है। chat.completions.create विधि का उपयोग करें। यह वेब बैकएंड या CLI टूल बनाते समय JavaScript वातावरण के लिए उपयुक्त है। क्लाइंट प्रतिक्रिया के serialisation और deserialization को संभालता है।
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ornith.top/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);त्रुटियों को उचित रूप से हैंडल करें। नेटवर्क त्रुटियाँ या API त्रुटियाँ एक्सेप्शन फेंकेंगी। ऑथेंटिकेशन विफलताओं, रेट लिमिट या सर्वर त्रुटियों के बीच अंतर करने के लिए स्टेटस कोड की जाँच करें। रिस्पॉन्स में Python SDK के समान ही कंप्लीशन विवरण होते हैं।
स्ट्रीमिंग प्रतिक्रियाएं
अपने अनुरोध में stream: true सेट करके streaming सक्षम करें। यह जनरेट होते ही टोकन का स्ट्रीम लौटाता है। वास्तविक समय 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)प्रत्येक चंक को प्रोसेस करने के लिए स्ट्रीम पर इटरेट करें। अंतिम चंक में usage फ़ील्ड शामिल होता है। यह बिलिंग पारदर्शिता के लिए उपयोगी है। सुनिश्चित करें कि आपका क्लाइंट स्ट्रीम को सही ढंग से संभालता है ताकि बड़ी प्रतिक्रियाओं के साथ मेमोरी समस्याओं से बचा जा सके।
सीमाएं, त्रुटियां और कॉन्टेक्स्ट
प्रॉम्प्ट और आउटपुट के लिए कॉन्टेक्स्ट विंडो 100,000 टोकन है। प्रति अनुरोध अधिकतम आउटपुट 32,000 टोकन है (2,048 यदि max_tokens सेट नहीं है)। आप प्रति मिनट 300 अनुरोध और प्रति कुंजी 8 समानांतर अनुरोधों तक सीमित हैं। अनुरोध बॉडी 8 MB से कम होनी चाहिए। यदि आप रेट लिमिट से अधिक हो जाते हैं, तो आपको 429 त्रुटि मिलती है। माइनर-संबंधित सामग्री के लिए अस्वीकृति हार्ड-कोडेड हैं और हमेशा लागू होती हैं। त्रुटियों से क्रेडिट खर्च नहीं होता। क्रेडिट प्रीपेड होता है और कभी समाप्त नहीं होता।