AI Özelliklerini Ekleyin: İkinci Bir Backend Oluşturmadan
Birçok ekip, AI için ikinci bir arka uç oluşturmaz çünkü ölçeklendirme problemi yaşar. Bu özelliği eklerken, genelde farklı bir hisse kapıldıklarında hareket ederler.
- Tavsiye
- Model Çağrısı Ürün Sınırı Değildir
- Duplication Nedir?
- AI Özellikleri Genellikle Ürün Durumuna Daha Yakındır
- Varsayılan Mimari
- Neden Çalışma Kaydı Önemlidir?
- Prompt Yapısının Yakın Kalması
- Neden Bir Tek Backend Kaldırmak Önemli?
- Yetkilendirme ve Tenant Yönetimi
- Kontrol Süreçleri
- Yanlış Erken Ayrılmanın Başarısızlık Modları
- Ne Zaman Ayrı Bir Hizmet Gerekir?
- Hesaplama ve Çalışma Zamanı Sınırları
- Bağımsız Ölçeklendirme Baskısı
- Katı İzolasyon veya Uyum İhtiyacı
- Sonuç
Genellikle bu kötü bir sebeptir.
Ürününüz zaten kimlik doğrulama, tenant ayırma, faturalama, izinler, görevler, gözlemleme ve alan modellerine sahipse, AI’yi eklemek için en ucuz yer genellikle bu endişeleri zaten barındıran sistemdir. Çok erken bir şekilde ayrı bir AI hizmeti oluşturmak, genellikle tek bir yeni iş kuyruğuna, tek bir yeni kalıcılık modeline ve birkaç korumalı model çağrısına ihtiyaç duyduğunuz bir özellik etrafındaki tüm tesisatın yeniden inşasını gerektirir.
Tavsiye
Açık bir öneri: AI özelliklerini mevcut tam yığın uygulamanız içinde tutun, gerçek bir sınırla karşılaşmadığınız sürece. Gerçek bir sınır, bağımsız ölçeklendirme baskısı, ciddi operasyonel ihtiyaçlara sahip farklı bir çalışma zamanı, katı yalıtım gereksinimleri veya gerçekten paylaşılan bir platform haline gelmeyi hak eden bir yetenek anlamına gelir. Heyecan değil. Mimari modaya uygunluk değil. “AI-husus” gibi görünen bir diyagram değil.
Model Çağrısı Ürün Sınırı Değildir
En yaygın mimari hata, LLM teşhisinin özelliğin merkezi olarak ele alınmasıdır.
Bu doğru değildir.
Ürün sınırı hâlâ iş kurallarınızla tanımlanır: kim ne yapabilir, hangi kayıtlara karşı, hangi sınırlar altında, hangi denetim izleriyle ve hangi aşağı akış yan etkileriyle. Model çağrısı sadece o iş akışındaki bir adımdır. Bazen maliyetli bir adımdır. Bazen yavaştır. Bazen kararsızdır. Ama yine de bir adımdır.
Duplication Nedir?
Ekipler genellikle yeni hizmeti “sadece bir çıkarım katmanı” olarak tanımlar. Üç hafta sonra bunun çok daha fazlasını sahiplenir:
- hizmetler arası istek imzası
- tekrarlanan onay varsayımları
- yeni kuyruk ve yeniden deneme politikaları
- birinci set günlükler ve izler
- asenkron tamamlamalar için webhook veya polling köprüsü
- alan nesneleri için seri hale getirme kuralları
- senkronize edilmemiş okuma modelleri
- olaylar sırasında izlenmesi gereken bir başka dağıtım yüzeyi
Bu unsurların hiçbiri bireysel olarak felaketsel değildir. Ancak birlikte, kalıcı bir vergi oluşturur.
AI Özellikleri Genellikle Ürün Durumuna Daha Yakındır
Pek çok AI özelliği, serbest kalan hesaplama görevleri değildir. Mevcut uygulamanın verilerine ve kurallarına sıkı bir şekilde bağlıdırlar.
Bir destek yanıtı oluşturucu, talep, müşteri geçmişi, iç notlar, iade politikası ve ajan izinleri gibi verilere erişim gerektirir. Bir belge özetleyici, kaynak dosya, çalışma alanı ayarları, görünürlük kuralları ve depolama yaşam döngüsü gibi unsurlara ihtiyaç duyar.
Varsayılan Mimari
Pek çok SaaS ve iç ürün için doğru ilk versiyon basittir:
- Ana uygulama isteği alır.
- Ana uygulama girişi doğrular ve eylemi onaylar.
- Ana uygulama bir AI çalışma kaydı gösterir.
- Bir kuyruk görevi modeli çalıştırır.
- Sonuç aynı kayıt sistemine geri kaydedilir.
- UI ana uygulamadan durumu ve çıktıyı okur.
Kod Örneği
public function generateReply(SupportTicket $ticket, GenerateReplyRequest $request)
{
$this->authorize('replyWithAi', $ticket);
$run = AiRun::create([
'tenant_id' => auth()->user()->tenant_id,
'user_id' => auth()->id(),
'feature' => 'support_reply',
'status' => 'queued',
'subject_type' => $ticket::class,
'subject_id' => $ticket->id,
'input' => [
'tone' => $request->string('tone'),
'goal' => $request->string('goal'),
],
});
GenerateSupportReply::dispatch($run->id);
return response()->json([
'run_id' => $run->id,
'status' => 'queued',
], 202);
}
Neden Çalışma Kaydı Önemlidir?
Bir çalışma kaydı size:
- tekrarlar için idempotenslik
- girişlerin ve sanat eseri materyallerinin saklanması için bir yer
- kuyruktan tamamlandığına ya da başarısız olduğuna dair yaşam döngüsü görünürlüğü
- her tenant veya özellik için maliyet atamaları
- bir sağlayıcı çağrısı zaman aşımına uğradığında kurtarma yolu
- sonradan denetleme, insan incelemesi veya geri alma bayrakları eklenmesi için bir yer
Prompt Yapısının Yakın Kalması
Bir diğer yanlış düzeltme, başlangıçta promptları çok erken bir şekilde genel bir “AI geçidi” içine merkezi hale getirmektir. Bu temiz görünüyor ama her ürün değişikliği, tam sahip olamayan bir paylaşım soyutlama içinde düzenlemeleri gerektirir.
Kod Örneği
class GenerateSupportReply implements ShouldQueue
{
public function handle(OpenAIClient $client): void
{
$run = AiRun::with('subject.customer', 'subject.workspace')->findOrFail($this->runId);
$ticket = $run->subject;
$messages = [
[
'role' => 'system',
'content' => 'Write a calm, policy-compliant support reply. Never invent refunds or promises.',
],
[
'role' => 'user',
'content' => view('prompts.support-reply', [
'ticket' => $ticket,
'input' => $run->input,
])->render(),
],
];
$response = $client->responses()->create([
'model' => 'gpt-5.5',
'input' => $messages,
]);
$run->update([
'status' => 'completed',
'output' => ['text' => $response->output_text],
'completed_at' => now(),
]);
}
}
Neden Bir Tek Backend Kaldırmak Önemli?
Belki de en büyük fayda, daha az depo olması değil, uyumu korumaktır. AI özellikleri garip şekillerde başarısız olur. Zaman aşımına uğrar, kısmen tamamlanır, hatalı çıktı verir, politika engellerine takılır veya kullanımdan önce gözden geçirilmesi gereken içerikler üretir. Tüm bunlar ana uygulama sınırları içinde gerçekleştiğinde, kurtarma yolu çok daha temizdir.
Yetkilendirme ve Tenant Yönetimi
Bu basit görünse de, alternatifle yaşadığınızda bunun zorlayıcı olduğunu anlarsınız. Ana uygulama özelliği sahiplenirse, mevcut yetkilendirme katmanı gerçeklerin kaynağı olur. Görev, kullanıcının eylemde bulunabileceği tam kaydı yükleyebilir. Tenant ayırma zaten o kayda eklenmiştir. Denetim izleri, eylemi tetikleyen kullanıcı ve çalışma alanı ile uyumlu kalır.
Kontrol Süreçleri
AI özellikleri neredeyse asla günün birinde tam güçte küresel olarak yayımlanmamalıdır. Özellik bayrakları, tenant başına kontroller, senaryo sınırlamaları, kullanım kotaları ve yedekleme modları istemelisiniz. Bu kontroller genellikle uygulamada zaten mevcuttur.
Yanlış Erken Ayrılmanın Başarısızlık Modları
Ekipler burada aylar kaybedebilir. Yan hizmetin ilk versiyonu, yalnızca mutlu yollar söz konusu olduğunda başarılı görünmektedir. Ancak gerçek kullanım başladığında sorunlar başlar.
- AI hizmeti bir gölge politika motoruna dönüşür.
- Yanıtlar güvensiz hale gelir.
- Veri senkronizasyonu kendi özelliği haline gelir.
- Sahiplik çok erken takılmaya başlar.
Ne Zaman Ayrı Bir Hizmet Gerekir?
Gerçek sınırlar, ayrılışın doğru karar olduğu durumları vardır. Ancak orada olup olmadığınızı varsaymak bir hatadır.
Hesaplama ve Çalışma Zamanı Sınırları
İş yükü GPU-ağır çıkarsama, özel model sunumu, büyük ölçekli embed pipelineleri, medya üretimi ya da Python yerel ML araçları içeriyorsa, ayrı bir çalışma ortamı anlamlı olabilir.
Bağımsız Ölçeklendirme Baskısı
Model-ağır trafiğin, uygulamanın geri kalanından maddi olarak farklı bir eğride büyümesi durumunda, ayrılma maliyet ve patlama alanını azaltabilir.
Katı İzolasyon veya Uyum İhtiyacı
Bazen daha sıkı ağ sınırları, ayrı sırlar, yalıtılmış depolama işlemleri veya düzenlenen iş akışları için özel işleme ortamları gereklidir. Bu nedenle bölünmek mantıklıdır.
Sonuç
Eğer AI özelliklerini bir Laravel, Rails, Node veya tam yığın SaaS uygulamasının içinde inşa ediyorsanız, bu kuralı kullanın.
AI uygulamalarını ana uygulamanız içinde tutun; ürün bağlamına uygulamakla ilgili olduğunda ayrılmayı düşünün. Soruları sorun ve kararınızı verin:
- Özellik, mevcut ürün verilerine ve izinlerine büyük ölçüde mi bağlı?
- Çalışma kuyruğu ile model olarak modelleyebilir miyiz?
- Ayrı bir hizmet, yetkilendirme, gözlemleme ve yeniden deneme mantığını çoğaltır mı?
- Çalışma zamanı veya ölçek kısıtlamaları bugün bizi zorluyor mu?
- Birden fazla ürün, aynı yeteneği mi kullanacak?
Dördüncü ve beşinci sorularda “hayır” ve ilk üçte “evet” diyorsanız, uygulamanızda tutun.
Prematüre sınırların pahalı olduğu bir dünyada, business doğruluğunun, kullanıcı izinlerinin ve iş akışı sahipliğinin yakın kalmasının önemi büyüktür. AI’yi önce bir özellik olarak ekleyin, yalnızca gerektiğinde bir platform olarak ayırın.
Okumalar için: QCode – AI Özelliklerini İkinci Bir Backend Oluşturmadan Nasıl Eklenir?
Kaynak: Orijinal Makale


