Neden Tek Bir Yapay Zeka Sağlayıcısına Güvenmeyi Bıraktım

Bir topluluk forumu için gerçek zamanlı bir sohbet botu geliştirdim. Tek bir API kullanmanın yeterli olacağını düşünmüştüm. Yanılmışım.

Üçüncü haftada, yoğun saatlerde bir 5xx hatasıyla karşılaştım. Sohbet botum sustu. Kullanıcılar hayal kırıklığına uğradı. Üretim aşamasındaki uygulamalar için tek bir sağlayıcıya güvenemeyeceğimi anladım.

GPT-4 kullandım. Sorun çıkana kadar iyi çalışıyordu. Hız sınırları (rate limits), zaman aşımı (timeouts) ve tamamen kesintilerle karşılaştım. Daha üst paketler için ödeme yapmak, sorunu çözmek yerine sadece belirtileri gidermek gibi hissettiriyordu.

Diğer sağlayıcıları denedim ancak hepsinin farklı formatları ve kimlik doğrulama (auth) yöntemleri vardı. Kodum bir switch-case yığınına dönüştü. Şunları yapabilen bir sisteme ihtiyacım vardı:

Üçüncü taraf kütüphanelerden kaçındım çünkü çok karmaşıklardı ve kolayca bozulabiliyorlardı. Bunun yerine basit bir yönlendirici (router) inşa ettim.

İlk olarak, tüm sağlayıcılar için ortak bir arayüz (interface) tanımladım. Her sağlayıcı bir generate metodu ve bir sağlık kontrolü (health check) uygular.

Ardından bir yönlendirici sınıfı (router class) oluşturdum. Sağlayıcıları belirli bir sırayla dener. Üstel geri çekilme (exponential backoff) ve basit bir önbellek kullanır. İlk sağlayıcı başarısız olursa, sistem bekler ve bir sonrakini dener.

Bu sistem, üç farklı kesinti sırasında hafta sonlarımı kurtardı. Büyük bir sağlayıcı çöktüğünde bile uygulamamın çalışmaya devam etmesini sağlıyor.

Eğer bunu inşa edecekseniz, şu noktaları aklınızda bulundurun:

Projeniz küçükse, aşırı mühendislikten (over-engineer) kaçının. Eğer akış (streaming) gerekiyorsa, bu desen gecikmeye (latency) neden olur. Ölçeğinize uygun doğru aracı seçin.

Siz sağlayıcı güvenilirliğini nasıl yönetiyorsunuz? Tek bir sağlayıcıya mı bağlı kalıyorsunuz yoksa bir yedekleme katmanı (fallback layer) mı oluşturuyorsunuz?

Kaynak: https://dev.to/__c1b9e06dc90a7e0a676b/why-i-stopped-relying-on-a-single-ai-provider-and-built-a-fallback-system-1pc0

İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi