API referansı

unbleep, OpenAI Chat Completions API'sini konuşur. Daha önce OpenAI çağırdıysanız bu API'yi zaten biliyorsunuz — istemcinizi https://unbleep.ai/v1 adresine yönlendirin ve anahtarı değiştirin.

Hızlı başlangıç

OpenAI SDK'sını kurun, temel URL'yi ve anahtarınızı ayarlayın, bir çağrı yapın.

python
from openai import OpenAI

client = OpenAI(
    base_url="https://unbleep.ai/v1",
    api_key="ub_live_9f2c…",
)

resp = client.chat.completions.create(
    model="unbleep",
    messages=[{"role": "user", "content": "Say hello."}],
)
print(resp.choices[0].message.content)

Kimlik doğrulama

Her istek, Authorization başlığında bir Bearer token gerektirir. Anahtarlar bir önek taşır; böylece bir sızıntı, gizli anahtar tarayıcıları için hemen fark edilir:

başlık
Authorization: Bearer ub_live_9f2c…

Anahtarları sunucu tarafında tutun. Canlı bir anahtarı asla tarayıcı ya da mobil koda gömmeyin.

Modeller

Bu kimliklerden birini model olarak gönderin. Yalın takma ad her zaman en son derlemeyi gösterir; tarihli anlık görüntü kimlikleri de kabul edilir ve şu anda aynı derlemeye çözümlenir. Hangi biçimi gönderirseniz gönderin, yanıt yalın kimliği bildirir — unbleep-250811 için yapılan bir istek "model": "unbleep" olarak döner.

ModelTakma adın hedefiBağlamEn uygun olduğu iş
unbleepunbleep-250811256KGenel kullanım — varsayılan
unbleep-highunbleep-high-2508111MEn büyük işler — uzun belgeler & bütün kod tabanları
unbleep-miniunbleep-mini-25081132KUcuz, hızlı, yüksek hacimli çağrılar

Chat completions

POST /v1/chat/completions — temel uç nokta. İstek ve yanıt gövdeleri OpenAI şemasıyla eşleşir.

curl · istek
curl https://unbleep.ai/v1/chat/completions \
  -H "Authorization: Bearer ub_live_9f2c…" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "unbleep",
    "messages": [
      {"role": "system", "content": "You are terse."},
      {"role": "user", "content": "Explain abliteration in one line."}
    ],
    "temperature": 0.7,
    "max_tokens": 256
  }'
json · yanıt
{
  "id": "chatcmpl_a1b2c3",
  "object": "chat.completion",
  "model": "unbleep",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "…" },
    "finish_reason": "stop"
  }],
  "usage": { "prompt_tokens": 24, "completion_tokens": 18, "total_tokens": 42 }
}

Akış

Server-Sent Events almak için "stream": true gönderin. Her olay, bir delta içeren bir chat.completion.chunk nesnesidir; akış, düz metin olarak data: [DONE] ile sona erer.

olay akışı
data: {"choices":[{"delta":{"content":"Ab"}}]}
data: {"choices":[{"delta":{"content":"literation"}}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}]}
data: [DONE]

Akıl yürütme

Akıl yürütme modelleri yanıtlamadan önce düşünür. Düşünce izi, alışıldık content alanının yanında reasoning_content olarak döner — normal bir çağrıda message üzerinde, akış sırasında ise delta üzerinde. Alan yalnızca model gerçekten bir iz ürettiğinde bulunur; bu yüzden onu isteğe bağlı kabul edin ve yanıtın kendisi için content alanını okuyun.

json · yanıt parçası
{
  "index": 0,
  "message": {
    "role": "assistant",
    "reasoning_content": "The question asks for one line, so…",
    "content": "…"
  },
  "finish_reason": "stop"
}

Akıl yürütme token'ları faturalandırılır. İz, üretilmiş çıktıdır ve kodunuz alanı okusun ya da okumasın, modelin normal çıkış ücretinden ücretlendirilir. Kısa bir soruya uzun bir düşünme süreci, faturanızda gerçek bir kalemdir.

Akıl yürütmeyi kapatmak ve tamamlama bütçesinin iz yerine yanıta gitmesini sağlamak için "thinking": false gönderin:

json · istek parçası
{
  "model": "unbleep",
  "messages": […],
  "thinking": false
}

Politika kadranı

unbleep'i farklı kılan özellik. İsteğe bağlı policy parametresi, bir istek üzerinde ne kadar denetim uygulanacağını belirler. Varsayılan değeri off.

json · istek parçası
{
  "model": "unbleep",
  "messages": […],
  "policy": "research"
}

Hatalar

Hatalar OpenAI zarfını kullanır; mevcut hata işleme kodunuz değişmeden çalışır.

json · 401
{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_api_key",
    "message": "Incorrect API key provided."
  }
}
DurumAnlamı
401Eksik ya da geçersiz anahtar
402Kredi bitti — devam etmek için bakiye yükleyin
422policy: strict tarafından engellendi
429İstek limiti — bekleyin ve yeniden deneyin
5xxÜst akış hatası — geri çekilerek (backoff) yeniden denemek güvenlidir

İstek limitleri

Her ikisi de hesap bazında olmak üzere iki bağımsız limit uygulanır: bir istek hızı ve bir eşzamanlılık sınırı.

İstek hızı

Hesap başına dakikada 60 istek, kayan 60 saniyelik bir pencere üzerinden ölçülür. Limit anahtara değil hesaba uygulanır — fazladan anahtar üretmek ek kapasite sağlamaz; sahip olduğunuz her anahtar aynı 60'tan harcar. Test anahtarı, anahtar başına dakikada 15 istek gibi daha düşük bir tavan taşır; yine de aynı hesap penceresinden düşer.

Her yanıt, istek temponuzu tahmine dayanmadan ayarlayabilmeniz için standart başlıkları taşır. Başlıklar, sizi durdurmaya en yakın olan pencereyi bildirir:

yanıt başlıkları
x-ratelimit-limit-requests: 60
x-ratelimit-remaining-requests: 58
x-ratelimit-reset-requests: 43

x-ratelimit-reset-requests yalın bir tam sayıdır — pencerenin bir yer açmasına kalan tam saniye sayısı, birim son eki olmadan. Süre dizesi olarak değil, sayı olarak ayrıştırın.

Eşzamanlılık

Hesap başına aynı anda en fazla 8 istek işlenir. Dokuzuncu eşzamanlı istek, 429 ve too_many_concurrent_requests koduyla anında reddedilir; yanıt retry-after: 1 taşır. Reddedilen bir istek için hiçbir şey faturalandırılmaz. Akışlı bir çağrı, akış bitene kadar yerini tutar; bu yüzden sizi sınıra genellikle uzun akışlar getirir.

json · 429
{
  "error": {
    "type": "rate_limit_error",
    "code": "too_many_concurrent_requests",
    "message": "Too many concurrent requests for this account (limit 8)."
  }
}

Her iki tavan da standart hesaplar için sabittir — ön ödemeli bakiyenizle ölçeklenmez. Daha fazla alan mı gerekiyor? Enterprise bu sınırları yükseltir.