AI Gateway

Dokümantasyon

Ağ geçidi OpenAI HTTP API'siyle konuşur; herhangi bir OpenAI SDK'sı yalnızca taban URL ve API anahtarı değiştirilerek bağlanır.

Bağlanma

OpenAI SDK'nızı (ya da curl'ü) aşağıdaki taban URL'ye yönlendirin ve anahtarlarınızdan birini taşıyıcı (bearer) jeton olarak kullanın.

Anahtarınızı hesabınızda Hesap → API Anahtarları üzerinden alın.

curl
curl https://ai-gateway.talivio.com/v1/chat/completions \
  -H "Authorization: Bearer $TALIVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "talivio/standard", "messages": [{"role": "user", "content": "Hello"}]}'
Python
from openai import OpenAI

client = OpenAI(base_url="https://ai-gateway.talivio.com/v1", api_key="TALIVIO_API_KEY")

response = client.chat.completions.create(
    model="talivio/standard",
    messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
JavaScript
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://ai-gateway.talivio.com/v1", apiKey: "TALIVIO_API_KEY" });

const response = await client.chat.completions.create({
  model: "talivio/standard",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content);

Kalite katmanları ve ham model kimlikleri

Bir modelin adını bilmenize gerek yok. "model" alanına sanal bir kalite katmanı adı yazın (ör. "talivio/standard"), ağ geçidi o kalite için en uygun modeli seçer. Anahtarınız ham modele izin veriyorsa "GET /v1/models" ayrıca "provider/model_id" biçiminde sağlayıcıya özel kimlikleri de kendi "pricing" bloğuyla listeler.

Kullanılabilir katmanlar:

  • talivio/cheap
  • talivio/standard
  • talivio/smart
  • talivio/cheap-eu
  • talivio/very-smart

Akış (streaming)

"stream": true verirseniz OpenAI-uyumlu bir Server-Sent Events akışı alırsınız. Son parça, aşağıdaki "usage.talivio" ayrıntılarını içeren "usage" bloğunu taşır.

curl
curl https://ai-gateway.talivio.com/v1/chat/completions \
  -H "Authorization: Bearer $TALIVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "talivio/standard", "stream": true, "messages": [{"role": "user", "content": "Hello"}]}'

Araçlar (tools)

Fonksiyon/araç tanımları doğrudan modele iletilir. Ağ geçidi asla bir aracı kendisi çalıştırmaz — yalnızca modelin bir aracı çağırma NİYETİNİ (yanıttaki "tool_calls") size iletir. Aracı çalıştırmak ve sonucunu geri göndermek uygulamanızın işidir.

usage.talivio bloğu

Her yanıt (akışlı ya da değil), standart token sayılarının yanında bir "usage.talivio" nesnesi taşır; böylece isteğinizi kimin karşıladığını ve maliyetini her zaman tam olarak bilirsiniz.

json
{
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 128,
    "total_tokens": 170,
    "talivio": {
      "request_id": "req_...",
      "provider": "openai",
      "model": "gpt-5-mini",
      "requested_tier": "standard",
      "resolved_tier": "standard",
      "degraded": false,
      "failover_used": false,
      "local": false,
      "cached_tokens": 0,
      "reasoning_tokens": 0,
      "cost_eur": 0.00041231,
      "fx_stale": false,
      "latency_ms": 812
    }
  }
}

Hesap uçları

Üç salt okunur uç, kendi arka ucunuzdan çıkmadan kullanım ve faturalamayı izlemenizi sağlar.

  • • "GET /v1/usage" — projenizin kullanım kayıtları.
  • • "GET /v1/billing/balance" — tahsil edilmemiş bakiyeniz, kredi tavanınız ve hesap durumunuz.
  • • "GET /v1/billing/invoices" — günlük tahsilatlarınız.

Oran sınırları

Her yanıt "X-RateLimit-Limit" ve "X-RateLimit-Remaining" başlıklarını taşır. Sınırlandığınızda "Retry-After" başlığıyla HTTP 429 alırsınız — o süre dolmadan tekrar denemeyin.

Idempotency

Aynı isteği (ör. zaman aşımı sonrası bir tekrar deneme) aynı "X-Talivio-Idempotency-Key" başlığıyla iki kez gönderirseniz ağ geçidi onu iki kez ücretlendirmez ya da çalıştırmaz.

X-Talivio-Idempotency-Key: 5f4e...

Hatalar

Her hata OpenAI hata biçimini kullanır: {"error": {"type", "code", "message"}}.

Durum Tür Kod Anlamı
401 invalid_api_key invalid_api_key API anahtarı eksik, bilinmiyor ya da iptal edilmiş.
402 insufficient_quota card_required Hesaba henüz bir kart bağlanmamış.
402 insufficient_quota payment_past_due Son tahsilat başarısız oldu; kartınızı güncelleyin.
402 insufficient_quota account_suspended Hesap askıya alındı.
402 insufficient_quota account_closed Hesap kapalı.
402 insufficient_quota credit_limit_reached Tahsil edilmemiş bakiye hesabın kredi tavanına ulaştı.
402 insufficient_quota daily_cap_reached Kendi koyduğunuz günlük harcama tavanı doldu.
400 model_not_found model_not_found İstenen katman ya da ham model yok veya anahtarınıza açık değil.
400 unknown_tier unknown_tier "model" alanı geçerli bir sanal katman adı değil.
403 policy_violation policy_violation Hesabınızın veri politikasının (ör. yalnız AB) izin vermediği bir ham model istendi.
403 scope_denied scope_denied API anahtarınız bu yetenek ya da uç için kapsamlı değil.
409 request_in_progress request_in_progress Aynı idempotency anahtarıyla bir istek hâlâ çalışıyor.
429 rate_limited rate_limited Oran ya da eşzamanlılık tavanı aşıldı; "Retry-After" başlığına bakın.
502 provider_unavailable provider_unavailable Şu an hiçbir sağlayıcı isteğe hizmet veremedi.
502 provider_quota_exhausted provider_quota_exhausted Yukarı akış sağlayıcının hesap kredisi tükendi; ağ geçidi yöneticisi bilgilendirildi. Kredi yüklenene kadar yeniden denemek işe yaramaz.