Developer guide
API çağrısı yapma
API uyumlu yollar ve akış·ses kuralları
CLEVI ağ geçidinin çağrı yolları, OpenAI uyumlu ve Anthropic uyumlu spesifikasyonlara ayrılır.
Her iki spesifikasyon da aynı API anahtarını kullanır ve konuşmalı akıl yürütme modelleri her iki spesifikasyon üzerinden de çağrılabilir.
Gömme ve ses·voice yolları yalnızca OpenAI uyumlu spesifikasyonda bulunur;
Anthropic uyumlu spesifikasyon ise messages, count_tokens ve models olmak üzere üç yol sağlar.
Akış, istek gövdesindeki stream ile etkinleştirilir; gömme ve bazı modeller·yollar tarafından desteklenmez. Ses·voice yolları, sesi olduğu gibi döndürme ve çıktıları CleviDrive'da 3 gün boyunca saklama gibi genel akıl yürütmeden farklı kurallara uyar.
Model kimlikleri ve modele göre izin verilen çağrılar model sayfasında, kimlik doğrulama üst bilgileri ve base URL ise API anahtarıyla kimlik doğrulama sayfasında yer alır.
Yol seçimi
Yapmak istediğiniz işe ve kullandığınız SDK'ya göre bir yol seçin. Tablodaki yollar, her spesifikasyonun base URL'sinin sonuna eklenen göreli yollardır.
| Yapmak istediğiniz iş | Spesifikasyon | Yol |
|---|---|---|
| Konuşmalı akıl yürütme, OpenAI SDK kullanımı | OpenAI uyumlu | POST /chat/completions veya POST /responses |
| Konuşmalı akıl yürütme, Anthropic SDK kullanımı | Anthropic uyumlu | POST /v1/messages |
| Gömme oluşturma | OpenAI uyumlu | POST /embeddings |
| Ses sentezi·transkripsiyon, voice yönetimi | OpenAI uyumlu | /audio ve /voices altındaki yollar |
| Çağrılabilir modelleri kontrol etme | Her ikisi | GET /models |
OpenAI uyumlu yollar
OpenAI uyumlu spesifikasyonun base URL'si https://platform.clevi.net/api/v2/aiservice/openai/v1 adresidir. İstek ve yanıt gövdeleri OpenAI spesifikasyonunu izler. Aşağıdaki tabloda akıl yürütme ve model yolları ana bilgisayar temelinde tam yollar olarak gösterilir; ses·voice yolları ise ilerideki ses ve voice yolları bölümünde düzenlenmiştir.
| Yöntem | Yol | Açıklama |
|---|---|---|
| POST | /api/v2/aiservice/openai/v1/chat/completions | Konuşma tabanlı çıkarım talep eder. stream etkinleştirildiğinde SSE üzerinden yanıt verir. |
| POST | /api/v2/aiservice/openai/v1/responses | Responses biçimini kullanarak çağrı yapar. stream desteklenir. |
| GET | /api/v2/aiservice/openai/v1/responses/{responseId} | Kaydedilmiş tek bir yanıtı getirir. |
| GET | /api/v2/aiservice/openai/v1/responses/{responseId}/input_items | Kaydedilmiş yanıtın giriş öğeleri listesini getirir. |
| POST | /api/v2/aiservice/openai/v1/responses/{responseId}/cancel | Arka planda devam eden yanıtı iptal eder. |
| DELETE | /api/v2/aiservice/openai/v1/responses/{responseId} | Kaydedilmiş yanıtı siler. |
| POST | /api/v2/aiservice/openai/v1/completions | Eski metin tamamlama isteğinde bulunur. stream desteklenir. |
| POST | /api/v2/aiservice/openai/v1/embeddings | Embedding oluşturur. Akış desteklenmez. |
| GET | /api/v2/aiservice/openai/v1/models | Bu anahtarla çağrılabilen modellerin listesini döndürür. |
| GET | /api/v2/aiservice/openai/v1/models/{modelId} | Tek bir modeli getirir. Erişilemeyen bir model için 404 döndürür. |
chat/completions çağrısı yapan en basit örnektir. sk-... yerine API anahtarı ekranından aldığınız anahtarı, model yerine model sayfasındaki kimliği girin.
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": "안녕하세요"}]
}'Diğer yollar
Aşağıdaki yollar tanılama, eski sürüm uyumluluğu ve aktarım amaçlıdır.
| Yol | Açıklama |
|---|---|
| GET /api/v2/aiservice/openai/v1/healthz | Ses provider'ının durumunu kontrol eder. |
| /api/v2/aiservice/openai/v1/api/status · /api/options · /api/generate · /outputs/{filename} | Eski Cosa'nın durumunu ve seçeneklerini sorgulama, oluşturma çağrısı (multipart) ve çıktıları indirme yollarıdır. |
| /api/v2/aiservice/openai/v1/{routeKey} (GET · POST · PUT · PATCH · DELETE) | Yukarıdaki tabloda yer almayan provider yollarını kuralları uygulayarak iletir. chat/completions, completions, embeddings ve responses özel yollar tarafından işlendiğinden POST iletimi olarak çağrılırsa 404 döndürür. |
İstek ve yanıt alanlarının tamamını OpenAPI 3.0 belgesinde https://platform.clevi.net/api/v2/console/openapi/cloud-inference-v1 bulabilirsiniz. Yol listesi bu belgeden oluşturulur ve belge yalnızca konsolda oturum açmış bir oturumla açılabilir. Aynı belgeyi kullanarak istemci oluşturabilirsiniz.
Anthropic uyumlu yollar
Anthropic uyumlu spesifikasyonun base URL'si https://platform.clevi.net/api/v2/aiservice/anthropic olup Anthropic SDK'sı istek yoluna /v1'i doğrudan ekler. İstek ve yanıt gövdeleri Anthropic Messages spesifikasyonunu izler.
| Yöntem | Yol | Açıklama |
|---|---|---|
| POST | /api/v2/aiservice/anthropic/v1/messages | Messages spesifikasyonuna uygun şekilde çağrı yapar. model, messages ve max_tokens gereklidir; stream desteklenir. |
| POST | /api/v2/aiservice/anthropic/v1/messages/count_tokens | Yalnızca giriş belirteçlerinin sayısını ücretlendirme olmadan tahmin eder. max_tokens gerekli değildir. |
| GET | /api/v2/aiservice/anthropic/v1/models | İmleç sayfalandırma yöntemiyle model listesini döndürür. limit 1~1000 arasında olmalıdır; aralık dışındaysa 400 döndürür. |
| GET | /api/v2/aiservice/anthropic/v1/models/{modelId} | Tek bir modeli sorgular. Erişilemeyen bir modelse 404 döndürür. |
messages çağrısı için minimum örnektir.
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ığı atlanırsa 2023-06-01 olarak işlenir. Ağ geçidi, anthropic-version ve anthropic-beta başlıklarını olduğu gibi iletir.
Akış (SSE)
İstek gövdesinde stream true olarak ayarlanırsa sunucu, Server-Sent Events ile yanıt verir. Destek durumu yol ve modele göre aşağıdaki gibi değişir.
| Hedef | Davranış |
|---|---|
| OpenAI uyumlu POST /chat/completions · POST /completions · POST /responses | stream desteklenir. |
| Anthropic uyumlu POST /v1/messages | stream desteklenir. |
| POST /embeddings | Akış desteklenmez. |
| Ivy arama serisi modelleri (ivy-4-mm-search vb.) | stream etkinleştirilse bile sunucu bunu devre dışı bırakır ve tek seferde yanıt verir. |
| GET /responses/{responseId}?stream=true | 400 döndürür. Arka plan yanıtlarının kullanımını tam olarak yalnızca bir kez ölçmek mümkün olana kadar kapalı tutulan yoldur. |
İlk parçayla birlikte aşağıdaki üç başlığı gönderir. Daha sonra her parçada data: satırını gönderip hemen flush eder ve yalnızca üst akış bir etkinlik adı sağladığında event: satırını da gönderir.
- Content-Type: text/event-stream
- Cache-Control: no-cache
- X-Accel-Buffering: no
Anthropic uyumlu yolun parçalarında event satırı ile data satırı eşleşir.
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"안"}}chat/completions parçaları data satırı olarak gelir ve son olarak data: [DONE] olduğu gibi iletilir.
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[...]}
data: [DONE]Akış sırasında bir hata oluşursa normal çağrıyla aynı hata JSON'ı data: tek satır olarak iletilir ve HTTP durum kodu da değiştirilir.
Ses ve voice yolları
TTS·STT ve Cosa voice yönetimi yolları OpenAI uyumlu spesifikasyona dahildir ve genel çıkarımdan farklı birkaç kural uygulanır. Hangi modelin hangi yola izin verdiğini model sayfasındaki Cosa tablosundan kontrol edin.
| Yöntem | Yol | Açıklama |
|---|---|---|
| POST | /api/v2/aiservice/openai/v1/audio/speech | Metni sese dönüştürür ve sesi olduğu gibi döndürür. |
| POST | /api/v2/aiservice/openai/v1/audio/transcriptions | Sesi metne dönüştürür (multipart). |
| POST | /api/v2/aiservice/openai/v1/audio/speech/clone | Klonlanmış sesle konuşma sentezler (multipart). |
| GET | /api/v2/aiservice/openai/v1/voices | Arayanın kullanabileceği seslerin listesini döndürür. |
| POST | /api/v2/aiservice/openai/v1/voices | Ses örneğiyle bir ses kaydeder (multipart). |
| POST | /api/v2/aiservice/openai/v1/voices/design | Açıklama metniyle sentezlenmiş bir ses oluşturur. |
| DELETE | /api/v2/aiservice/openai/v1/voices/{voiceId} | Sesi siler. Yalnızca sahibi silebilir. |
Aşağıdaki kurallar yalnızca ses ve voice yollarına uygulanır.
| Kural | İçerik |
|---|---|
| İkili aktarımı | audio/speech, audio/speech/clone ve outputs/{filename} için başarılı yanıtlar, sesi olduğu gibi iletirken aynı zamanda CleviDrive'a kaydeder. |
| Fiş başlıkları | 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ıklarını yanıta ekler. |
| Product seçimi | audio/speech ve audio/transcriptions, Product seçimini istek gövdesindeki model ile yapar. Ses ve tanılama yolları için X-Product-Sku başlığı veya product_sku sorgu parametresi gereklidir. |
| Ses sahipliği | Klonlanan veya kaydedilen sesler, onları oluşturan kişiye ait olur. Başka bir sahibin sesiyle sentezleme veya silme girişimlerinde 403 döndürülür ve GET /voices listesine yalnızca size ait sesler dahil edilir. |
| Boyut ve süre | İstek üst sınırı 28 MiB, upstream çağrısı zaman aşımı ise 5 dakikadır. |
| provider yoğunluğu | Upstream yoğun olduğunda 409 durumunu olduğu gibi iletir ve Retry-After varsa bu değeri de iletir. Ağ geçidi yeniden deneme yapmaz veya isteği kuyruğa almaz. |