Developer guide
API کال کرنا
API کے موافق راستے اور اسٹریمنگ و آواز کے قواعد
CLEVI گیٹ وے کے کال راستے OpenAI کے موافق معیار اور Anthropic کے موافق معیار میں تقسیم ہیں۔
دونوں معیارات ایک ہی API key استعمال کرتے ہیں، اور مکالماتی استدلال کے ماڈلز کو کسی بھی معیار کے ذریعے کال کیا جا سکتا ہے۔
ایمبیڈنگ اور آڈیو و وائس کے راستے صرف OpenAI کے موافق معیار میں موجود ہیں،
جبکہ Anthropic کے موافق معیار میں messages، count_tokens اور models کے تین راستے فراہم کیے جاتے ہیں۔
اسٹریمنگ کو درخواست کے باڈی میں stream کے ذریعے فعال کیا جاتا ہے، اور ایمبیڈنگز اور کچھ ماڈلز و راستے اسے سپورٹ نہیں کرتے۔ آڈیو و وائس کے راستے آڈیو براہِ راست واپس کرتے ہیں اور آؤٹ پٹس کو CleviDrive میں 3 دن تک محفوظ رکھتے ہیں، اس لیے ان کے قواعد عام استدلال سے مختلف ہیں۔
ماڈل ID اور ہر ماڈل کے لیے قابلِ اجازت کالز ماڈل صفحے پر موجود ہیں، جبکہ توثیقی ہیڈر اور base URL، API key کے ذریعے توثیق کرنے کے صفحے پر موجود ہیں۔
راستے کا انتخاب
آپ جو کام کرنا چاہتے ہیں اور جو 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 موجود ہو تو اس کی قدر بھی ساتھ منتقل کی جاتی ہے۔ گیٹ وے دوبارہ کوشش نہیں کرتا اور نہ ہی درخواست کو قطار میں ڈالتا ہے۔ |