Developer guide
API çağırmaq
API uyğunluq yolları və axın·səs qaydaları
CLEVI Gateway-in çağırış yolları OpenAI uyğunluğu və Anthropic uyğunluğu standartlarına bölünür.
Hər iki standart eyni API açarından istifadə edir və dialoq əsaslı inferensiya modelləri hər iki standart vasitəsilə çağırıla bilər.
Embedding və audio·səs yolları yalnız OpenAI uyğunluğu standartında mövcuddur,
Anthropic uyğunluğu standartı isə messages, count_tokens, models olmaqla üç yol təqdim edir.
Axın rejimi sorğu mətnindəki stream parametri ilə aktivləşdirilir və embedding, eləcə də bəzi modellər və yollar tərəfindən dəstəklənmir. Audio·səs yolları audionu olduğu kimi qaytarır və nəticələri 3 gün ərzində CleviDrive-da saxlayır; buna görə də onlar ümumi inferensiyadan fərqli qaydalara tabedir.
Model ID-ləri və hər model üçün icazə verilən çağırışlar model səhifəsində, autentifikasiya başlıqları və base URL isə API açarı ilə autentifikasiya səhifəsində yerləşir.
Yol seçimi
Görmək istədiyiniz işə və istifadə etdiyiniz SDK-ya əsasən yol seçin. Cədvəldəki yollar hər standartın base URL-indən sonra gələn nisbi yollardır.
| Görmək istədiyiniz iş | Standart | Yol |
|---|---|---|
| Dialoq əsaslı inferensiya, OpenAI SDK-dan istifadə | OpenAI uyğunluğu | POST /chat/completions və ya POST /responses |
| Dialoq əsaslı inferensiya, Anthropic SDK-dan istifadə | Anthropic uyğunluğu | POST /v1/messages |
| Embedding yaratmaq | OpenAI uyğunluğu | POST /embeddings |
| Səs sintezi·transkripsiya, səsin idarə edilməsi | OpenAI uyğunluğu | /audio və /voices altındakı yollar |
| Çağırıla bilən modelləri yoxlamaq | Hər ikisi | GET /models |
OpenAI uyğunluğu yolu
OpenAI uyğunluğu standartının base URL-i https://platform.clevi.net/api/v2/aiservice/openai/v1 ünvanıdır. Sorğu və cavab mətnləri OpenAI standartına uyğundur. Aşağıdakı cədvəldə inferensiya və model yolları host əsaslı tam yollar kimi göstərilir; audio·səs yolları isə sonrakı Audio və səs yolları bölməsində izah edilir.
| Metod | Yol | Təsvir |
|---|---|---|
| POST | /api/v2/aiservice/openai/v1/chat/completions | Dialoq əsaslandırması tələb edir. stream aktiv edildikdə cavab SSE vasitəsilə qaytarılır. |
| POST | /api/v2/aiservice/openai/v1/responses | Responses formatında çağırış edir. stream dəstəklənir. |
| GET | /api/v2/aiservice/openai/v1/responses/{responseId} | Saxlanmış bir cavabı əldə edir. |
| GET | /api/v2/aiservice/openai/v1/responses/{responseId}/input_items | Saxlanmış cavabın giriş elementlərinin siyahısını əldə edir. |
| POST | /api/v2/aiservice/openai/v1/responses/{responseId}/cancel | Arxa planda davam edən cavabı ləğv edir. |
| DELETE | /api/v2/aiservice/openai/v1/responses/{responseId} | Saxlanmış cavabı silir. |
| POST | /api/v2/aiservice/openai/v1/completions | Ənənəvi mətn tamamlaması tələb edir. stream dəstəklənir. |
| POST | /api/v2/aiservice/openai/v1/embeddings | Embedding yaradır. Axın dəstəklənmir. |
| GET | /api/v2/aiservice/openai/v1/models | Bu açarla çağırıla bilən modellərin siyahısını qaytarır. |
| GET | /api/v2/aiservice/openai/v1/models/{modelId} | Bir modeli əldə edir. Əlçatan olmayan model üçün 404 qaytarır. |
chat/completions çağırışı üçün minimal nümunədir. sk-... yerinə API açarları ekranından verilən açarı, model sahəsinə isə model səhifəsindəki ID-ni daxil edin.
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": "안녕하세요"}]
}'Digər yollar
Aşağıdakı yollar diaqnostika, köhnə versiyalarla uyğunluq və ötürmə məqsədləri üçün istifadə olunur.
| Yol | Təsvir |
|---|---|
| GET /api/v2/aiservice/openai/v1/healthz | Səs provider-inin vəziyyətini yoxlayır. |
| /api/v2/aiservice/openai/v1/api/status · /api/options · /api/generate · /outputs/{filename} | Legacy Cosa-nın vəziyyətini və seçimlərini əldə etmək, generasiya çağırışı (multipart) etmək və nəticələri yükləmək üçün marşrutlardır. |
| /api/v2/aiservice/openai/v1/{routeKey} (GET · POST · PUT · PATCH · DELETE) | Yuxarıdakı cədvəldə olmayan provider marşrutlarını qaydaları tətbiq edərək ötürür. chat/completions, completions, embeddings və responses xüsusi marşrutlar tərəfindən emal edildiyindən, POST ötürməsi ilə çağırıldıqda 404 qaytarılır. |
Sorğu və cavab sahələrinin hamısını OpenAPI 3.0 sənədində https://platform.clevi.net/api/v2/console/openapi/cloud-inference-v1 yoxlaya bilərsiniz. Marşrut siyahısı bu sənəddən yaradılır və sənəd yalnız konsola daxil olmuş sessiya ilə açılır. Eyni sənəddən klient yarada bilərsiniz.
Anthropic uyğun marşrutları
Anthropic uyğun spesifikasiyasının base URL-i https://platform.clevi.net/api/v2/aiservice/anthropic ünvanıdır və Anthropic SDK sorğu yoluna /v1-i birbaşa əlavə edir. Sorğu və cavab məzmunu Anthropic Messages spesifikasiyasına uyğundur.
| Metod | Marşrut | Təsvir |
|---|---|---|
| POST | /api/v2/aiservice/anthropic/v1/messages | Messages spesifikasiyasına uyğun çağırış edir. model, messages və max_tokens tələb olunur və stream dəstəklənir. |
| POST | /api/v2/aiservice/anthropic/v1/messages/count_tokens | Ödəniş tutulmadan yalnız giriş tokenlərinin sayını təxmin edir. max_tokens tələb olunmur. |
| GET | /api/v2/aiservice/anthropic/v1/models | Kursor səhifələndirməsi üsulu ilə modellərin siyahısını qaytarır. limit 1~1000 aralığında olmalıdır; aralıqdan kənara çıxarsa, 400 qaytarılır. |
| GET | /api/v2/aiservice/anthropic/v1/models/{modelId} | Bir modeli əldə edir. Əlçatan olmayan model olduqda 404 qaytarılır. |
messages çağırışı üçün minimal nümunədir.
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 başlığını buraxsanız, 2023-06-01 kimi emal edilir. Gateway anthropic-version və anthropic-beta başlıqlarını olduğu kimi ötürür.
Axın (SSE)
Sorğunun mətnində stream parametrini true olaraq təyin etsəniz, server Server-Sent Events vasitəsilə cavab verir. Dəstək marşruta və modelə görə aşağıdakı kimi fərqlənir.
| Hədəf | Davranış |
|---|---|
| OpenAI uyğun POST /chat/completions · POST /completions · POST /responses | stream dəstəklənir. |
| Anthropic uyğun POST /v1/messages | stream dəstəklənir. |
| POST /embeddings | Axın dəstəklənmir. |
| Ivy axtarış ailəsinə aid modellər (ivy-4-mm-search və s.) | stream aktiv edilsə belə, server onu deaktiv edir və cavabı bir dəfəyə qaytarır. |
| GET /responses/{responseId}?stream=true | 400 qaytarır. Fon cavablarının istifadəsini dəqiq və yalnız bir dəfə ölçmək mümkün olana qədər bağlı saxlanılan marşrutdur. |
İlk hissə ilə birlikdə aşağıdakı üç başlıq göndərilir. Bundan sonra hər hissə ilə data: sətri göndərilir və dərhal flush edilir; upstream hadisə adı təqdim etdikdə isə yalnız həmin halda event: sətri də göndərilir.
- Content-Type: text/event-stream
- Cache-Control: no-cache
- X-Accel-Buffering: no
Anthropic uyğun marşrutun hissələri event sətri ilə data sətrinin cütündən ibarətdir.
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"안"}}chat/completions hissələri data sətri kimi gəlir və sonda data: [DONE] olduğu kimi ötürülür.
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[...]}
data: [DONE]Axın zamanı xəta baş verərsə, adi çağırışdakı kimi xəta JSON-u data: sətri ilə ötürülür və HTTP status kodu da dəyişir.
Səs və voice marşrutları
TTS·STT və Cosa voice idarəetmə marşrutları OpenAI uyğun spesifikasiyasına əsaslanır və ümumi inferensiyadan fərqli bir neçə qayda tətbiq edilir. Hansı modelin hansı marşruta icazə verdiyini model səhifəsindəki Cosa cədvəlindən yoxlayın.
| Metod | Marşrut | Təsvir |
|---|---|---|
| POST | /api/v2/aiservice/openai/v1/audio/speech | Mətni nitqə sintez edərək audionu olduğu kimi qaytarır. |
| POST | /api/v2/aiservice/openai/v1/audio/transcriptions | Audionu mətnə transkripsiya edir (multipart). |
| POST | /api/v2/aiservice/openai/v1/audio/speech/clone | Klonlaşdırılmış səslə nitqi sintez edir (multipart). |
| GET | /api/v2/aiservice/openai/v1/voices | Çağırış edən şəxsin istifadə edə biləcəyi səslərin siyahısını qaytarır. |
| POST | /api/v2/aiservice/openai/v1/voices | Audio nümunəsi ilə səs qeydiyyatdan keçirir (multipart). |
| POST | /api/v2/aiservice/openai/v1/voices/design | Təsvir mətni əsasında sintez edilmiş səs yaradır. |
| DELETE | /api/v2/aiservice/openai/v1/voices/{voiceId} | Səsi silir. Yalnız sahibi silə bilər. |
Aşağıdakı qaydalar yalnız nitq və səs yollarına tətbiq olunur.
| Qayda | Məzmun |
|---|---|
| İkili məlumatların ötürülməsi | audio/speech, audio/speech/clone, outputs/{filename} üçün uğurlu cavab audionu olduğu kimi ötürməklə yanaşı, onu CleviDrive-da da saxlayır. |
| Qəbz başlıqları | 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 başlıqlarını cavaba daxil edir. |
| Product seçimi | audio/speech və audio/transcriptions sorğunun gövdəsindəki model vasitəsilə Product seçir. Səs və diaqnostika yolları üçün X-Product-Sku başlığı və ya product_sku sorğu parametri tələb olunur. |
| Səs üzərində mülkiyyət | Klonlanan və ya qeydiyyatdan keçirilən səslər onları yaradan tərəfə məxsusdur. Başqa sahibin səsi ilə sintez etməyə və ya onu silməyə cəhd etdikdə 403 qaytarılır və GET /voices siyahısına yalnız istifadəçinin özünə məxsus səslər daxil edilir. |
| Ölçü və vaxt | Sorğunun yuxarı həddi 28 MiB, upstream çağırışının vaxt limiti isə 5 dəqiqədir. |
| provider sıxlığı | upstream sıx olduqda 409 olduğu kimi ötürülür və Retry-After varsa, həmin dəyər də birlikdə ötürülür. Şlüz təkrar cəhd etmir və sorğunu növbəyə əlavə etmir. |