Respan Gateway İncelemesi: Eklenti Odaklı ve Açık Kaynaklı Bir LLM Ağ Geçidi
Kaynak: dev.to

İçindekiler 2 başlık
Bir uygulamayı yeni bir LLM sağlayıcısına her bağladığımızda aynı mimari sorunla karşılaşırız: Sağlayıcıya özgü ne kadar kod eklememiz gerekiyor? Farklı SDK'lar farklı istek formatları bekler ve modelleri değiştirmek çoğu zaman sadece bir model adını değiştirmekten çok daha fazlasını gerektirir. Yeniden deneme (retry) mekanizmaları, yedekleme (fallback) mantığı, kullanım takibi ve hata ayıklama süreçleri işin içine girdiğinde karmaşıklık hızla büyür. Çoğu ağ geçidi (gateway) bu sorunu "tek uç nokta, çoklu sağlayıcı" vaadiyle çözer. Ancak Respan Gateway, bu vaatten ziyade inşa edilme biçimiyle dikkat çekiyor: Neredeyse her şeyin bir eklenti (plugin) olduğu, oldukça küçük bir çekirdeğe sahip açık kaynaklı bir Rust ağ geçidi. Projeyi üretim ortamında değerlendirmeden önce bilmeniz gereken ilk önemli uyarı, projenin henüz pre-alpha aşamasında olması ve yapılandırma ile API'lerinin değişebileceğidir.
Mimari Neden En İlginç Kısım?#
Respan, 2024'ten beri barındırılan ağ geçidini LiteLLM üzerinde çalıştırdığını belirtiyor. Müşterilerin farklı API anahtarı ayarları, rotalar ve limit talepleri arttıkça, sarmalayıcı (wrapper) kodları 100.000 satırı aşmış. Ocak ayında yapılan rutin bir LiteLLM güncellemesi aralıklı bağlantı hatalarına yol açıp geri alma (rollback) sürecini zorunlu kılınca, ekip temel tasarım hedefini netleştirmiş: Mevcut özellikleri bozmadan yeni özellikler eklemek.
Sonuç olarak, Nginx'ten ilham alan ve yalnızca olayları (events) dağıtmaktan sorumlu küçük bir çekirdek ortaya çıkmış. Sağlayıcılar, protokoller (sohbet, gerçek zamanlı ses, MCP), modaliteler (görüntü, video) ve yönlendirme ile yedekleme gibi ağ geçidi özelliklerinin tamamı birer eklenti olarak kurgulanmış. Örneğin, Mistral sağlayıcısı yalnızca 22 satırlık kısa bir dosyadan oluşuyor. Groq'un token kullanımını kendi özel alanında raporlaması gibi sağlayıcıya özgü tuhaflıklar (quirks) ise kendi testlerine sahip ayrı eklentiler olarak izole edilmiş. Yazılım mühendisliği açısından bu yaklaşım, kod tabanındaki sıkı bağımlılıkları (tight coupling) azaltarak regresyon riskini en aza indirir.
Bir isteğin sistem içindeki akışı şu adımlarla gerçekleşir:
- İstemci Adaptörü ve Akış Dönüşümü: Bir istemci adaptörü, gelen her HTTP veya WebSocket bağlantısını onu tanıyan ilk istemci formatına devreder ve bu format isteği tiplendirilmiş olaylardan oluşan çift yönlü bir akış (stream) olarak sunar.
- Eklenti Yürütme Sırası: Eklentiler kayıt sırasına göre çalışır; bir sağlayıcı seçebilir, akışları filtreleyebilir, ek çağrılar yapabilir, doğrudan yanıt döndürebilir veya isteği reddedebilir.
- Sağlayıcı Formatı ve Doğrudan Geçiş: Bir sağlayıcı formatı yukarı akış (upstream) bağlantısını açar; istemci ve sağlayıcı aynı API dilini konuşuyorsa ve hiçbir eklenti veriyi değiştirmezse, orijinal baytlar ve sağlayıcıya özgü alanlar dokunulmadan doğrudan geçer.
- Ortak Tipler Üzerinden Çeviri: Formatlar farklı olduğunda ise istekler; mesajlar, araç çağrıları (tool calls), sonuçlar, akışlar ve kullanım verileri için tanımlanmış ortak tipler üzerinden çevrilir.
Pratik Çıkarım ve Ödünleşimler (Trade-offs): Eklentiler dinamik olarak yüklenen veya yorumlanan yapılar değil, doğrudan derlenen (natively compiled) Rust paketleridir (crates). Sadece yapılandırma içeren şablon eklentiler, yeniden derleme gerektirmeden yeni bir sağlayıcı veya format ekleme gibi yaygın ihtiyaçları karşılar. Ancak özel bir mantık (custom logic) eklemek istediğinizde bunu derleme sürecine dahil etmeniz gerekir. Hacker News tartışmalarında belirtildiği gibi, bu durum hazır bir konteyner imajı çekmek yerine CI (Sürekli Entegrasyon) pipeline'ınıza bir derleme adımı eklemek anlamına gelir ve tedarik zinciri güvenliği tartışmalarını beraberinde getirir. Buna karşılık Respan ekibi, derlenen paketlerin en azından denetlenebilir olduğunu savunuyor ve API'ler henüz değişebileceği için Docker imajını lansman öncesinde geri çektiklerini, resmi yapıların GitHub Releases üzerinde önceden derlenmiş ikili dosyalar (binaries) olarak sunulduğunu belirtiyor.
Kurulum ve İlk İstek#
Respan Gateway üç farklı yöntemle kurulabilir: GitHub Releases üzerinden ikili (binary) dosya indirerek, Cargo kullanarak veya PyPI üzerinden Python paketini yükleyerek. Linux x86_64 mimarisi için örneklenen bu kurulumların yanı sıra macOS, arm64 ve Windows derlemeleri de mevcuttur. Geliştiriciler için bu esneklik, aracı hem Rust ekosisteminde hem de Python tabanlı yapay zeka iş akışlarında hızlıca test etme imkanı tanır.
Bu konuyu derinlemesine öğrenmek isterseniz: Helicone: API Gateway Tabanlı Monitoring modülüne göz atın.
Kaynak ve atıf
Bu yazı, dev.to üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- dev.to/devstackhub/i-explored-respan-gateway-a-plugin-first-open-source-llm-gateway-4d6b