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} | Legacy Cosa केर स्थिति आ विकल्प देखबाक, निर्माण कॉल (multipart), आ आउटपुट डाउनलोड करबाक मार्ग अछि। |
| /api/v2/aiservice/openai/v1/{routeKey} (GET · POST · PUT · PATCH · DELETE) | उपरोक्त तालिकामे नहि रहल provider मार्गसभ केँ नियम लागू कऽ relay करैत अछि। chat/completions, completions, embeddings, responses केँ समर्पित मार्ग द्वारा संसाधित कएल जाइत अछि, तेँ POST relay सँ कॉल कयला पर 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} | बोइस मेटबैत अछि। केवल स्वामीए मेटा सकैत छथि। |
निम्नलिखित नियम केवल आवाज·बोइस पथपर लागू होइत अछि।
| नियम | विवरण |
|---|---|
| Binary ပို့ဆောင်မှု | 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 query လိုအပ်သည်။ |
| အသံပိုင်ဆိုင်မှု | ပုံတူကူးထားသော သို့မဟုတ် မှတ်ပုံတင်ထားသော အသံသည် ဖန်တီးသူထံတွင် ပိုင်ဆိုင်မှုရှိသည်။ အခြားပိုင်ရှင်၏ အသံဖြင့် ပေါင်းစပ်ခြင်း သို့မဟုတ် ဖျက်ခြင်းပြုလုပ်ရန် ကြိုးစားပါက 403 ကို ပြန်ပေးပြီး GET /voices စာရင်းတွင်လည်း မိမိပိုင်ဆိုင်သော အသံများသာ ပါဝင်သည်။ |
| အရွယ်အစားနှင့် အချိန် | တောင်းဆိုမှုအမြင့်ဆုံးကန့်သတ်ချက်မှာ 28 MiB ဖြစ်ပြီး၊ upstream ခေါ်ဆိုမှုအချိန်ကန့်သတ်ချက်မှာ 5 မိနစ်ဖြစ်သည်။ |
| provider ပိတ်ဆို့မှု | upstream တွင် ပိတ်ဆို့မှုရှိပါက 409 ကို မပြောင်းလဲဘဲ ပို့ပေးပြီး Retry-After ရှိပါက ထိုတန်ဖိုးကိုလည်း အတူပို့ပေးသည်။ Gateway သည် ပြန်လည်ကြိုးစားခြင်း သို့မဟုတ် queue ထဲသို့ ထည့်ခြင်း မပြုပါ။ |