Developer guide
API कॉल करना
API-संगत पथ और स्ट्रीमिंग·वॉइस नियम
CLEVI गेटवे के कॉल पथ OpenAI-संगत विनिर्देश और Anthropic-संगत विनिर्देश में विभाजित हैं।
दोनों विनिर्देश एक ही API कुंजी का उपयोग करते हैं, और संवादात्मक रीजनिंग मॉडल को किसी भी विनिर्देश के माध्यम से कॉल किया जा सकता है।
एम्बेडिंग और ऑडियो·वॉइस पथ केवल OpenAI-संगत विनिर्देश में उपलब्ध हैं,
जबकि Anthropic-संगत विनिर्देश messages, count_tokens, models तीन पथ प्रदान करता है।
स्ट्रीमिंग अनुरोध बॉडी के stream से सक्षम की जाती है, और एम्बेडिंग तथा कुछ मॉडल·पथ इसका समर्थन नहीं करते। ऑडियो·वॉइस पथ ऑडियो को उसी रूप में लौटाने और आउटपुट को CleviDrive में 3 दिनों तक संग्रहीत करने जैसे, सामान्य रीजनिंग से अलग नियमों का पालन करते हैं।
मॉडल ID और प्रत्येक मॉडल के लिए अनुमत कॉल मॉडल पृष्ठ पर हैं, जबकि प्रमाणीकरण हेडर और base URL API कुंजी से प्रमाणित करना पृष्ठ पर हैं।
पथ चुनना
आप जो करना चाहते हैं और जिस SDK का उपयोग कर रहे हैं, उसके अनुसार पथ चुनें। तालिका में दिए गए पथ प्रत्येक विनिर्देश के base URL के बाद आने वाले सापेक्ष पथ हैं।
| आप जो करना चाहते हैं | विनिर्देश | पथ |
|---|---|---|
| संवादात्मक रीजनिंग, OpenAI SDK का उपयोग | OpenAI-संगत | POST /chat/completions या POST /responses |
| संवादात्मक रीजनिंग, Anthropic SDK का उपयोग | Anthropic-संगत | POST /v1/messages |
| एम्बेडिंग बनाना | OpenAI-संगत | POST /embeddings |
| वॉइस संश्लेषण·प्रतिलेखन, वॉइस प्रबंधन | OpenAI-संगत | /audio और /voices के अंतर्गत पथ |
| कॉल किए जा सकने वाले मॉडल देखना | दोनों | GET /models |
OpenAI-संगत पथ
OpenAI-संगत विनिर्देश का base URL https://platform.clevi.net/api/v2/aiservice/openai/v1 है। अनुरोध और प्रतिक्रिया बॉडी OpenAI विनिर्देश का पालन करती हैं। नीचे दी गई तालिका रीजनिंग और मॉडल पथों को होस्ट-आधारित पूर्ण पथों के रूप में दर्शाती है, जबकि ऑडियो·वॉइस पथों को आगे दिए गए ऑडियो और वॉइस पथ अनुभाग में व्यवस्थित किया गया है।
| विधि | पथ | विवरण |
|---|---|---|
| POST | /api/v2/aiservice/openai/v1/chat/completions | संवादी तर्क का अनुरोध करता है। stream चालू करने पर SSE के माध्यम से उत्तर देता है। |
| POST | /api/v2/aiservice/openai/v1/responses | Responses विनिर्देशन के अनुसार कॉल करता है। stream समर्थित है। |
| GET | /api/v2/aiservice/openai/v1/responses/{responseId} | सहेजे गए एक उत्तर को प्राप्त करता है। |
| GET | /api/v2/aiservice/openai/v1/responses/{responseId}/input_items | सहेजे गए उत्तर के इनपुट आइटम की सूची प्राप्त करता है। |
| POST | /api/v2/aiservice/openai/v1/responses/{responseId}/cancel | पृष्ठभूमि में चल रहे उत्तर को रद्द करता है। |
| DELETE | /api/v2/aiservice/openai/v1/responses/{responseId} | सहेजे गए उत्तर को हटाता है। |
| POST | /api/v2/aiservice/openai/v1/completions | लेगेसी टेक्स्ट पूर्णता का अनुरोध करता है। stream समर्थित है। |
| POST | /api/v2/aiservice/openai/v1/embeddings | एम्बेडिंग बनाता है। स्ट्रीमिंग समर्थित नहीं है। |
| GET | /api/v2/aiservice/openai/v1/models | इस कुंजी से कॉल किए जा सकने वाले मॉडलों की सूची लौटाता है। |
| GET | /api/v2/aiservice/openai/v1/models/{modelId} | एक मॉडल प्राप्त करता है। यदि मॉडल तक पहुँच उपलब्ध नहीं है, तो 404 लौटाता है। |
chat/completions को कॉल करने का न्यूनतम उदाहरण है। sk-... के स्थान पर API कुंजी स्क्रीन से जारी की गई कुंजी और model में मॉडल पेज की ID डालें।
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions \
-H "X-API-Key: sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "cip-5.5-im",
"messages": [{"role": "user", "content": "안녕하세요"}]
}'अन्य पथ
निम्नलिखित पथ निदान, लेगेसी संगतता और रिले के लिए हैं।
| पथ | विवरण |
|---|---|
| GET /api/v2/aiservice/openai/v1/healthz | वॉइस provider की स्थिति जाँचता है। |
| /api/v2/aiservice/openai/v1/api/status · /api/options · /api/generate · /outputs/{filename} | लेगेसी Cosa की स्थिति और विकल्पों की जानकारी प्राप्त करने, जनरेशन कॉल (multipart) करने और आउटपुट डाउनलोड करने के पथ हैं। |
| /api/v2/aiservice/openai/v1/{routeKey} (GET · POST · PUT · PATCH · DELETE) | ऊपर दी गई तालिका में शामिल न किए गए provider पथों को नियम लागू करके रिले करता है। chat/completions, completions, embeddings और responses को समर्पित पथ संभालते हैं, इसलिए POST रिले के रूप में कॉल करने पर 404 लौटाता है। |
अनुरोध और प्रतिक्रिया के सभी फ़ील्ड OpenAPI 3.0 दस्तावेज़ https://platform.clevi.net/api/v2/console/openapi/cloud-inference-v1 में देखे जा सकते हैं। पथों की सूची इसी दस्तावेज़ से तैयार की जाती है, और दस्तावेज़ केवल कंसोल में लॉग इन किए गए सत्र के माध्यम से खोला जा सकता है। इसी दस्तावेज़ का उपयोग करके क्लाइंट बनाया जा सकता है।
Anthropic संगत पथ
Anthropic संगत विनिर्देश का base URL https://platform.clevi.net/api/v2/aiservice/anthropic है, और Anthropic SDK अनुरोध पथ में /v1 को सीधे जोड़ता है। अनुरोध और प्रतिक्रिया का मुख्य भाग Anthropic Messages विनिर्देश का पालन करता है।
| विधि | पथ | विवरण |
|---|---|---|
| POST | /api/v2/aiservice/anthropic/v1/messages | Messages विनिर्देश के अनुसार कॉल करता है। model, messages और max_tokens आवश्यक हैं और stream समर्थित है। |
| POST | /api/v2/aiservice/anthropic/v1/messages/count_tokens | बिना शुल्क के केवल इनपुट टोकनों की संख्या का अनुमान लगाता है। max_tokens आवश्यक नहीं है। |
| GET | /api/v2/aiservice/anthropic/v1/models | कर्सर पेजिनेशन 방식 से मॉडलों की सूची लौटाता है। limit 1 से 1000 तक होना चाहिए; सीमा से बाहर होने पर 400 लौटाता है। |
| GET | /api/v2/aiservice/anthropic/v1/models/{modelId} | एक मॉडल की जानकारी प्राप्त करता है। यदि मॉडल तक पहुँच संभव न हो, तो 404 लौटाता है। |
messages को कॉल करने का न्यूनतम उदाहरण है।
curl https://platform.clevi.net/api/v2/aiservice/anthropic/v1/messages \
-H "X-API-Key: sk-..." \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "cip-5.5-im",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "안녕하세요"}]
}'यदि anthropic-version हेडर को छोड़ दिया जाता है, तो इसे 2023-06-01 के रूप में माना जाता है। गेटवे anthropic-version और anthropic-beta हेडर को यथावत आगे भेजता है।
स्ट्रीमिंग (SSE)
यदि अनुरोध के मुख्य भाग में stream को true पर सेट किया जाता है, तो सर्वर Server-Sent Events के माध्यम से प्रतिक्रिया देता है। समर्थन उपलब्ध है या नहीं, यह पथ और मॉडल के अनुसार निम्न प्रकार अलग-अलग होता है।
| लक्ष्य | व्यवहार |
|---|---|
| OpenAI संगत POST /chat/completions · POST /completions · POST /responses | stream समर्थित है। |
| Anthropic संगत POST /v1/messages | stream समर्थित है। |
| POST /embeddings | स्ट्रीमिंग समर्थित नहीं है। |
| Ivy खोज श्रृंखला के मॉडल (ivy-4-mm-search आदि) | stream चालू होने पर भी सर्वर इसे बंद कर देता है और एक ही बार में प्रतिक्रिया देता है। |
| GET /responses/{responseId}?stream=true | 400 लौटाता है। यह पथ तब तक बंद रखा गया है, जब तक बैकग्राउंड प्रतिक्रियाओं के उपयोग को ठीक एक बार सटीक रूप से मापना संभव न हो। |
पहले चंक के साथ निम्नलिखित तीन हेडर भेजे जाते हैं। इसके बाद प्रत्येक चंक के लिए data: पंक्ति भेजी जाती है और तुरंत flush किया जाता है; यदि अपस्ट्रीम ने इवेंट का नाम दिया हो, तभी event: पंक्ति भी साथ भेजी जाती है।
- Content-Type: text/event-stream
- Cache-Control: no-cache
- X-Accel-Buffering: no
Anthropic संगत पथ के चंक्स में event पंक्ति और data पंक्ति एक जोड़ी में होती हैं।
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"안"}}chat/completions के चंक्स data पंक्तियों के रूप में आते हैं और अंत में data: [DONE] को यथावत आगे भेजा जाता है।
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[...]}
data: [DONE]स्ट्रीमिंग के दौरान कोई त्रुटि होने पर, सामान्य कॉल की तरह, त्रुटि JSON को data: की एक पंक्ति के रूप में भेजा जाता है और HTTP स्थिति कोड भी बदल जाता है।
ऑडियो और वॉइस पथ
TTS·STT और Cosa वॉइस प्रबंधन पथ OpenAI संगत विनिर्देश में हैं और इन पर सामान्य अनुमान से अलग कुछ नियम लागू होते हैं। कौन-सा मॉडल किस पथ की अनुमति देता है, यह मॉडल पृष्ठ की Cosa तालिका में देखें।
| विधि | पथ | विवरण |
|---|---|---|
| POST | /api/v2/aiservice/openai/v1/audio/speech | टेक्स्ट को आवाज़ में संश्लेषित करके ऑडियो लौटाता है। |
| POST | /api/v2/aiservice/openai/v1/audio/transcriptions | ऑडियो को टेक्स्ट में ट्रांसक्राइब करता है (multipart)। |
| POST | /api/v2/aiservice/openai/v1/audio/speech/clone | क्लोन की गई वॉइस से आवाज़ संश्लेषित करता है (multipart)। |
| GET | /api/v2/aiservice/openai/v1/voices | कॉलर द्वारा उपयोग की जा सकने वाली वॉइस की सूची लौटाता है। |
| POST | /api/v2/aiservice/openai/v1/voices | ऑडियो सैंपल से वॉइस पंजीकृत करता है (multipart)। |
| POST | /api/v2/aiservice/openai/v1/voices/design | विवरणात्मक टेक्स्ट से संश्लेषित वॉइस बनाता है। |
| DELETE | /api/v2/aiservice/openai/v1/voices/{voiceId} | वॉइस हटाता है। केवल स्वामी ही इसे हटा सकता है। |
निम्नलिखित नियम केवल आवाज़ और वॉइस पथों पर लागू होते हैं।
| नियम | सामग्री |
|---|---|
| बाइनरी डिलीवरी | audio/speech, audio/speech/clone, outputs/{filename} की सफल प्रतिक्रियाएँ ऑडियो को जस का तस भेजने के साथ-साथ उसे CleviDrive में सहेजती हैं। |
| रसीद हेडर | X-Clevi-Drive-File-Id, X-Clevi-Drive-File-Version-Id, X-Clevi-Drive-Download-Url, X-Clevi-Drive-Expires-At, X-Clevi-Drive-Retention-Days: 3 हेडर प्रतिक्रिया में शामिल किए जाते हैं। |
| Product चयन | audio/speech और audio/transcriptions अनुरोध बॉडी में मौजूद model के आधार पर Product चुनते हैं। वॉइस और डायग्नोस्टिक पथों के लिए X-Product-Sku हेडर या product_sku क्वेरी आवश्यक है। |
| वॉइस स्वामित्व | क्लोन या पंजीकृत की गई वॉइस उसके बनाने वाले पक्ष की होती है। किसी अन्य स्वामी की वॉइस से संश्लेषण करने या उसे हटाने का प्रयास करने पर 403 लौटाया जाता है, और GET /voices सूची में भी केवल आपकी अपनी वॉइस शामिल होती हैं। |
| आकार और समय | अनुरोध की ऊपरी सीमा 28 MiB है और अपस्ट्रीम कॉल की समय-सीमा 5 मिनट है। |
| provider की भीड़ | यदि अपस्ट्रीम व्यस्त हो, तो 409 को जस का तस अग्रेषित किया जाता है, और यदि Retry-After मौजूद हो, तो उसका मान भी साथ भेजा जाता है। गेटवे न तो पुनः प्रयास करता है और न ही अनुरोधों को कतार में डालता है। |