अपना एप्लिकेशन कनेक्ट करना
इस पेज पर
Model Router एंडपॉइंट OpenAI-संगत है — किसी भी OpenAI SDK, फ़्रेमवर्क या BYOK-सक्षम टूल को Performance Hub बेस URL पर पॉइंट करें, अपनी किसी API कुंजी से प्रमाणित करें, और यह बस काम करने लगता है। यह पेज इंटीग्रेशन की क्विकस्टार्ट गाइड है।
आपको क्या चाहिए
- एक API कुंजी। इसे बनाने के लिए आपका Organisation Administrator होना ज़रूरी है। इसे Settings (कॉग) → Service Access & API Keys → Create key में बनाएँ। कुंजियाँ
phk_से शुरू होती हैं और सीक्रेट केवल एक बार दिखाया जाता है। API कुंजियाँ देखें। - बेस URL। यह उसी सेटिंग्स पेज पर Connecting to the API कार्ड में दिखाया जाता है:


चित्र 1: Connecting to the API: बेस URL और कॉपी-पेस्ट करने योग्य उदाहरण अनुरोध
https://app.performancehub.co/ai/v1
आपके परिवेश का सटीक बेस URL हमेशा मॉड्यूल में दिखाया जाता है — इसे इस पेज के बजाय वहीं से कॉपी करें।
प्रमाणीकरण
हर अनुरोध पर अपनी कुंजी बेयरर टोकन के रूप में भेजें:
Authorization: Bearer phk_your_key_here
कुंजी को पासवर्ड की तरह सुरक्षित रखें। अगर यह लीक हो जाए, तो API कुंजियों की सूची से इसे Rotate करें (एक नया सीक्रेट जारी होता है और पुराना तुरंत काम करना बंद कर देता है) या Revoke करें।
आपका पहला अनुरोध
curl
curl https://app.performancehub.co/ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "auto", "messages": [{"role": "user", "content": "Hello"}]}'
"राउटर को हर अनुरोध के लिए सबसे अच्छा मॉडल चुनने देने के लिए मॉडल 'auto' का उपयोग करें, या अपनी सुविधा के लिए सक्षम किसी भी मॉडल ID का।"
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://app.performancehub.co/ai/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
TypeScript / Node (OpenAI SDK)
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://app.performancehub.co/ai/v1',
apiKey: process.env.PH_API_KEY,
});
const response = await client.chat.completions.create({
model: 'auto',
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(response.choices[0].message.content);
मॉडलों की सूची पाना
GET /v1/models आपकी सुविधा के लिए सक्षम हर मॉडल लौटाता है (किसी भी प्रति-कुंजी मॉडल प्रतिबंध का पालन करते हुए)। बैलेंस शून्य होने पर भी मॉडलों की सूची मिलती है, ताकि खाते में पैसे जमा होने से पहले ही इंटीग्रेशन कैटलॉग खोज सकें।
curl https://app.performancehub.co/ai/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
model फ़ील्ड में लौटाई गई किसी भी मॉडल ID का उपयोग करें, या Auto Router को हर अनुरोध के लिए सबसे अच्छा मॉडल चुनने देने के लिए auto का उपयोग करें।
स्ट्रीमिंग
स्ट्रीमिंग OpenAI के मानक तरीके से काम करती है — "stream": true सेट करें और सर्वर-सेंट इवेंट के चंक प्राप्त करें। ऊपर दिए गए SDK उदाहरण अपने सामान्य स्ट्रीमिंग API के ज़रिए इसका समर्थन करते हैं।
मॉडल फ़ॉलबैक
आप फ़ॉलबैक की एक क्रमबद्ध श्रृंखला दे सकते हैं, ताकि मुख्य मॉडल विफल होने पर अनुरोध को अगले मॉडल पर फिर से आज़माया जाए:
models: ["model-a", "model-b", "model-c"]— एक पूरी क्रमबद्ध सूची; पहली प्रविष्टि मुख्य मॉडल है।- या
model: "model-a"के साथfallbacks: ["model-b", "model-c"]— मुख्य मॉडल के बाद आज़माए जाने वाले बैकअप।
फ़ॉलबैक के विकल्पों को उन मॉडलों तक फ़िल्टर किया जाता है जिनका उपयोग आपकी कुंजी कर सकती है।
त्रुटि रिस्पॉन्स
त्रुटियाँ OpenAI के मानक त्रुटि एनवेलप का उपयोग करती हैं: { "error": { "message", "type", "code" } }।
| HTTP | type | code | अर्थ | क्या करें |
|---|---|---|---|---|
| 401 | invalid_request_error | invalid_api_key | API कुंजी नहीं है, या कनेक्टेड सेवा के क्रेडेंशियल अमान्य हैं। | Authorization: Bearer हेडर जाँचें। |
| 401 | invalid_request_error | — | अज्ञात या रद्द की गई API कुंजी ("Invalid API key")। | कुंजी को फिर से सक्रिय करें या नई कुंजी बनाएँ। |
| 402 | insufficient_quota | insufficient_credits | प्रीपेड बैलेंस खत्म हो गया (या, कनेक्टेड सेवाओं के लिए, सुविधा सक्षम नहीं है)। | टॉप-अप करें (या ऑटो टॉप-अप सक्षम करें)। |
| 402 | insufficient_quota | budget_exceeded | कोई खर्च सीमा पूरी हो गई — पूरी सुविधा की, या इस कुंजी या कनेक्टेड सेवा की। संदेश बताता है कि कौन-सा समय-खंड है और, दैनिक/मासिक सीमाओं के लिए, सुविधा के टाइमज़ोन में यह ठीक कब रीसेट होगा। बॉडी में window, resetsAt, timezone और docsUrl फ़ील्ड भी होते हैं। | रीसेट की प्रतीक्षा करें, सीमा बढ़ाएँ, या हार्ड कैप रीसेट करें। |
| 403 | invalid_request_error | — | "Model Router is not enabled for this facility" (API कुंजियाँ), या "Facility has no provisioned inference key" (कुंजी के पीछे कोई इन्फ़रेंस कुंजी नहीं है)। | सुविधा के लिए Model Router सक्षम करें (शुरुआत करना देखें)। अगर यह पहले से सक्षम है, तो कुंजी रोटेट करें या नई कुंजी बनाएँ। |
| 403 | invalid_request_error | content_policy_violation | "Request blocked by content policy" — कोई ब्लॉक-मोड सामग्री फ़िल्टर या प्रॉम्प्ट-इंजेक्शन शील्ड प्रॉम्प्ट से मेल खा गया। | गार्डरेल सेटिंग्स की समीक्षा करें। |
| 429 | — | — | रेट सीमा पार हो गई (आपकी कुंजी पर सेट अनुरोध/मिनट या टोकन/मिनट)। | रुककर फिर से प्रयास करें; ज़रूरत हो तो कुंजी की रेट सीमाएँ बढ़ाएँ। |
| 502 | server_error | — | अपस्ट्रीम इन्फ़रेंस सेवा अस्थायी रूप से अनुपलब्ध है। | बढ़ते अंतराल के साथ फिर से प्रयास करें। |
दोनों 402 त्रुटियों में एक docsUrl फ़ील्ड होता है, और उनका संदेश Performance Hub दस्तावेज़ों के लिंक के साथ समाप्त होता है।
अपने इंटीग्रेशन में 402 को सहजता से संभालें — जब किसी खाते का क्रेडिट खत्म होता है या वह बजट तक पहुँचता है, तो यह अपेक्षित संकेत है, कोई खराबी नहीं।
अच्छी प्रथाएँ
- हर सिस्टम के लिए एक कुंजी। हर इंटीग्रेशन को उसकी अपनी लेबल वाली कुंजी दें, ताकि Activity और Logs में उपयोग का श्रेय दिया जा सके, और लीक होने पर केवल एक कुंजी रोटेट करनी पड़े।
- हर कुंजी को सीमित करें। सिस्टम के अनुसार उपयुक्त प्रति-कुंजी खर्च सीमाएँ और रेट सीमाएँ सेट करें; API कुंजियाँ देखें।
autoको प्राथमिकता दें, जब तक आपको किसी विशिष्ट मॉडल की ज़रूरत न हो — सरल काम के लिए आपको तेज़, सस्ते मॉडल मिलते हैं और सबसे सक्षम मॉडल केवल तब, जब किसी कार्य को उनकी ज़रूरत हो।- इंटीग्रेशन के दौरान Logs टैब पर नज़र रखें — हर अनुरोध अपनी स्थिति, टोकन और लागत के साथ दिखता है, जिससे इंटीग्रेशन की समस्याओं को जल्दी डीबग किया जा सकता है। गतिविधि और लॉग देखें।