Developer guide

Hızlı başlangıç

Hızlı başlangıç

Bu belge, CLEVI API anahtarının alınmasından ilk isteğin gönderilip yanıtın alınmasına kadar olan süreci kapsar. Tek bir adres ve tek bir anahtarla cip-5.5-im ve cip-5.5-mm çağrılır. İstek ve yanıtlar OpenAI Chat Completions biçimini izlediğinden, kullandığınız OpenAI SDK'sında yalnızca base_url ve api_key değerlerini değiştirmeniz yeterlidir. Anthropic SDK için yol ile embedding ve ses yolları API çağırma belgesinde yer alır.

API anahtarı alma

Anahtarı CLEVI Cloud konsolundaki API anahtarı ekranından alabilirsiniz. Aynı ekrandan anahtarı iptal edebilir ve kullanım kapsamını yönetebilirsiniz. Aşağıdaki adımları izleyerek isteklerde kullanacağınız bir anahtar elde edebilirsiniz.

  1. https://platform.clevi.net/account/login adresinden giriş yapın veya hesap oluşturun.
  2. https://clevi.app/cloud adresinden bir çalışma alanı ekleyin.
  3. https://clevi.app/cloud/keys adresine gidin.
  4. Yeni bir anahtar oluşturun ve değerini kopyalayın.
  5. Kopyaladığınız değeri bir ortam değişkenine kaydedin.

Bu belgedeki örneklerde sk-... yerine aldığınız anahtarı girin. Aşağıdaki komutla anahtarı bir ortam değişkenine kaydederseniz sonraki örnekleri olduğu gibi kopyalayıp çalıştırabilirsiniz.

export CLEVI_API_KEY="sk-..."

Model seçme

İstek gövdesinin model alanına aşağıdaki adları olduğu gibi girin. İki model de aynı adresi ve aynı istek biçimini kullanır; metin ve görselleri girdi olarak alır.

  • cip-5.5-im
  • cip-5.5-mm
Model kimliğiÖlçekGirdi sınırıMaksimum çıktıUygun görevler
cip-5.5-im360B256K64KHedefi ve kapsamı net olan işler. Yanıt hızına ve işleme kapasitesine öncelik verir.
cip-5.5-mm800B512K64KBirden fazla materyal ve koşulun bir arada değerlendirilmesini gerektiren karmaşık işler. Uzun bağlam analizinde ve çok aşamalı ajanlarda kullanılır.

Hesabınızdan gerçekten çağrılabilen modeller için temel alınacak kaynak, playground'daki model listesi ve GET /models yanıtıdır. Tüm model listesi ve model bazında izin verilen çağrılar model belgelerinde, tahmini düşülecek kredi miktarı ise konsolun kullanım ekranında yer alır.

POST /api/v2/aiservice/openai/v1/chat/completions

Mesaj dizisini ve model adını alır, modelin oluşturduğu mesajı choices dizisi içinde döndürür. Tam adres https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions şeklindedir. İstek gövdesi application/json formatındadır ve kimlik doğrulama için Authorization başlığına Bearer ön ekiyle birlikte anahtar eklenir. Anahtarı X-API-Key başlığıyla da gönderebilirsiniz; her iki başlık da belirtilirse X-API-Key değeri öncelikli olarak uygulanır.

İstek parametreleri
AdTürZorunluAçıklama
modelstringEvetcip-5.5-im veya cip-5.5-mm
messagesarrayEvetKonuşma mesajı nesnelerinden oluşan dizi. En az 1 adet
messages[].rolestringEvetsystem · user · assistant değerlerinden biri
messages[].contentstringEvetMesaj gövdesi
streambooleanHayırtrue ise yanıtı Server-Sent Events parçaları olarak alır
max_tokensintegerHayırYanıtta oluşturulacak maksimum token sayısı
temperaturenumberHayırDeğer ne kadar yüksekse aynı istek için farklı yanıtlar alma olasılığı o kadar artar
curl https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions \
  -H "Authorization: Bearer $CLEVI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cip-5.5-im",
    "messages": [
      {"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}
    ]
  }'
import os
import requests

url = "https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions"

response = requests.post(
    url,
    headers={"Authorization": f"Bearer {os.environ['CLEVI_API_KEY']}"},
    json={
        "model": "cip-5.5-im",
        "messages": [{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
    },
    timeout=60,
)

print(response.json()["choices"][0]["message"]["content"])
const url =
  "https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions";

const response = await fetch(url, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CLEVI_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "cip-5.5-im",
    messages: [{ role: "user", content: "CLEVI API를 한 문장으로 설명해 줘." }],
  }),
});

const data = await response.json();
console.log(data.choices[0].message.content);

Yanıt örneğidir. id, created ve usage değerleri her istekte farklıdır.

{
  "id": "chatcmpl-3f0a9c72",
  "object": "chat.completion",
  "created": 1755500000,
  "model": "cip-5.5-im",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "CLEVI API는 주소 하나로 여러 모델을 호출하는 채팅 완료 API입니다."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 19,
    "total_tokens": 40
  }
}

OpenAI SDK ile çağrı yapma

OpenAI SDK'sinin base_url değerini https://platform.clevi.net/api/v2/aiservice/openai/v1 olarak değiştirin ve api_key alanına CLEVI anahtarını ekleyin. Diğer çağrı kodunu olduğu gibi bırakın.

# pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["CLEVI_API_KEY"],
    base_url="https://platform.clevi.net/api/v2/aiservice/openai/v1",
)

completion = client.chat.completions.create(
    model="cip-5.5-mm",
    messages=[{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
)

print(completion.choices[0].message.content)
// npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.CLEVI_API_KEY,
  baseURL: "https://platform.clevi.net/api/v2/aiservice/openai/v1",
});

const completion = await client.chat.completions.create({
  model: "cip-5.5-mm",
  messages: [{ role: "user", content: "CLEVI API를 한 문장으로 설명해 줘." }],
});

console.log(completion.choices[0].message.content);

Akış olarak alma

İstek gövdesine stream değerini true olarak eklerseniz sunucu Server-Sent Events ile yanıt verir. İlk parça ile birlikte Content-Type: text/event-stream, Cache-Control: no-cache, X-Accel-Buffering: no başlıkları gönderilir ve sonraki her parçada data: satırında bir chat.completion.chunk nesnesi bulunur. Son satır data: [DONE] olur. Aşağıdaki Python ve TypeScript örnekleri önceki bölümde oluşturulan client'ı olduğu gibi kullanır.

curl -N https://platform.clevi.net/api/v2/aiservice/openai/v1/chat/completions \
  -H "Authorization: Bearer $CLEVI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cip-5.5-im",
    "messages": [{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
    "stream": true
  }'
stream = client.chat.completions.create(
    model="cip-5.5-im",
    messages=[{"role": "user", "content": "CLEVI API를 한 문장으로 설명해 줘."}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="")
const stream = await client.chat.completions.create({
  model: "cip-5.5-im",
  messages: [{ role: "user", content: "CLEVI API를 한 문장으로 설명해 줘." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Parça örneğidir.

data: {"id":"chatcmpl-3f0a9c72","object":"chat.completion.chunk","model":"cip-5.5-im","choices":[{"index":0,"delta":{"content":"CLEVI"},"finish_reason":null}]}

data: {"id":"chatcmpl-3f0a9c72","object":"chat.completion.chunk","model":"cip-5.5-im","choices":[{"index":0,"delta":{"content":" API는"},"finish_reason":null}]}

data: {"id":"chatcmpl-3f0a9c72","object":"chat.completion.chunk","model":"cip-5.5-im","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

Akış sırasında bir hata oluşursa aynı hata JSON'ı data: satırı olarak gelir ve HTTP durum kodu da buna göre değişir.

Hata

Başarısız istekler nedeni HTTP durum koduyla bildirir. Upstream 4xx·5xx döndürürse bu kod olduğu gibi iletilir. Önce aşağıdaki tablodaki çözümü kontrol edin; aynı kod tekrarlanırsa istek zamanını, gönderilen gövdeyi ve X-Request-Id değerini kaydedin.

HTTP durum kodu
KodAnlamıÇözüm
400İstek gövdesi biçime uygun değilmodel ve messages alanlarının mevcut olduğunu ve JSON’un kapatıldığını kontrol edin
401Anahtar yok, süresi dolmuş veya iptal edilmişAPI anahtarları ekranından anahtarın durumunu kontrol edin ve Authorization başlığının Bearer ile başladığını doğrulayın
403Modele erişim izniniz yok, kullanım sınırını aştınız veya krediniz yetersizNedeni error.message üzerinden kontrol edin. Sınırı Genel Bakış’taki Atanan kullanım sınırı bölümünden, bakiyeyi ve planı ise Plan ve krediler bölümünden görebilirsiniz
404Model yok, bu anahtarla erişilemiyor veya yol mevcut değilGET /models yanıtında model adının bulunduğunu ve adresin /api/v2/aiservice/openai/v1/chat/completions ile bittiğini kontrol edin
429Yukarı akış sağlayıcısı hız sınırı uyguladıRetry-After başlığı varsa belirtilen süre kadar bekleyin; yoksa yeniden deneme aralığını her seferinde iki katına çıkararak tekrar gönderin
5xxAğ geçidinde veya yukarı akışta geçici bir hata oluştuYeniden deneme aralığını her seferinde iki katına çıkararak tekrar gönderin; sorun tekrarlanırsa Yardım ve İletişim üzerinden X-Request-Id ile bildirin

402 döndürülmez. Yetersiz kredi ve kullanım sınırının aşılması 403 olarak döner. Hata gövdesi aşağıdaki biçimdedir ve neden error.message içinde yer alır.

{"error":{"message":"API key is required.","type":"invalid_request_error"}}

İsteğe X-Request-Id başlığını eklerseniz iletişim kurduğunuzda bu değerle izleme yapılır. Göndermezseniz sunucu bir değer oluşturur.

Sonraki adımlar

Model adlarını ve parametreleri değiştirerek sonuçları karşılaştırmak için oyun alanını kullanın. Yeni anahtar oluşturmak veya anahtarı iptal etmek için API anahtarları ekranını kullanın. Sırada okuyabileceğiniz belgeler şunlardır.

  • Modeller: Tüm model listesi, model bazında özellikler ve izin verilen çağrılar
  • API çağrısı yapma: Anthropic uyumlu yol, yerleştirme ve ses yolları, akış kuralları
  • Hata kodları: Tüm durum kodlarının tablosu ve yeniden deneme kuralları

Oyun alanını aç

API anahtarlarını yönet

Dil ve bölge

Makine çevirisiyle çevrilen diller clevi/cip-5.5-im tarafından çevrilir ve bu şekilde işaretlenir. Bu, yayımlanmış site paketi bulunan diller için geçerlidir.

137 dil

Önerilen

1

Doğu Asya

7

Güneydoğu Asya

11

Güney Asya

18

Orta Asya

5

Orta Doğu ve Kafkasya

10

Batı Avrupa ve Güney Avrupa

17

Birleşik Krallık ve İrlanda

4

Kuzey Avrupa

10

Orta Avrupa ve Balkanlar

14

Doğu Avrupa

5

Doğu Afrika

8

Batı Afrika ve Orta Afrika

9

Afrika’nın Güneyi

8

Amerika

5

Okyanusya

5