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.
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:
ub_live_…— üretim; ön ödemeli kredinizden faturalandırılır.ub_test_…— yerel geliştirme için. Canlı bir anahtarla tamamen aynı şekilde, aynı token başına ücretle, aynı ön ödemeli krediden faturalandırılır; tek fark anahtar başına daha düşük bir istek limitidir (bkz. İstek limitleri). Test anahtarı ayrı, iptal edilebilir bir kimlik bilgisidir — ücretsiz bir kademe değildir.
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.
| Model | Takma adın hedefi | Bağlam | En uygun olduğu iş |
|---|---|---|---|
| unbleep | unbleep-250811 | 256K | Genel kullanım — varsayılan |
| unbleep-high | unbleep-high-250811 | 1M | En büyük işler — uzun belgeler & bütün kod tabanları |
| unbleep-mini | unbleep-mini-250811 | 32K | Ucuz, 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 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
}'
{
"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.
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.
{
"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:
{
"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.
off— filtresiz temel çizgi (varsayılan). Enjekte edilen ret yok.research— tam olarakoffgibi yanıt verir. Değer, kendi raporlamanız için kullanım satırına kaydedilir; ek bir tarama uygulamaz.strict— mesaj metnini servis engel listesine karşı tarar ve eşleşme olduğunda bir politika hatası döndürür. Engel listesi operatör tarafından yönetilir ve bu seçeneği açan herkes için geçerlidir; hesap bazında yapılandırılabilen bir engel listesi yoktur.
{
"model": "unbleep",
"messages": […],
"policy": "research"
}
Hatalar
Hatalar OpenAI zarfını kullanır; mevcut hata işleme kodunuz değişmeden çalışır.
{
"error": {
"type": "invalid_request_error",
"code": "invalid_api_key",
"message": "Incorrect API key provided."
}
}
| Durum | Anlamı |
|---|---|
| 401 | Eksik ya da geçersiz anahtar |
| 402 | Kredi bitti — devam etmek için bakiye yükleyin |
| 422 | policy: 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:
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.
{
"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.