AI Gateway Genel Bakış
Apinizer AI Gateway Nedir?
Apinizer AI Gateway, uygulamalarınız ile birden fazla büyük dil modeli (LLM) sağlayıcısı arasında konumlanmış, OpenAI-uyumlu bir proxy ve gateway'dir. Her sağlayıcıya ayrı bağlantı yönetmek yerine, Apinizer'a bir kez bağlanıp istemci kodunuzda değişiklik yapmadan istekleri herhangi bir desteklenen LLM'ye yönlendirebilirsiniz.
LLM, token, embedding gibi temel yapay zeka kavramlarına buradan girmiyoruz — bunlar için Yapay Zeka Temel Kavramları sayfasına bakabilirsiniz. Bu sayfa, Apinizer'ın AI Gateway modülünün ne yaptığına odaklanır.
Temel faydalar:
- Tek uç nokta — Python OpenAI SDK ile uyumlu, yapılandırılabilir
base_urlüzerinden entegrasyon - Çoklu sağlayıcı desteği ve yanıt normalizasyonu — OpenAI-uyumlu hizmetlerin yanı sıra native formatlı Anthropic, Google Vertex (Gemini) ve AWS Bedrock sağlayıcılarına da bağlanırsınız; tüm sağlayıcı yanıtları OpenAI canonical formatına normalize edilir
- Gerçek akış (streaming) — Sunucu Tarafından Gönderilen Olaylar (SSE) ile chunk başına iletim
- Yerleşik kontroller — İstek filtreleme, kişisel veri (PII) maskeleme, semantik önbellekleme, token kotaları ve maliyet takibi
- Kurumsal görünürlük — Kullanıcı, ekip, model ve dağıtım türüne (bulut vs. şirket içi) göre ayrıntılı kullanım raporları
Her AI proxy'nin AI Proxy Routing ekranında kendine ait bir Streaming ayarı bulunur. Bu ayar kapalıyken gateway, istemci istek gövdesinde stream: true gönderse bile isteği her zaman tekil (non-streaming) bir yanıt olarak işler — sağlayıcıya iletmeden önce bu alanı false olarak değiştirir (ve stream_options alanını kaldırır). Böylece token sayıları ve maliyet, istemcinin ne gönderdiğinden bağımsız olarak Trafik raporunda doğru görünür. Streaming açıkken istek etkilenmez ve yukarıda anlatıldığı gibi sunucu tarafından gönderilen olaylarla (SSE) iletilir.
Desteklenen LLM Sağlayıcıları
- Bulut: OpenAI, Anthropic (Claude), Azure OpenAI, Google Vertex AI, AWS Bedrock
- Şirket içi: vLLM, Ollama, Hugging Face TGI
- Özel: OpenAI-uyumlu herhangi bir API uç noktası
Her sağlayıcı, şifreli API kimlik bilgileri ve dağıtım meta verileri içeren bir bağlantı aracılığıyla yapılandırılır.
Sağlayıcı bağlantısı oluşturma ve dağıtım türü ayarları için LLM Sağlayıcıları ve Bağlantılar sayfasına bakın.
İstemci tarafında her zaman OpenAI formatı kullanılır — Apinizer'a native Anthropic Messages veya Gemini formatıyla giriş yapmazsınız; tek arayüz OpenAI'dir. Sağlayıcı yanıtları OpenAI canonical formatına normalize edilir; böylece mevcut OpenAI istemci kodunuz, hangi sağlayıcıya yönlendirildiğinden bağımsız olarak çalışır.
Nasıl Çalışır?
İstek Akışı
Her istek aşağıdaki aşamalardan geçer:
- Alım — İstek OpenAI formatı JSON olarak doğrulanır ve ayrıştırılır
- Korumalar (isteğe bağlı) — Kişisel veri maskeleme, içerik filtreleri, istem denetimi; bkz. Gelişmiş Korumalar
- Semantik Önbellek (isteğe bağlı) — Benzer istekler önbelleğe alınmış yanıtları yeniden kullanır
- Hız Sınırlaması — Token kota uygulanması (dakika, saat, gün, ay başına veya USD bütçe); bkz. Token Kotaları ve Hız Sınırlaması
- Yönlendirme — Model kimliğine göre sağlayıcı bağlantısı (ve varsa yedek hedefler) seçilir; bkz. Yönlendirme ve Failover
- Çıkarım — İstek LLM sağlayıcısına iletilir
- Yanıt — Kullanım metrikleri ile chunk başına geri akışı yapılır
OpenAI SDK Entegrasyonu
Apinizer AI Gateway'i Python OpenAI SDK veya uyumlu herhangi bir istemci ile kullanın:
from openai import OpenAI
client = OpenAI(
api_key="apinizer-kimlik-bilgisi-anahtarınız",
base_url="https://apinizer-gateway-adresiniz.com/api/ai/v1"
)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Merhaba"}],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content, end="")
İstemci tarafı kod değişikliği gerekmez — sadece base_url'yi Apinizer gateway'inize, api_key'i ise kimlik bilgisi anahtarınıza işaret edin. Uçtan uca ilk kurulum için AI Gateway Hızlı Başlangıç sayfasına bakın.
Model Keşfi: GET /v1/models
Gateway, OpenAI'nin model listeleme ucunu (GET /v1/models) uyumlu şekilde sunar — OpenAI Python SDK'sında client.models.list(), LangChain ve LiteLLM gibi OpenAI-uyumlu araçlar model adını elle sabitlemek yerine bu uçtan otomatik keşfedebilir:
models = client.models.list()
for model in models:
print(model.id)
Yanıt gövdesi:
{
"object": "list",
"data": [
{ "id": "gpt-4o", "object": "model", "created": 0, "owned_by": "openai" },
{ "id": "claude-3-5-sonnet", "object": "model", "created": 0, "owned_by": "anthropic" }
]
}
created her zaman 0'dırApinizer'ın model kataloğunda bir oluşturma zaman damgası tutulmaz; OpenAI SDK'ları bu alanı ayrıştırır ama anlam yüklemez. Bağlam penceresi, fiyatlandırma, yetenek (capability) gibi ek katalog detayları da bilerek dönülmez — keşif ucu bir bilgi ifşası yüzeyi değildir.
Liste bu proxy'nin servis yüzeyidir, sağlayıcı kataloğu DEĞİL
Dönen liste, o LLM sağlayıcısının tüm kataloğu değildir — yalnızca bu AI proxy'nin aiRouting yapılandırmasında (birincil model + birincil havuz + koşullu yönlendirme + failover zinciri, bkz. Yönlendirme ve Failover) tanımlı, gerçekten servis edilebilir modellerin birleşimidir. Üç eleme kuralı sırayla uygulanır:
- Aday modelin bağlı olduğu sağlayıcı bağlantısı deploy edilmemiş veya pasif ise düşürülür.
- Sağlayıcı bağlantısının kendi izin-verilen-model listesi varsa ve model bu listede değilse düşürülür.
- Model, kataloğunda tanımlı sunset tarihi geçmiş ise düşürülür — çalışma anında zaten 400 hatası alacak bir model listede reklam edilmez. Kullanımdan kaldırıldı (deprecated) işareti tek başına eleme sebebi değildir; deprecated bir model hâlâ çalışıyorsa listede görünür.
Hiçbir model hayatta kalmazsa bu bir hata değildir: {"object":"list","data":[]} ile HTTP 200 döner.
Bu uç yalnız listeleme yapar; OpenAI'nin tekil model getirme ucu (GET /v1/models/{model_id}, SDK'da client.models.retrieve(...)) kapsam dışıdır ve eşleşmez.
Kimlik doğrulama ve normal politika zinciri aynen işler
Keşif ucu bir .well-known benzeri kimlik-doğrulama-muaf yol değildir — proxy'nin normal politika zinciri (auth politikaları dahil) bu istekte de aynen çalışır ve blockAnonymousRequests açık bir proxy'de kimliksiz bir keşif isteği de 401 alır.
Keşif isteği hiçbir sağlayıcıya çıkmaz; bu yüzden token/maliyet ölçümü tetiklenmez. Trafik raporunda bu istek görünür, ama kullanım ve maliyet sütunları boş kalır. Uç yalnız GET kabul eder — başka bir HTTP metoduyla çağrılırsa 405 döner.
AI Gateway ile Klasik API Proxy Farkı
Bir AI Gateway, Apinizer'da aynı ApiProxy varlığıdır — aynı oluşturma/deploy/undeploy akışından, aynı ortam yönetiminden ve aynı proxy listesinden geçer, aynı uçlarla yönetilir. Fark, isteğin backend'e nasıl yönlendirildiğindedir:
- Klasik API proxy →
routingnesnesi (adres listesi, circuit breaker, mTLS, proxy sunucu, NTLM vb.) - AI Gateway →
aiRoutingnesnesi (LLM sağlayıcı bağlantısı, model, birincil havuz, koşullu yönlendirme, failover zinciri) — bkz. Yönlendirme ve Failover
AI Gateway çalışma zamanı klasik routing nesnesini hiç okumaz; bu nedenle routing'e bağlı ayarlar bir AI Gateway üzerinde anlamsızdır.
Aşağıdaki 12 ayar ucu (PATCH .../apiProxies/{apiProxyName}/settings/<X>/), bir AI Gateway'ine uygulandığında artık HTTP 400 döner. Önceden bu uçlar HTTP 200 dönüyordu ama hiçbir etkisi olmuyordu (sessiz no-op) — bu davranış artık açıkça reddediliyor:
circuit-breaker · proxy-server · mtls · ntlm · connection · error-handling · custom-message · grpc · websocket · addresses · routing-status · metadata
AI Gateway'de mTLS, proxy sunucu ve circuit breaker gibi ayarlar aiRouting üzerinden yapılır — doğru yol PUT .../apiProxies/{apiProxyName}/ai-routing/'dir. metadata ucunun 400 kontrolü koşulludur: yalnızca gövdede fixSoapApiPortType alanı gönderildiğinde tetiklenir (bu alan yalnızca klasik routing'e özgüdür) — düz bir metadata güncellemesi AI Gateway'de sorunsuz çalışmaya devam eder.
Proxy tipinden bağımsız 11 ayar ucu — CORS, önbellek, idempotency, XML/JSON hata şablonu, forwarded-ip-header, spec-access-type, client-route, keys, bakım modu, iz kaydı (trace), trafik log — AI Gateway'de de çalışmaya devam eder, dokunulmadı.
Detaylar için bkz. API Referansı: API Proxy Settings.
Temel Kavramlar
Her sağlayıcı bağlantısının Bulut (sağlayıcı barındırır) veya Şirket içi (kendi altyapınızda çalışır) olarak işaretlenen bir dağıtım türü vardır; maliyet atfı ve kapasite planlamasında kullanılır.
Model başına ve kapsam başına (dakika/saat/gün/ay veya USD bütçe) kotalarla kullanımı ve harcamayı sınırlarsınız.
Kullanımı kişi, ekip, model, sağlayıcı ve dağıtım türüne göre; maliyeti isteğe bağlı çoklu para birimiyle izlersiniz.
Sonraki Adımlar
İlk AI Gateway'inizi uçtan uca kurun
Sağlayıcı bağlantılarını yapılandırın
Hazır model kataloğunu ve birim fiyatları görün
Failover zinciri ve yönlendirme stratejileri
Kota kurallarını ve izlemeyi ayarlayın
Fiyatlandırma ve çoklu para birimi görüntüsünü yapılandırın
Kullanım ve maliyet dağılımlarını görüntüleyin
DLP, döngü, konu-dışı ve aşırı boyut korumalarını ekleyin
Ses (STT/TTS) ve görsel üretim uç noktalarını kullanın
Ajanlar arası (Agent2Agent) iletişimi yapılandırın
İstek zincirini zaman çizelgesinde inceleyin ve yeniden çalıştırın