Ana içeriğe geç

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.

bilgi

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ı
Streaming ayarı istemcinin isteğindeki alanı ezer

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.

bilgi

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.

İstek ve Yanıt Formatı

İ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:

  1. Alım — İstek OpenAI formatı JSON olarak doğrulanır ve ayrıştırılır
  2. Korumalar (isteğe bağlı) — Kişisel veri maskeleme, içerik filtreleri, istem denetimi; bkz. Gelişmiş Korumalar
  3. Semantik Önbellek (isteğe bağlı) — Benzer istekler önbelleğe alınmış yanıtları yeniden kullanır
  4. 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ı
  5. Yönlendirme — Model kimliğine göre sağlayıcı bağlantısı (ve varsa yedek hedefler) seçilir; bkz. Yönlendirme ve Failover
  6. Çıkarım — İstek LLM sağlayıcısına iletilir
  7. 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ır

Apinizer'ı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:

  1. Aday modelin bağlı olduğu sağlayıcı bağlantısı deploy edilmemiş veya pasif ise düşürülür.
  2. Sağlayıcı bağlantısının kendi izin-verilen-model listesi varsa ve model bu listede değilse düşürülür.
  3. 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.

Upstream çağrısı yok → ölçüm de yok

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 proxyrouting nesnesi (adres listesi, circuit breaker, mTLS, proxy sunucu, NTLM vb.)
  • AI GatewayaiRouting nesnesi (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.

Davranış Değişikliği

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

Dağıtım Türü

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.

Token Kotaları ve Maliyet

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.

Raporlar ve Analitik

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