क्विकस्टार्ट: पहला अनुरोध
अपने क्लाइंट को हमारे बेस यूआरएल की ओर निर्देशित करें। Use https://api.grockapi.com/v1 और अपनी API कुंजी हेडर में सेट करें। मॉडल पहचानकर्शी हमेशा uncensored. यह किसी भी OpenAI-संगत SDK के साथ काम करता है।
प्रमाणीकरण एक मान्य Bearer टोकन की आवश्यकता होती है। इसे Authorization: Bearer YOUR_API_KEY. यदि कुंजी अनुपस्थित या अमान्य है, तो आपको तुरंत 401 त्रुटि मिलती है।
कनेक्टिविटी की जांच करने के लिए अपनी पहली कॉल करें। अनुरोध बॉडी में मॉडल नाम और एक messages एरे शामिल होना चाहिए।
समर्थित पैरामीटर और मोड
मानक पैरामीटर का उपयोग करके जनरेशन व्यवहार कॉन्फ़िगर करें। आप रचनात्मकता के लिए तापमान या न्यूक्लियस सैंपलिंग के लिए top_p को समायोजित कर सकते हैं। जनरेशन को रोकने के लिए विशिष्ट अनुक्रम परिभाषित करने के लिए stop पैरामीटर का उपयोग करें।
डिबगिंग के दौरान निर्धारक आउटपुट के लिए seed सेट करें। उपस्थिति और आवृत्ति दंड दोहराव को कम करने में मदद करते हैं। मॉडल कंटैक्स्ट विंडो में 100,000 टोकन तक सपोर्ट करता है।
प्रति अनुरोध आउटपुट 16,000 टोकन तक सीमित है। max_tokens को सेट न छोड़ें ताकि डिफ़ॉल्ट 2,048 आउटपुट सीमा का उपयोग हो। त्रुटियां और रिफ्यूज़ल क्रेडिट खर्च नहीं करते हैं।
स्ट्रीमिंग और टोकन उपयोग
सेटिंग करके स्ट्रीमिंग सक्षम करें stream: true. API सर्वर-सेंट इवेंट्स (SSE) के माध्यम से चंक लौटाता है। प्रत्येक चंक आंशिक सामग्री और मेटाडेटा रखता है।
टोकन उपयोग विवरण अंतिम चंक में दिखाई देते हैं। यह आपको रियल-टाइम में लागत की सटीक ट्रैकिंग करने की अनुमति देता है। अंतिम चंक में अनुरोध के लिए पूर्ण उपयोग आंकड़े शामिल होते हैं।
रिसोर्स लीक से बचने के लिए स्ट्रीम क्लोजर को उचित रूप से हैंडल करें। सटीक बिलिंग डेटा प्राप्त करने के लिए हमेशा अंतिम चंक को प्रोसेस करें।
फंक्शन कॉलिंग (टूल्स)
अपने रिक्वेस्ट बॉडी में टूल्स परिभाषित करें। टूल नाम, विवरण और पैरामीटर स्कीमा निर्दिष्ट करें। मॉडल उचित होने पर टूल कॉल्स के साथ प्रतिक्रिया देता है।
विशिष्ट व्यवहार को मजबूर करने या अनुमति देने के लिए tool_choice पैरामीटर का उपयोग करें। आप इसे auto, required, या विशिष्ट टूल आईडी पर सेट कर सकते हैं।
अप्लिकेशन लॉजिक में टूल कॉल्स को प्रोसेस करें। बातचीत जारी रखने के लिए टूल आउटपुट को मॉडल को वापस भेजें। यह बाहरी पार्सिंग के बिना जटिल मल्टी-स्टेप वर्कफ़्लो को सक्षम बनाता है।
JSON मोड और बाधाएँ
response_format को सेट करके संरचित आउटपुट फ़ोर्स करें json_object. मॉडल बिना मार्कडाउन कोड ब्लॉक के वैध JSON लौटाएगा।
यह मोड एप्लिकेशन में डेटा पार्स करने के लिए आदर्श है। सटीकता बढ़ाने के लिए सुनिश्चित करें कि आपका स्कीमा स्पष्ट हो। अमान्य JSON संरचनाएं आपके क्लाइंट में पार्सिंग त्रुटियां पैदा कर सकती हैं।
स्थिर फॉर्मेटिंग के लिए JSON मोड को तापमान नियंत्रण के साथ जोड़ें। बंद ब्रेस के बाद ट्रेलिंग वर्जनों को रोकने के लिए स्टॉप सीक्वेंस का उपयोग करें।
रेट लिमिट्स और कोटा
प्रत्येक API कुंजी प्रति मिनट 300 अनुरोधों के लिए सीमित है। आप एक साथ अधिकतम 8 समवर्ती अनुरोध चला सकते हैं। अधिकतम अनुरोध बॉडी आकार 8 MB है।
429 त्रुटि संकेत देती है कि आपने रेट लिमिट को पार कर लिया है। पुनः प्रयास करने से पहले प्रतीक्षा करें या अपनी समवर्तिता कम करें। एक खाते के लिए प्रति एक सक्रिय कुंजी मौजूद है; एक नई कुंजी जनरेट करने से पुरानी कुंजी को बदल दिया जाता है।
अपने उपयोग की निगरानी अंतिम स्ट्रीमिंग चंक या रिस्पॉन्स हेडर्स के माध्यम से करें। 402 (कोई क्रेडिट नहीं) या 401 (अमान्य कुंजी) जैसे त्रुटियां मुफ्त हैं और आपके क्यूटा के खिलाफ नहीं गिनी जातीं।
cURL
curl https://api.grockapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "calculate the sum of two and three"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.grockapi.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grockapi.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);स्ट्रीमिंग
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)