Metin ve fikirler / UYGULAMALI İNCELEME
ChatGPT: indirim kuralını eşik tutarlarda kontrol etme
Eşik tam 1000.00'ı da içeriyor, teslimat matraha girmiyor, indirimdeki yarım kopek ise yuvarlamayı kontrol ediyor. Yedi kısa örneği inceliyoruz.

İyi görünen tablonun hesabı da kontrol edilebilmeli
Müşteri sepete 1200 rublelik ürün ekledi, ama indirim yok. Bu, mutlaka bir hata olduğu anlamına gelmez: kampanyaya yalnızca 900 rublelik ürünler katılıyor olabilir. Başka bir tuzak da tam eşikte ortaya çıkar: «1000 ve üzeri» kolayca «1000'den fazla» haline gelebilir. Koşulları tahmin etmek gerekmiyorsa ChatGPT, böyle işlerde bir kontrol kümesi hazırlamaya yardımcı olur.
Bir mağazaya ait alıştırma kuralını ve yedi girdi örneğini inceleyelim. Ürün yöneticisi veya test uzmanı için küçük bir karar tablosu ortaya çıkacak. Aşağıdaki tutarlar ve koşullar inceleme amacıyla uyduruldu; yürürlükteki bir kampanyanın koşulları değil. Modelin yanıtını ayrı bir hesapla karşılaştırmak gerekecek.
Matrahı, eşiği ve yuvarlama anını belirleyin
Önce kampanyaya katılan ürünleri diğer kalemlerden ve teslimattan ayırın. Burada tek bir «sepet tutarı» alanı yeterli değil. İndirime uygun ürünlerin indirim öncesi toplamını A, diğer ürünlerin toplamını B, teslimat ücretini D ile gösterelim. Tüm girdi tutarları sıfır veya pozitif ve ondalık noktadan sonra iki basamaklıdır.
Bu örnekte A en az 1000.00 ise A üzerinden 10% indirim uygulanır. B ve D siparişi eşiğe yaklaştırmaz ve kendileri de indirim almaz. İndirim tutarını bir kez iki ondalık basamağa yuvarlıyoruz: tam yarım kopek yukarı yuvarlanır. Ardından toplamı hesaplıyoruz: A - indirim + B + D. Bu, örnek için seçilmiş bir yuvarlama kuralı; kendi sisteminizde onaylanan yöntemi kullanın.
İlk açıklamada şu cümle de var: «İndirim kuponla birleştirilmez». Bu, ikisinin birlikte kullanılmasını yasaklıyor, fakat hangisinin kalacağını seçmiyor. Örnekte kuponun kendi parametreleri de tanımlı değil. Kuponun önceliği, miktarı ve uygulama koşulları netleşmeden bu örneğin tek bir toplamı yok. Modelden politikanın bu bölümünü kendi başına uydurmasını istemeyin.
ÖRNEK İSTEM
ALIŞTIRMA KOŞULLARI A - indirime uygun ürünler, indirim öncesi; B - diğer ürünler; D - teslimat. Tutarlar sıfır veya pozitiftir, en fazla iki ondalık basamak içerir. A >= 1000.00 ise indirim = A * 0.10, değilse 0. B ve D eşik hesabına katılmaz. İndirimi bir kez iki ondalık basamağa yuvarla; tam yarım kopek yukarı yuvarlanır. Toplam = A - indirim + B + D. İndirim kuponla birleştirilmez; kuponun önceliği, miktarı ve koşulları belirtilmemiştir.
Rastgele tutarlar yerine eşiğin çevresindeki örnekleri isteyin
OpenAI'ın resmî belgeleri, gerekli bağlamı vermeyi, sonuç biçimini belirlemeyi ve eksik bilgileri açıkça belirtmeyi önerir. Burada bu, kuralın tamamını eklemek, girdi alanlarını ayırmak ve kontrol edilebilir bir formül, değerlerin yerine konması ve toplamı istemek demektir. Genel bir «indirimi kontrol et» isteği ne matrahı ne de «ve üzeri» ifadesinin anlamını belirler.
Önceki bloktaki koşulları aşağıdaki promptla birlikte gönderin. K1, K2 ve K3 eşik çevresinde birer kopek farklıdır. K4, matraha başka tutarların katılıp katılmadığını kontrol eder. K5, eşik sağlandığında aynı ek ödemeleri korur. K6 yarım kopek, K7 ise karara bağlanmamış öncelik içindir. Bunlar önceden seçilmiş örneklerdir, ChatGPT'nin uydurulmuş yanıtları değil.
ÖRNEK İSTEM
Yukarıdaki alıştırma koşullarına göre bir tablo oluştur: örnek | indirimin dayanağı | yuvarlamadan önce indirim | yuvarlanmış indirim | değerler yerine konmuş formül | toplam | soru. Kural ekleme. Kuponun etkin olduğu fakat önceliğin belirsiz kaldığı örnekte seçenek belirleme ve tek bir toplam yazma; kuponun önceliğini, miktarını ve koşullarını sor. Ondalık nokta kopekleri ayırır. K1: A=999.99, B=0, D=0, kupon yok. K2: A=1000.00, B=0, D=0, kupon yok. K3: A=1000.01, B=0, D=0, kupon yok. K4: A=900.00, B=300.00, D=200.00, kupon yok. K5: A=1000.00, B=300.00, D=200.00, kupon yok. K6: A=1000.05, B=0, D=0, kupon yok. K7: A=1000.00, B=0, D=0, kupon etkin.
Kontrol değerlerini ayrı hesaplayın
Aynı modelden kendi tablosunu onaylamasını istemeyin ve bunu bağımsız kontrol saymayın. Aşağıdaki değerler, belirtilen kurala göre hesaplandı. Bunları elle, ondalık aritmetik kullanan bir hesap makinesiyle veya yuvarlaması açıkça ayarlanmış bir elektronik tabloda kontrol edin. Hem formül hem de indirimin uygulanma nedeni önemlidir.
K1: A, 1000.00'ın altında olduğundan indirim 0, toplam 999.99. K2: eşik koşula dahil, indirim 100.00, toplam 900.00. K3: yuvarlamadan önce indirim 100.001, yuvarlamadan sonra 100.00, toplam 900.01.
K4: indirim 0, toplam 900.00 + 300.00 + 200.00 = 1400.00. Genel toplam eşiğin üzerinde, ama A hâlâ 900.00. K5: indirim 100.00, toplam 1000.00 - 100.00 + 300.00 + 200.00 = 1400.00. K4 ve K5'in toplamlarının aynı olması örnekleri aynı yapmaz: indirimin dayanağı ve ödemenin bileşimi farklıdır.
K6: 1000.05 * 0.10 = 100.005. Kuralımıza göre indirim 100.01'e yuvarlanır, toplam 900.04 olur. 900.05 değeri farklı bir hesaba, örneğin indirimin aşağı doğru 100.00'a yuvarlanmasına işaret eder. Promptun tamamını değiştirmeden önce bu ara tutarı kontrol edin.
K7: soru açık kalıyor. Kupon ile indirim arasında kimin, hangi kurala göre seçim yapacağını ve kuponun kendi miktarıyla uygulama koşullarını öğrenmek gerekir. Bu karar olmadan «toplam 900.00» yazmak, koşullara gizlice bir ekleme yapmak olurdu.

Belirli bir uyuşmazlığı düzeltin
K2'de indirim yoksa karşılaştırma işaretini kontrol edin. K4'e indirim uygulanmışsa model A yerine genel toplamı kullanmıştır. Yalnızca K6 farklıysa önce yuvarlamayı kontrol edin. Bu inceleme, promptun hangi bölümünü netleştirmeniz gerektiğini gösterir; genel bir «daha dikkatli ol» isteği hatayı belirtmez.
Sayısal düzeltme için formülü ve değerlerin yerine konmasını istemek yeterli. Modelin yanıta nasıl ulaştığı hakkında uzun açıklamalara gerek yok. Düzeltmeden sonra yedi satırın tamamını kontrol edin: geri kalanın korunmasını istemek, diğer değerlerin değişmeyeceğini garanti etmez.
ÖRNEK İSTEM
Yalnızca K6'yı ilk kurala göre düzelt. Matrah A=1000.05, oran 10%. Yuvarlamadan önceki çarpımı, yuvarlanmış indirimi ve toplamı göster. Tam yarım kopek yukarı yuvarlanır; toplam indirim için yuvarlama bir kez yapılır. Koşulları değiştirme ve K7'deki kupon kuralını sahibinin yerine seçme. Ardından değişmeden kalan diğer satırların kimliklerini listele.
Örnekleri kendi sisteminizdeki koşullarla tamamlayın
Alıştırma kuralında iadeler, birden fazla para birimi veya satır bazında indirimler yok. Sisteminizde bu koşullar varsa onaylanmış açıklamadan ekleyin ve her biri için ayrı örnekler oluşturun. İşi, olası tüm kampanyaları rastgele sıralayarak genişletmeyin: önce hangi kuralın kontrol edildiğini anlamak gerekir.
Hesabı koda veya elektronik tabloya aktarırken özellikle dikkatli olun. Farklı yuvarlama işlevleri ve kesirlerin ikili gösterimi, tam yarıya denk gelen değerlerde farklı davranabilir. Kullandığınız aracın ayarını seçilen kuralla karşılaştırın ve K6'yı ayrı bir kontrol olarak saklayın. Formülün metnini yeniden yazmak, uygulamanın da aynı şekilde hesapladığını tek başına kanıtlamaz.
Tabloyu açık kalan soruyla birlikte iletin
Geliştirici için ilk koşulları, girdi alanlarını, kontrol değerlerini ve kuponla ilgili ayrı soruyu saklayın. Sonucu belirli olan altı örnek, kontroller için taslak olarak kullanılabilir. Yedinci örnekte öncelik kararı ve kupon seçilirse onun parametreleri gerekir; ancak bundan sonra beklenen sonuç yazılabilir.
Eşik, matrah veya yuvarlama değiştiğinde promptu yeniden göndermeden önce kontrol değerlerini tekrar hesaplayın. ChatGPT incelemeyi düzenlemeye ve çelişkileri fark etmeye yardımcı olur, fakat referans değerler onun yanıtından ayrı tutulmalıdır. Böylece değişen kuralı yeni bir aritmetik hatasından ayırabilirsiniz.
