Prompt anatomisi: görev, bağlam, kısıt, format
Önkoşul:Bağlam penceresi, token ve maliyet
Kanca
“Köpekler hakkında bir şeyler yaz” — bu prompt’a model NE cevap vermeli? Bir şiir mi, bilimsel bir makale mi, tek cümle mi, bir sayfa mı? 1. derste gördüğümüz gibi model bir OLASILIK DAĞILIMINDAN seçim yapıyor — ve BELİRSİZ bir prompt, o dağılımı GENİŞ ve ÖNGÖRÜLEMEZ bırakır.
Sezgi
İyi bir prompt DÖRT parçadan oluşur: GÖREV (ne istiyorsun), BAĞLAM (modelin bilmesi gereken arka plan), KISIT (sınırlar — ne YAPILMAMALI), FORMAT (çıktının şekli). Bu dört parça eksik olduğunda, model KENDİ varsayımlarıyla boşluğu doldurur — ve bu varsayım SENİN istediğinle NADİREN tam örtüşür.
Mekanizma
Aynı isteği, önce belirsiz, sonra dört parçayı da İÇEREN şekilde yazalım ve GERÇEK token maliyetini karşılaştıralım:
Belirsiz vs dört parçalı prompt
# Bir promptun DÖRT parçası vardır: GÖREV (ne istiyorsun), BAĞLAM (gerekli bilgi),
# KISIT (sınırlar), FORMAT (çıktı şekli). Belirsiz bir prompt bunların ÇOĞUNU eksik bırakır.
BELIRSIZ = "Write something about dogs."
YAPILI = (
"Write a 3-sentence, cheerful paragraph about why dogs make good pets, "
"for a childrens picture book. Do not mention cats."
)
t_belirsiz = mesaj_token_sayisi(BELIRSIZ)
t_yapili = mesaj_token_sayisi(YAPILI)
print(f"Belirsiz prompt ({t_belirsiz} token): \"{BELIRSIZ}\"")
print(f"Yapılı prompt ({t_yapili} token): \"{YAPILI}\"")
print(f"\nYapılı prompt, belirsiz olandan {t_yapili/t_belirsiz:.1f}x daha fazla token -- ama")
print("GÖREV (yaz), BAĞLAM (neden köpekler iyi evcil hayvan), KISIT (kedi bahsetme, 3 cümle),")
print("FORMAT (neşeli, çocuk kitabı paragrafı) HEPSİ TEK seferde belirtildiği için, modelin")
print("YANLIŞ bir varsayımda bulunup TEKRAR düzeltme istemesi gerekmiyor.")Belirsiz prompt (19 token): "Write something about dogs."
Yapılı prompt (83 token): "Write a 3-sentence, cheerful paragraph about why dogs make good pets, for a childrens picture book. Do not mention cats."
Yapılı prompt, belirsiz olandan 4.4x daha fazla token -- ama
GÖREV (yaz), BAĞLAM (neden köpekler iyi evcil hayvan), KISIT (kedi bahsetme, 3 cümle),
FORMAT (neşeli, çocuk kitabı paragrafı) HEPSİ TEK seferde belirtildiği için, modelin
YANLIŞ bir varsayımda bulunup TEKRAR düzeltme istemesi gerekmiyor.Yapılı prompt’u parçalarına ayıralım:
| Parça | Bu prompttaki karşılığı |
|---|---|
| GÖREV | “Write a … paragraph about why dogs make good pets” |
| BAĞLAM | “for a childrens picture book” (kimin için yazıldığı) |
| KISIT | “Do not mention cats” (ne YAPILMAMALI) |
| FORMAT | “3-sentence, cheerful paragraph” (uzunluk ve ton) |
Matematik
Tek tur maliyeti vs netleştirme turu maliyeti
Belirsiz bir prompt, genelde bir NETLEŞTİRME turu (model soruyor, sen cevaplıyorsun) GEREKTİRİR. 2. dersteki karesel büyüme kuralını hatırla: bu ek tur, SADECE kendi token’larını değil, TÜM geçmişin TEKRAR gönderilmesini de gerektirir.
Kod
Bu iki senaryoyu GERÇEK bir fiyatla (2. dersteki Sonnet 5 fiyatı) karşılaştıralım:
Yapılı prompt, netleştirme turundan ucuz çıkabilir
# Belirsiz bir prompt genelde bir NETLEŞTİRME turu GEREKTİRİR -- bu turun kendi
# maliyeti var. Basit bir karşılaştırma (2. dersteki fiyatla, Sonnet 5, $2/1M girdi):
GIRDI_FIYATI_1M = 2.0
NETLESTIRME_TURU_TOKEN = 120 # öğretici amaçlı tahmini bir netleştirme diyaloğunun boyutu
maliyet_yapili_tek_tur = t_yapili / 1_000_000 * GIRDI_FIYATI_1M
maliyet_belirsiz_iki_tur = (t_belirsiz + t_belirsiz + NETLESTIRME_TURU_TOKEN) / 1_000_000 * GIRDI_FIYATI_1M
print(f"\nYapılı prompt (TEK tur) maliyeti: ${maliyet_yapili_tek_tur:.6f}")
print(f"Belirsiz prompt + 1 netleştirme turu (VARSAYIMSAL {NETLESTIRME_TURU_TOKEN} token'lık ek diyalog) maliyeti: ${maliyet_belirsiz_iki_tur:.6f}")
print("\nBu rakamlar KÜÇÜK ama örüntü ÖNEMLİ: 2. dersteki karesel büyüme nedeniyle, HER ek")
print("netleştirme turu, sadece kendi token'larını DEĞİL, TÜM geçmişin YENİDEN gönderilmesini")
print("de gerektirir -- iyi yapılandırılmış TEK bir prompt, genelde daha UCUZ ve daha HIZLIDIR.")
Yapılı prompt (TEK tur) maliyeti: $0.000166
Belirsiz prompt + 1 netleştirme turu (VARSAYIMSAL 120 token'lık ek diyalog) maliyeti: $0.000316
Bu rakamlar KÜÇÜK ama örüntü ÖNEMLİ: 2. dersteki karesel büyüme nedeniyle, HER ek
netleştirme turu, sadece kendi token'larını DEĞİL, TÜM geçmişin YENİDEN gönderilmesini
de gerektirir -- iyi yapılandırılmış TEK bir prompt, genelde daha UCUZ ve daha HIZLIDIR.Nerede işe yarar
Bu dört parçalı çerçeve, sonraki derslerin (4-8) HEPSİNİN üzerine inşa edileceği TEMELDİR:
- GÖREV her zaman en BAŞTA ve en NET olmalı — model, cümlenin SONUNA kadar “ne isteniyor” belirsizse, ilk kısmı YANLIŞ yorumlayabilir.
- BAĞLAM, modelin BİLMEDİĞİ (ve TAHMİN ETMEMESİ gereken) bilgiyi taşır — kimin için, hangi amaçla, hangi ön bilgiyle.
- KISIT, “ne YAPILMASIN” listesidir — modeller, açıkça YASAKLANMAMIŞ her şeyi MEŞRU sayabilir.
- FORMAT, çıktının NASIL göründüğünü belirler — uzunluk, ton, yapı (liste mi, paragraf mı, JSON mu — 7. ders).
Bu 2 hatayı yaparsın:
- Her promptun HER ZAMAN dört parçayı da İÇERMESİ gerektiğini sanmak — basit, tek satırlık bir soru için AŞIRI yapılandırma GEREKSİZ zaman kaybıdır; KARMAŞIKLIK arttıkça yapı ÖNEM kazanır.
- Daha UZUN bir promptun her zaman daha İYİ olduğunu düşünmek — amaç UZUNLUK değil, EKSİK BIRAKMAMAKTIR; gereksiz detay da modeli YANLIŞ yöne çekebilir.
Kendini test et
1. Notebook'ta yapılı prompt, belirsiz olandan 4.4 kat daha fazla token kullanıyor. Bu neden HER ZAMAN bir 'israf' değildir?
- Her zaman israftır, mümkün olduğunca kısa prompt yazılmalı
- Belirsiz bir prompt genelde bir NETLEŞTİRME turu gerektirir; 2. dersteki karesel büyüme nedeniyle bu ek tur, TÜM geçmişi yeniden göndermeyi gerektirdiği için, yapılı promptun tek seferlik maliyetinden daha PAHALIYA mal olabilir (doğru cevap)
- Token sayısının maliyetle hiçbir ilgisi yoktur
- Yapılı promptlar her zaman daha az token kullanır
Neden: tek-tur-vs-cok-tur-maliyeti bloğunda yapılı prompt (tek tur) $0.000166 iken, belirsiz prompt + 1 netleştirme turu $0.000316 -- neredeyse İKİ katı.
2. Bir promptta KISIT (constraint) parçasının eksik olması NASIL bir soruna yol açar?
- Hiçbir soruna yol açmaz
- Model, açıkça YASAKLANMAMIŞ her şeyi MEŞRU sayabilir -- örn. 'kedilerden bahsetme' kısıtı olmadan, model konuyla İLGİLİ gördüğü için kedileri de karşılaştırma amacıyla ANABİLİR (doğru cevap)
- Kısıt sadece format ile ilgilidir, göreve etkisi yoktur
- Kısıt eksikliği sadece uzunluğu etkiler
Neden: Sezgi ve kullanım bölümlerinde açıklandığı gibi, KISIT 'ne YAPILMASIN' listesidir -- notebook'taki 'Do not mention cats' örneği tam olarak bunu gösteriyor; bu kısıt olmadan model kedileri konuya dahil edebilirdi.
3. Prompt anatomisinin dört parçası (görev, bağlam, kısıt, format) HER prompt için ZORUNLU MUDUR?
- Evet, her prompt mutlaka dört parçayı da içermelidir
- Hayır -- basit, tek satırlık isteklerde aşırı yapılandırma gereksizdir; KARMAŞIKLIK ve BELİRSİZLİK RİSKİ arttıkça bu dört parçayı açıkça belirtmenin FAYDASI artar (doğru cevap)
- Hayır, sadece format kısmı önemlidir
- Sadece İngilizce promptlarda gereklidir
Neden: Kullanım bölümündeki 'Bu 2 hatayı yaparsın' kısmında AÇIKÇA belirtildiği gibi, her promptun dört parçayı da içermesi gerektiğini sanmak bir HATADIR -- basit sorular için aşırı yapılandırma zaman kaybıdır.
Özet
Özet
- İyi bir prompt dört parçadan oluşur: GÖREV, BAĞLAM, KISIT, FORMAT.
- Bu parçalardan biri eksikse, model KENDİ varsayımıyla boşluğu doldurur -- bu varsayım seninkiyle ÖRTÜŞMEYEBİLİR.
- Yapılı bir prompt DAHA FAZLA token kullanır (bu dersteki örnekte 4.4 kat) -- ama bir netleştirme turundan genelde daha UCUZDUR.
- 2. dersteki karesel maliyet büyümesi nedeniyle, HER ek netleştirme turu orantısız derecede PAHALIDIR.
- Yapı, HER promptta değil, karmaşıklık ve belirsizlik riski arttıkça ÖNEM kazanır.