Developer guide
API कल गर्नुहोस्
API-संगत मार्ग र स्ट्रिमिङ·आवाजका नियमहरू
यस पृष्ठमा प्रमाणीकरण पूरा गरेपछि वास्तवमा कल गरिने मार्गहरू समेटिएका छन्।
OpenAI-संगत मार्ग र Anthropic-संगत मार्गहरूको सूची, अनुरोधको मुख्य भागमा stream सक्षम गर्दा प्रतिक्रिया आउने तरिका,
र आवाज·भ्वाइस मार्गहरूमा मात्र लागू हुने नियमहरूको क्रम यहाँ दिइएको छ।
मोडेल ID र प्रत्येक मोडेलका लागि अनुमति दिइएका कलहरू मोडेल पृष्ठमा, तथा प्रमाणीकरण हेडर र base URL API कुञ्जीद्वारा प्रमाणीकरण गर्ने पृष्ठमा छन्।
प्रयोग गर्ने मार्ग
दुवै संगतता मानकहरूले एउटै API कुञ्जी प्रयोग गर्छन्, र संवादात्मक तर्क मोडेलहरूलाई जुनसुकै मानकमार्फत पनि कल गर्न सकिन्छ। तपाईंले गर्न चाहेको काम र प्रयोग गर्दै आएको SDK का आधारमा मार्ग छनोट गर्नुहोस्।
| गर्न चाहेको काम | मानक | मार्ग |
|---|---|---|
| संवादात्मक तर्क, OpenAI SDK प्रयोग | OpenAI-संगत | POST /chat/completions वा POST /responses |
| संवादात्मक तर्क, Anthropic SDK प्रयोग | Anthropic-संगत | POST /v1/messages |
| एम्बेडिङ सिर्जना | OpenAI-संगत | POST /embeddings |
| आवाज संश्लेषण·लिप्यन्तरण, भ्वाइस व्यवस्थापन | OpenAI-संगत | /audio र /voices अन्तर्गतका मार्गहरू |
| कल गर्न सकिने मोडेलहरू जाँच गर्नुहोस् | दुवै | GET /models |
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 प्राप्त हुन्छ। |
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": "안녕하세요"}]
}'sk-... को स्थानमा API कुञ्जी स्क्रिनबाट जारी गरिएको कुञ्जी राख्नुहोस्, र model मा मोडेल पृष्ठको ID राख्नुहोस्।
अन्य मार्गहरू
| मार्ग | विवरण |
|---|---|
| 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 मार्गहरूमा नियम लागू गरी रिले गर्छ। POST रिले मार्फत chat/completions, completions, embeddings, responses कल गर्दा 404 आउँछ; यी चारलाई समर्पित मार्गहरूले प्रशोधन गर्छन्। |
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 आउँछ। |
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": "안녕하세요"}]
}'स्ट्रिमिङ (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 सहित अस्वीकार गरिन्छ। ब्याकग्राउन्ड प्रतिक्रियाको प्रयोगलाई सही रूपमा एकपटक मात्र मापन गर्न सकिने समयसम्म यो पथ बन्द राखिएको छ। |
पहिलो chunk सँगै तलका तीन हेडरहरू पठाइन्छन्। त्यसपछि प्रत्येक chunk मा event: लाइन (अपस्ट्रीमले event नाम दिएको अवस्थामा मात्र) र data: लाइन पठाएर तुरुन्त flush गरिन्छ।
- Content-Type: text/event-stream
- Cache-Control: no-cache
- X-Accel-Buffering: no
Anthropic अनुकूल पथका chunk हरूमा event लाइन र data लाइन जोडीका रूपमा आउँछन्।
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"안"}}chat/completions का chunk हरू data लाइनका रूपमा आउँछन्, र अन्त्यमा data: [DONE] जस्ताको तस्तै पठाइन्छ।
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[...]}
data: [DONE]आवाज र voice पथहरू
TTS·STT र Cosa voice व्यवस्थापन पथहरू OpenAI अनुकूल विनिर्देशनमा आधारित छन् र सामान्य inference भन्दा केही फरक नियमहरू छन्। कुन मोडेलले कुन पथ अनुमति दिन्छ भन्ने कुरा मोडेल पृष्ठको 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 पठाइन्छ। अवधारण अवधि 3 दिन हो र त्यसपछि 404 हुन्छ। |
| Product चयन | audio/speech र audio/transcriptions ले अनुरोधको model बाट Product चयन गर्छन्। भ्वाइस·निदान मार्गका लागि X-Product-Sku हेडर वा product_sku क्वेरी आवश्यक हुन्छ। |
| भ्वाइस स्वामित्व | क्लोन वा दर्ता गरिएका भ्वाइसहरू सिर्जना गर्ने पक्षको स्वामित्वमा हुन्छन्। अरूको भ्वाइस प्रयोग गरेर संश्लेषण वा मेटाउन खोज्दा 403 आउँछ, र GET /voices सूचीमा पनि आफ्नै स्वामित्वका भ्वाइसहरू मात्र रहन्छन्। |
| आकार र समय | अनुरोधको अधिकतम सीमा 28 MiB र अपस्ट्रीम कलको समय सीमा 5 मिनेट हो। |
| provider भीड | अपस्ट्रीम व्यस्त हुँदा 409 जस्ताको तस्तै पठाइन्छ, र Retry-After दिइएको भए त्यो मान पनि सँगै पठाइन्छ। गेटवेले पुनः प्रयास गर्दैन वा कतारमा राख्दैन। |
