Modelin kararları yönlendirdiği AI-odaklı ürünler inşa etmek için pratik rehber: mimari, promptlar, araçlar, veri, değerlendirme, güvenlik ve izleme.

Bir AI-odaklı ürün oluşturmak, sadece “bir sohbet botu eklemek” demek değildir. Bu, modelin uygulama mantığınızın gerçek, çalışan bir parçası olması demektir—bir kurallar motoru, arama dizini veya öneri algoritması gibi.
Uygulamanız sadece AI kullanıyor değildir; modelin girdi yorumlayacağı, eylemler seçeceği ve sistemin geri kalanının güvendiği yapılandırılmış çıktılar üreteceği gerçeği etrafında tasarlanmıştır.
Pratikte: her karar yolunu sert kodlamak yerine (“eğer X ise Y yap”), modelin belirsiz kısımları—dil, niyet, belirsizlik, önceliklendirme—ele almasına izin verirsiniz; kodunuz ise kesin olması gerekenleri yönetir: izinler, ödemeler, veritabanı yazımları ve politika uygulaması.
AI-odaklılık şu tür problemler için en iyi sonucu verir:
Kurallara dayalı otomasyon genellikle gereksinimlerin stabil ve kesin olduğu durumlarda daha iyidir—vergi hesapları, envanter mantığı, uygunluk kontrolleri veya çıktı her seferinde aynı olmalıdır diyen uyumluluk iş akışları.
Takımlar genellikle model odaklı mantığı benimserler çünkü:
Modeller tahmin edilemez olabilir, bazen güvenle yanlış bilgi verir ve davranışları promptlar, sağlayıcılar veya getirilen bağlam değiştikçe değişebilir. Ayrıca her istek başına maliyet ekler, gecikme getirebilir ve güvenlik ile güven konularını gündeme getirir (mahremiyet, zararlı çıktı, politika ihlalleri).
Doğru zihin yapısı: model bir bileşendir, sihirli bir cevap kutusu değil. Onu bir bağımlılık gibi ele alın—şartname, hata modları, testler ve izleme ile—böylece esneklik elde ederken ürünü sadece umutlara dayanarak kurmamış olursunuz.
Her özellik modeli sürücü koltuğuna koymaktan fayda görmez. En iyi AI-odaklı kullanım vakaları net bir yapılacak işiyle başlar ve haftadan haftaya izleyebileceğiniz ölçülebilir bir sonuçla biter.
Bir cümlelik bir iş hikayesi yazın: “Ne zaman ___, yapmak istiyorum ___, böylece ___.” Sonra sonucu ölçülebilir hale getirin.
Örnek: “Uzun bir müşteri e-postası aldığımda, politikamıza uygun bir önerilen yanıt istiyorum, böylece 2 dakika içinde cevaplayabileyim.” Bu, “e-postaya bir LLM ekle” demekten çok daha uygulanabilir.
Modelin hangi anlarda eylem seçeceğini belirleyin. Bu karar noktaları açık olmalı ki test edebilin.
Yaygın karar noktaları:
Eğer kararları adlandıramıyorsanız, model-tabanlı mantığı göndermeye hazır değilsiniz demektir.
Model davranışını diğer ürün gereksinimleri gibi ele alın. “İyi” ve “kötü”nün neye benzediğini sade dilde tanımlayın.
Örneğin:
Bu kriterler daha sonra değerlendirme kümeniz için temel oluşturur.
Tasarım seçimlerinizi şekillendirecek kısıtları listeleyin:
İşe bağlı küçük bir metrik seti seçin:
Başarıyı ölçemiyorsanız, ürünü geliştirmek yerine izlenimler üzerine tartışırsınız.
AI-odaklı bir akış “LLM çağıran bir ekran” değildir. Modelin belli kararlar verdiği, ürünün bunları güvenli şekilde uyguladığı ve kullanıcının yönlendirmeyi kaybetmediği uçtan uca bir yolculuktur.
Boruyu basit bir zincir olarak çizmeye başlayın: girdiler → model → eylemler → çıktılar.
Bu harita, belirsizliğin kabul edilebilir olduğu yerleri (taslak oluşturma) ve edilemez olduğu yerleri (faturalandırma değişiklikleri) netleştirir.
Deterministik yolları (izin kontrolleri, iş kuralları, hesaplamalar, veritabanı yazımları) ile model kaynaklı kararları (yorumlama, önceliklendirme, doğal dil üretimi) ayırın.
Faydalı bir kural: model öneride bulunabilir, ancak kod tersine çevrilemez bir şey yapmadan önce doğrulamalıdır.
Kısıtlarınıza göre bir çalışma zamanı seçin:
İstek başına bir gecikme ve maliyet bütçesi belirleyin (yeniden denemeler ve araç çağrıları dahil), sonra UX’i buna göre tasarlayın (akış, kademeli sonuçlar, “arka planda devam et”).
Her adımda hangi veri kaynaklarının ve izinlerin gerektiğini belgeleyin: modelin neyi okuyabileceği, neyi yazabileceği ve hangi durumlarda açık kullanıcı onayı gerektiği. Bu mühendislik ve güven için bir sözleşme olur.
Model uygulama mantarınızın bir parçası olduğunda, “mimari” sadece sunucular ve API’ler değildir—bir dizi model kararını kaybetmeden nasıl güvenilir şekilde yürüttüğünüzdür.
Orkestrasyon, bir AI görevini uçtan uca nasıl yürüttüğünüzü yöneten katmandır: promptlar ve şablonlar, araç çağrıları, bellek/bağlam, yeniden denemeler, zaman aşımı ve geri dönüşler.
İyi orkestratörler modeli pipeline’daki bir bileşen olarak ele alır. Hangi promptun kullanılacağına, hangi anda bir aracın (arama, veritabanı, e-posta, ödeme) çağrılacağına, bağlamın nasıl sıkıştırılacağına veya getirileceğine ve model geçersiz bir şey döndürdüğünde ne yapılacağına karar verirler.
Fikrinizden çalışan bir orkestrasyona daha hızlı geçmek istiyorsanız, uygulama iskeletini baştan inşa etmeden bu pipeline’ları prototiplemenize yardımcı olacak bir vibe-coding iş akışı işe yarayabilir. Örneğin, Koder.ai takımların sohbet yoluyla web uygulamaları (React), backend (Go + PostgreSQL) ve hatta mobil (Flutter) oluşturmasına izin verir—sonra “girdiler → model → araç çağrıları → doğrulamalar → UI” gibi akışları planlama modu, anlık görüntüler ve geri alma gibi özelliklerle yineleyebilirsiniz; hazır olduğunuzda kaynak kodunu dışa aktarabilirsiniz.
Triage → bilgi toplama → onay → yürütme → özetleme gibi çok adımlı deneyimler, bunları bir iş akışı veya durum makinesi olarak modellediğinizde en iyi şekilde çalışır.
Basit bir desen: her adımın (1) izin verilen girdileri, (2) beklenen çıktıları ve (3) geçişleri olsun. Bu, gezinmeyen konuşmaları önler ve kullanıcının fikrini değiştirmesi veya kısmi bilgi vermesi gibi uç durumları açıklar.
Tek atış, bir mesajı sınıflandırma, kısa bir yanıt taslağı oluşturma veya belgeden alan çıkarma gibi kapsayıcı görevler için iyidir. Daha ucuz, daha hızlı ve doğrulaması daha kolaydır.
Çok turlu akıl yürütme, modelin netleştirici sorular sorması gerektiğinde veya araçların yinelemeli olarak kullanıldığı durumlarda (ör. plan → ara → rafine et → onay) daha uygundur. Bunu kasıtlı kullanın ve döngüleri zaman/adım limitleri ile sınırlandırın.
Modeller yeniden dener. Ağlar başarısız olur. Kullanıcılar çift tıklayabilir. Bir AI adımı e-posta gönderme, rezervasyon yapma, ödeme alma gibi yan etkiler tetikleyebiliyorsa, idempotent olmasını sağlayın.
Yaygın taktikler: her “yürüt” eylemine bir idempotency anahtarı ekleyin, eylem sonucunu saklayın ve yeniden denemeler aynı sonucu döndürsün, tekrarlanmasın.
Şunu cevaplayabilecek şekilde izlenebilirlik ekleyin: Model ne gördü? Ne kararlaştırdı? Hangi araçlar çalıştı?
Her işlem için yapılandırılmış bir iz kaydedin: prompt versiyonu, girdiler, getirilen bağlam kimlikleri, araç istek/yanıtları, doğrulama hataları, yeniden denemeler ve nihai çıktı. Bu, “AI tuhaf bir şey yaptı”nı denetlenebilir ve düzeltilebilir bir zaman çizelgesine çevirir.
Model uygulama mantığınızın parçası olduğunda, promptlar “reklam metni” olmaktan çıkar ve yürütülebilir spesifikasyonlar olur. Onları ürün gereksinimleri gibi ele alın: açık kapsam, tahmin edilebilir çıktılar ve değişiklik kontrolü.
Sistem promptu modelin rolünü, neleri yapıp yapamayacağını ve ürününüz için önemli güvenlik kurallarını belirlemelidir. Bunu sabit ve yeniden kullanılabilir tutun.
İçerisine ekleyin:
Promptları bir API tanımı gibi yazın: sağladığınız kesin girdileri (kullanıcı metni, hesap seviyesi, yerel ayar, politika parçaları) ve beklediğiniz kesin çıktıları listeleyin. 1–3 gerçek trafik örneği ekleyin, zor vakalar dahil.
Yararlı bir desen: Bağlam → Görev → Kısıtlar → Çıktı formatı → Örnekler.
Kodun çıktıyı işlemesi gerekiyorsa, düzyazıya güvenmeyin. Bir şemaya uyan JSON isteyin ve başka bir şey dönerse reddedin.
{
"type": "object",
"properties": {
"intent": {"type": "string"},
"confidence": {"type": "number", "minimum": 0, "maximum": 1},
"actions": {
"type": "array",
"items": {"type": "string"}
},
"user_message": {"type": "string"}
},
"required": ["intent", "confidence", "actions", "user_message"],
"additionalProperties": false
}
Promptları versiyon kontrolünde saklayın, sürümlerle etiketleyin ve özellik gibi dağıtın: kademeli dağıtım, uygunsa A/B ve hızlı geri alma. Her yanıta prompt versiyonunu kaydedin ki hata ayıklama mümkün olsun.
Küçük, temsilî bir vaka seti oluşturun (mutlu yol, belirsiz istekler, politika ihlalleri, uzun girdiler, farklı yerel ayarlar). Her prompt değişikliğinde bunları otomatik çalıştırın ve çıktılar sözleşmeyi bozuyorsa build’i başarısız yapın.
Araç çağırma, sorumlulukları ayırmanın en temiz yoludur: model ne yapılması gerektiğine ve hangi yeteneğin kullanılacağına karar verir; uygulama kodunuz ise eylemi gerçekleştirir ve doğrulanmış sonuçları döner.
Bu, gerçekleri, hesaplamaları ve yan etkileri (bilet oluşturma, kayıt güncelleme, e-posta gönderme) deterministik, denetlenebilir koda bırakır—serbest biçimli düzyazıya güvenmek yerine.
Taleplerin %80’ini karşılayacak ve güvenlik açısından test edilmesi kolay bir avuç araçla başlayın:
Her aracın amacını dar tutun. “Her şeyi yapan” bir araç test edilmesi zor ve kötüye kullanılmaya açık olur.
Modeli güvensiz bir çağıran gibi ele alın.
Bu, getirilen metin üzerinden prompt enjeksiyonu riskini azaltır ve veri sızıntısını sınırlar.
Her araç şunu uygulamalıdır:
Bir araç durum değiştirebiliyorsa (biletleme, iade), daha güçlü yetkilendirme ve yazma denetim günlüğü gerektirir.
Bazen en iyi eylem eylemsizliktir: mevcut bağlamdan cevap ver, netleştirici soru sor veya sınırlamaları açıkla. “Araç yok”u birinci sınıf sonuç olarak yapın ki model yalnızca meşgul görünmek için araç çağırmasın.
Ürününüzün cevapları politikalarınıza, envanterinize, sözleşmelere veya dahili bilgilere uymalıysa, modeli yalnızca genel eğitimiyle değil—sizin verilerinizle dayandırmanız gerekir.
RAG kalitesi çoğunlukla bir içerik alma sorunudur.
Belgeleri modelin token boyutuna uygun parçalara bölün (çoğunlukla birkaç yüz token), ideal olarak doğal sınırlarla hizalanmış (başlıklar, SSS girdileri). Meta veriyi saklayın: belge başlığı, bölüm başlığı, ürün/sürüm, hedef kitle, yerel ayar ve izinler.
Tazelik için plan yapın: yeniden indeksleme zamanlaması, “son güncelleme” takibi ve eski parçaların süresinin dolması. Yüksek sıralanan fakat güncelliğini yitirmiş bir parça, özelliği sessizce bozabilir.
Modelden şunu döndürmesini sağlayın: (1) cevap, (2) alıntı parça kimlikleri/başlıklar, (3) bir güven beyanı.
Eğer getirme zayıfsa, modelin doğrulayamadığı şeyleri açıkça belirtmesini ve bir sonraki adımı önermesini söyleyin (“Bu politikayı bulamadım; iletişime geçilecek kişi: ...” gibi). Boşlukları doldurmasına izin vermeyin.
Erişimi getirmeden önce uygulayın (kullanıcı/organizasyon izinlerine göre filtreleme) ve üretimden önce tekrar uygulayın (hassas alanları kırpma).
Gömülü vektörler ve indeksleri hassas veri depoları olarak ele alın; denetim günlükleri tutun.
En iyi sonuçlar alakasızsa veya boşsa şu seçeneklere geri dönün: netleştirici soru sorma, insan desteğine yönlendirme veya tahmin etmeye çalışmak yerine sınırlamaları açıklayan bir non-RAG yanıt moduna geçme.
Model uygulama mantığınızın içinde olduğunda, “çoğu zaman iyi” yeterli değildir. Güvenilirlik, kullanıcıların tutarlı davranış görmesi, sistemin çıktıyı güvenle tüketebilmesi ve hataların kademeli olarak bozulması demektir.
Özellik için “güvenilir” ne demek, yazın:
Bu hedefler promptlar ve kod için kabul kriterleri olur.
Model çıktısını güvensiz girdi gibi ele alın.
Doğrulama başarısız olursa, güvenli bir geri dönüş sağlayın (netleştirici soru, daha basit şablona geçiş veya insan yönlendirmesi).
Kör tekrar etmelerden kaçının. Başarısızlık modunu ele alan farklı bir prompt ile yeniden deneyin:
confidence alanını düşük ayarla ve bir soru sor.”Yeniden denemeleri sınırlayın ve her başarısızlık nedenini kaydedin.
Modelin ürettiklerini normalleştirmek için kod kullanın:
Bu, varyansı azaltır ve çıktıları test etmeyi kolaylaştırır.
Tekrarlanan sonuçları (aynı sorgular, paylaşılan gömme vektörleri, araç yanıtları) önbelleğe alınarak maliyet ve gecikme düşürülebilir.
Tercihler:
Doğru yapıldığında, önbellekleme tutarlılığı artırırken kullanıcı güvenini korur.
Güvenlik, sonradan eklenen ayrı bir uyumluluk katmanı değildir. AI-odaklı ürünlerde model eylemleri, ifade tarzını ve kararları etkileyebilir—bu nedenle güvenlik, asistanın ne yapabileceği, neyi reddedeceği ve ne zaman yardım isteyeceği konusunda ürün sözleşmenizin bir parçası olmalıdır.
Uygulamanızın karşılaştığı riskleri adlandırın ve her birini bir kontrolle eşleştirin:
Ürününüzün uygulayabileceği açık bir politika yazın. Somut tutun: kategoriler, örnekler ve beklenen cevaplar.
Üç seviye kullanın:
Yükseltme bir ürün akışı olmalı, sadece bir reddetme mesajı değil. “Bir kişiye bağlan” seçeneği sunun ve el sıkışma sırasında kullanıcının paylaştığı bağlamı (rıza ile) el ile aktarmayı sağlayın.
Model gerçek sonuçlar tetikleyebiliyorsa—ödemeler, iadeler, hesap değişiklikleri, iptaller, veri silme—bir kontrol noktası ekleyin.
İyi uygulamalar: onay ekranları, “taslak sonra onayla” akışları, limitler (tutar üst sınırları) ve uç durumlar için insan inceleme kuyruğu.
Kullanıcıya AI ile etkileşimde olduğunu, hangi verilerin kullanıldığını ve neyin saklandığını söyleyin. Konuşmaları kaydetme veya sistemi geliştirmek için verileri kullanma konusunda gerektiğinde izin isteyin.
İç güvenlik politikalarını kod gibi yönetin: versiyonlayın, gerekçeyi belgeleyin ve testler (örnek promptlar + beklenen sonuçlar) ekleyin ki her prompt veya model güncellemesiyle güvenlik geri gitmesin.
Eğer bir LLM ürününüzün davranışını değiştirebiliyorsa, çalıştığını tekrar kanıtlayacak tekrarlanabilir bir yol oluşturmanız gerekir—kullanıcıların regresyonları sizin yerinize keşfetmesinden önce.
Promptlar, model versiyonları, araç şemaları ve getirme ayarlarını sürümlemeye değer maddeler olarak ele alın; bunlar yayınlanmaya hazır öğelerdir ve test gerektirir.
Gerçek kullanıcı niyetlerini destek kayıtlarından, arama sorgularından, sohbet günlüklerinden (rıza ile) ve satış görüşmelerinden toplayın. Bunları şu test vakalarına dönüştürün:
Her vaka beklenen davranışı içermeli: cevap, alınan karar (örn. “araç A çağrıldı”) ve gerekli yapı (JSON alanları, atıflar vb.).
Tek bir puan kaliteyi yakalayamaz. Kullanıcı sonuçlarına bağlı küçük bir metrik seti kullanın:
Ayrıca kaliteyle birlikte maliyet ve gecikmeyi takip edin; daha iyi bir model yanıt süresini ikiye katlıyorsa dönüşümü bozabilir.
Yayınlamadan ve her prompt, model, araç veya getirme değişikliğinden sonra çevrimdışı değerlendirmeler çalıştırın. Sonuçları sürümleyin ki karşılaştırma yapıp bozan değişikliği hızla tespit edebilin.
Gerçek sonuçları ölçmek için A/B testleri kullanın (tamamlama oranı, düzenleme sayısı, kullanıcı puanları), ama güvenlik önlemleri ekleyin: durdurma koşulları (geçersiz çıktı, reddetme veya araç hatalarında ani artış) tanımlayın ve eşikler aşıldığında otomatik geri alma yapın.
AI-odaklı bir özelliği göndermek bitiş çizgisi değildir. Gerçek kullanıcılar geldikten sonra model yeni ifade biçimleri, uç durumlar ve değişen verilerle karşılaşır. İzleme, “staging’de çalıştı”yı “gelecek ay da çalışıyor”a çevirir.
Hataları yeniden üretebilmek için yeterli bağlamı kaydedin: kullanıcı niyeti, prompt versiyonu, araç çağrıları ve modelin nihai çıktısı.
Girdileri/çıktıları gizlilik açısından güvenli şekilde kırpın. Logları hassas veri gibi ele alın: e-postalar, telefon numaraları, tokenlar ve kişisel bilgileri içerebilecek serbest metni çıkarın. Belirli oturumlar için geçici “debug modu” etkinleştirme tercihi sunun; varsayılan olarak maksimum logging yapmayın.
Hata oranlarını, araç hatalarını, şema ihlallerini ve sürüklenmeyi izleyin. Somut olarak izlenecekler:
Sürüklenme için trafiği baz çizginizle karşılaştırın: konu dağılımı, dil, ortalama prompt uzunluğu ve “bilinmeyen” niyetlerdeki değişimler. Sürüklenme her zaman kötü değildir—ancak yeniden değerlendirme için bir işarettir.
Uyarı eşikleri ve nöbetçi çalışma kitapları oluşturun. Uyarılar eyleme dönüştürülebilir olmalı: bir prompt versiyonunu geri almak, hatalı bir aracı devre dışı bırakmak, doğrulamayı sıkılaştırmak veya bir fallback’e geçmek.
Güvenli olmayan veya hatalı davranış için olay müdahale planı hazırlayın. Kim güvenlik anahtarlarını kapatabilir, kullanıcılara nasıl bildirim yapılır ve olay nasıl belgelendirilip öğrenme sağlanır, belirleyin.
Beğenme/beğenmeme, sebep kodları, hata raporları gibi geri bildirim döngüleri kullanın. “Neden?” için kısa seçenekler sorun (yanlış bilgi, talimatlara uymadı, güvensiz, çok yavaş) ki sorunları doğru yere (prompt, araçlar, veri veya politika) yönlendirebilesiniz.
Model odaklı özellikler çalıştığında sihirli, çalışmadığında kırılgan hissedilir. UX, belirsizliği varsaymalı ve yine de kullanıcıların işi tamamlamasına yardım etmelidir.
Kullanıcılar, çıktının nereden geldiğini gördüklerinde AI çıktısına daha çok güvenirler—bunun sebebi ders vermek değil, aksiyona geçmeden önce değerlendirme yapmalarına yardımcı olmaktır.
Kademeli açıklama kullanın:
Daha derin bir açıklayıcı içeriğiniz varsa, UI’yi bunaltmayacak şekilde dahili bir bağlantı gösterin; örneğin "/blog/rag-grounding".
Model bir hesap makinesi değildir. Arayüz, güven düzeyini iletmeli ve doğrulamayı davet etmelidir.
Pratik desenler:
Kullanıcı çıktıyı yeniden başlatmadan yönlendirebilmeli:
Model başarısız olduğunda veya kullanıcı emin olmadığında deterministik bir akış veya insan yardımı sunun.
Örnekler: “Manuel forma geç”, “Şablonu kullan” veya “Destek ile iletişime geç” (örneğin /support). Bu bir utanç geri dönüşü değil; görev tamamlama ve güveni koruma yoludur.
Çoğu takım LLM’lerin yetersizliğinden değil; prototipten güvenilir, test edilebilir ve izlenebilir bir özelliğe geçiş yolunun beklenenden uzun olmasından başarısız olur.
Yolu kısaltmanın pratik bir yolu, “ürün iskeleti”ni erken standartlaştırmaktır: durum makineleri, araç şemaları, doğrulama, izler ve dağıtım/geri alma hikayesi. Koder.ai gibi platformlar, AI-odaklı bir iş akışını hızlıca kurmak istediğinizde yararlı olabilir—UI, backend ve veritabanını birlikte oluşturmanıza izin verir; ardından anlık görüntüler/geri alma, özel alan adları ve barındırma ile güvenle yineleme yapabilirsiniz. Operasyonelleşmeye hazır olduğunuzda, kaynak kodunu dışa aktarabilir ve tercih ettiğiniz CI/CD ile gözlemlenebilirlik yığınında devam edebilirsiniz.