I planned AI in seven places. I cut four.
Appontu'yu kurarken elimde bir liste vardı: yapay zekanın ürüne değer katacağını düşündüğüm yedi nokta.
Bugün o listede üç tanesi ayakta. Dördü, farklı sebeplerle masadan kalktı. Ve o dördünü elerken öğrendiğim şey, tuttuğum üçten daha değerliydi.
Appontu, randevu bazlı hizmet işletmeleri için kurduğumuz çok kiracılı bir SaaS platformu — 10 servisli bir monorepo, 5 REST API ve 5 React/TypeScript uygulaması, tek bir reverse proxy'nin arkasında.
Bu ölçekte bir platform kurarken "buraya AI koyalım" demek kolay. Asıl iş, nereye koymayacağına karar vermek.
Listedeki yedi yer şuydu:
- Doğal dilde randevu alma sohbet botu
- Akıllı randevu/slot optimizasyonu
- Gelmeme (no-show) risk tahmini
- Dinamik fiyatlama önerisi
- Dolandırıcılık / sahte randevu tespiti
- Destek taleplerine taslak yanıt üretimi
- Yeniden-randevu / pazarlama mesajı kişiselleştirmesi
Bir de sekizinci bir yer var aslında: kodlama ajanının kendisi. Onu ayrı tutuyorum — çünkü o bir ürün özelliği değil, bizim nasıl çalıştığımızdı.
İlk itirafım burada: yedisini de aynı heyecanla listeye yazmıştım. "Zaten LLM entegrasyon katmanı kuruyoruz, madem elimizdeyken her yere koyalım" diye düşünmüştüm. Bu, kısa süre sonra bana pahalıya patlayacak bir varsayımdı.
Düşen dördü
Doğal dilde randevu botu ilk elenendi. Bir randevu, transaksiyonel bir işlem — yanlış slotu ayırtan bir bot, görünür ve pahalı bir hata. Normal bir form/takvim arayüzü zaten işi görüyordu. Öğrendiğim kural basitti: modeli en son çağır, deterministik olanı önce bitir.
Akıllı slot optimizasyonu ikinci düşen. Bu bir dil problemi değil, bir kısıt-tatmin problemiydi. LLM'e "en iyi dağılımı bul" dedirtmek, var olan bir algoritmayı daha pahalı ve daha az öngörülebilir şekilde yeniden yazmaktı. Modeli değil, işi soyutlamam gerekiyordu.
No-show risk tahmini üçüncü. Kurduğumuz per-call maliyet/gecikme telemetrisi — Azure OpenAI ve AWS Bedrock'u paralel çalıştırıp karşılaştırdığımız aynı altyapı — bunu açıkça gösterdi: basit bir istatistiksel sınıflandırıcı, daha ucuza, daha hızlı ve aynı doğrulukla çalışıyordu.
Dinamik fiyatlama ve dolandırıcılık tespiti'ni birlikte eledim. İkisi de finansal/hukuki sonucu olan kararlar. GDPR/KVKK kısıtlarını uygulama katmanının takdirine değil, doğrudan şemaya ve erişim kurallarına gömdüğümüz aynı refleks buraya da uygulandı: olasılıksal bir sistemin, insan onayı olmadan bir fiyatı ya da bir dolandırıcılık şüphesini belirlemesine izin vermedim.
Kalan üçü
Ayakta kalan üç yerin ortak bir özelliği vardı: hiçbiri tek başına karar vermiyordu.
- Destek talebi yanıtları taslak olarak üretiliyor, insan onaylıyor.
- Pazarlama/yeniden-randevu mesajları kişiselleştiriliyor ama gönderim öncesi gözden geçiriliyor.
- Kodlama ajanının kendisi, onaylı mimariye sınırlanmış — golden-evaluation fixture'larından geçmeden ve teknik gözden geçirmeden üretime hiçbir şey girmiyor.
Asıl itiraf
Yedisini de "AI koyabiliriz" diye listelemiştim. Ama doğru soru hiç "koyabilir miyim" değildi — "bu kararı insana mı, deterministik bir sisteme mi, yoksa modele mi bırakıyorum" sorusuydu.
Üçü kaldı, çünkü üçünde de son sözü hala insan söylüyor.

