AI Prompt Engineering · Ders

Belirsiz ve Özgül İstemlerin Karşılaştırılması

Özgüllüğün yarattığı büyük farkı yan yana örneklerle görün.

4. ders / 413 adım

Belirsiz ve Özgül İstemlerin Karşılaştırılması, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.

Yan Yana Karşılaştırma Yöntemi

İstem kalitesini içselleştirmenin en hızlı yolu, belirli yeniden yazımları yan yana incelemek ve her iyileştirmenin neden işe yaradığını analiz etmektir.

Bu derste beş belirsiz istemi ve bunların somut yeniden yazımlarını inceliyoruz. Her çift için yapılan kesin değişiklikleri ve her iyileştirmenin modeli daha iyi bir çıktıya yönlendirme mekanizmasını belirliyoruz.

1. Çift: Blog Yazısı

Belirsiz: 'Uzaktan çalışma hakkında bir blog yazısı yazın.'

Somut: 'Orta düzey yazılım geliştiricilerden oluşan bir hedef kitle için "Üretkenliğimi Öldüren 3 Uzaktan Çalışma Alışkanlığı (Şimdi Ne Yapıyorum?)" başlıklı, 600 kelimelik bir blog yazısı yazın. Birinci tekil kişi anlatımı ve sohbet havasında bir ton kullanın. Yapı: 1 giriş paragrafı, H2 başlıkları olan 3 bölüm ve ücretsiz bir şablonu indirmeye yönlendiren 1 kapanış CTA'sı.'

Neden işe yarıyor: Kelime sayısını, başlığı (dolayısıyla bakış açısını), hedef kitleyi, anlatım tarzını, tonu, yapıyı ve belirli bir kapanış unsurunu ekler. Hiçbir boyut şansa bırakılmaz.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=800,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 600-word blog post titled '
            '"The 3 Remote Work Habits That Killed My Productivity (And What I Do Now)" '
            'for an audience of mid-level software developers. '
            'First-person voice, conversational tone. '
            'Structure: 1-paragraph intro, 3 H2 sections (one per habit), '
            '1 closing paragraph with a CTA to download a free productivity template.'
        )
    }]
)
print(response.content[0].text[:400], '...')

2. Çift: Kod İncelemesi

Belirsiz: 'Kodumu inceleyin.'

Somut: 'Aşağıdaki Python işlevini inceleyin. Yalnızca şunlara odaklanın: 1) doğruluk hataları, 2) ele alınmamış uç durumlar. Biçim, adlandırma veya düzen hakkında yorum YAPMAYIN. Çıktı biçimi: sorunların numaralı listesi; her sorun için şunları verin: sorun açıklaması (1 cümle), etkilenen satır(lar), önerilen düzeltme (kod parçacığı).'

Neden işe yarıyor: İncelemenin kapsamını (doğruluk ve uç durumlar) tanımlar, diğer boyutları (biçim ve adlandırma) açıkça hariç tutar ve her bulgu için üç alandan oluşan kesin bir çıktı yapısı belirtir.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

code = (
    'def get_user(users, user_id):\n'
    '    for user in users:\n'
    '        if user["id"] == user_id:\n'
    '            return user["name"]\n'
    '    return users[0]["name"]\n'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Review the following Python function.\n'
            'Focus ONLY on: 1) correctness bugs, 2) unhandled edge cases.\n'
            'Do NOT comment on style, naming conventions, or formatting.\n'
            'Output format: numbered list. Each item: issue (1 sentence), '
            'affected line, suggested fix as a code snippet.\n\n'
            + code
        )
    }]
)
print(response.choices[0].message.content)

3. Çift: E-posta Konu Satırı

Belirsiz: 'Bültenim için e-posta konu satırları yazın.'

Somut: 'Veri bilimcilerine yönelik, Python hakkında haftalık bir bülten için 10 e-posta konu satırı yazın. Her konu satırı 50 karakterden kısa olmalı, açılma oranını artıracak bir ilgi unsuru (merak boşluğu, numaralı liste veya şaşırtıcı bir iddia) içermeli ve FREE veya URGENT gibi istenmeyen ileti tetikleyici sözcüklerden kaçınmalıdır. Çıktıyı, ilgi unsuru türünü köşeli parantez içinde belirten numaralı bir liste olarak verin.'

Neden işe yarıyor: Miktarı, uzunluk kısıtını, ilgi unsuru gerekliliğini, hariç tutma listesini ve etiketli çıktı biçimini belirtir; böylece belirsiz bir yaratıcı görevi kurallara dayalı bir üretim görevine dönüştürür.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=400,
    messages=[{
        'role': 'user',
        'content': (
            'Write 10 email subject lines for a weekly newsletter '
            'about Python tips for data scientists. '
            'Requirements:\n'
            '- Each under 50 characters\n'
            '- Must use one of these hooks: [CURIOSITY GAP], [NUMBER], or [SURPRISING CLAIM]\n'
            '- No spam words: FREE, URGENT, ACT NOW, LIMITED TIME\n'
            '- Output as numbered list with hook type in brackets at the end of each line'
        )
    }]
)
print(response.content[0].text)

4. Çift: Toplantı Özeti

Belirsiz: 'Bu toplantı dökümünü özetleyin.'

Somut: 'Bu toplantı dökümünü şu biçimi kullanarak özetleyin: 1) Toplantının Amacı (1 cümle), 2) Alınan Temel Kararlar (madde listesi, en fazla 5), 3) Eylem Maddeleri (Görev, Sorumlu, Son Tarih sütunlarından oluşan tablo), 4) Açık Sorular (numaralı liste). Bir alan için bilgi eksikse Yok yazın. Herhangi bir görüş eklemeyin — yalnızca gerçeklere ve verilen taahhütlere yer verin.'

Neden işe yarıyor: Kesin bir şablon sağlar, her bölüm için sınırlar belirler, tablo şemasını tanımlar, eksik veriler için yedek bir davranış belirler ve bir ton kısıtı (yalnızca gerçekler) ekler.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

transcript = (
    'John: We need to decide on the launch date. '
    'Sarah: I think Q3 works. We need the API done first. '
    'John: Agreed. Sarah, can you own the API? '
    'Sarah: Yes, I can have it by July 15th. '
    'John: Great. Who handles marketing? '
    'Mike: I will, but I need the feature list first. '
    'John: We still need to confirm pricing — tabled for next week.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Summarize this meeting transcript in this exact format:\n'
            '1. Meeting Purpose: (1 sentence)\n'
            '2. Key Decisions: (bullet list, max 5)\n'
            '3. Action Items: (markdown table: Task | Owner | Deadline)\n'
            '4. Open Questions: (numbered list)\n'
            'Missing info: write N/A. Facts only, no opinions.\n\n'
            'Transcript:\n' + transcript
        )
    }]
)
print(response.choices[0].message.content)

5. Çift: Açıklama

Belirsiz: 'Makine öğrenimini açıklayın.'

Somut: 'Makine öğrenimini, istatistik bilen ancak daha önce kod yazmamış bir sağlık şirketindeki ürün yöneticisi için 3 paragrafta açıklayın. 1. paragraf: ne olduğu ve geleneksel programlamadan nasıl farklılaştığı. 2. paragraf: gerçek bir sağlık örneği (tanı veya ilaç keşfi). 3. paragraf: kaçınılması gereken yaygın bir yanlış kanı. Toplam en fazla 200 kelime.'

Neden işe yarıyor: Yapıyı (konuları belirlenmiş 3 paragraf), hedef kitleyi (belirli rol, alan ve geçmiş), her paragraf için içerik gereksinimlerini ve genel kelime sınırını tanımlar.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=350,
    messages=[{
        'role': 'user',
        'content': (
            'Explain machine learning in exactly 3 paragraphs. '
            'Audience: a product manager at a healthcare company who understands statistics '
            'but has never written code.\n'
            'Paragraph 1: what ML is and how it differs from traditional programming.\n'
            'Paragraph 2: a specific real-world healthcare example (diagnosis or drug discovery).\n'
            'Paragraph 3: one common misconception non-technical people have about ML.\n'
            'Max 200 words total. No bullet points — flowing prose only.'
        )
    }]
)
print(response.content[0].text)

İyi Bir Yeniden Yazımın Anatomisi

Beş çiftin tümüne baktığımızda, etkili her yeniden yazımın aynı şeyleri yaptığını görürüz:

  1. Belirsiz bir fiili değiştirir ('yazın', 'inceleyin', 'açıklayın' fiillerini) yapılandırılmış bir görevle değiştirir
  2. Çıktı biçimini belirtir (liste, tablo, içeriği belirlenmiş paragraflar)
  3. Ölçülebilir kısıtlar ekler (kelime sayısı, öğe sayısı, karakter sınırları)
  4. Hedef kitleyi belirtir (rol, geçmiş ve bağlam)
  5. En az bir hariç tutma kuralı ekler (nelerin dışarıda bırakılacağı)
# Pattern extractor: identify improvements between two prompts
def analyze_improvement(vague, specific):
    improvements = []
    words = specific.lower()
    if any(str(n) in words for n in range(10, 10000)):
        improvements.append('Quantitative constraint added')
    if 'do not' in words or 'exclude' in words or 'avoid' in words or 'no ' in words:
        improvements.append('Negative constraint added')
    if 'audience' in words or 'for a' in words or 'targeting' in words:
        improvements.append('Audience specified')
    if 'format:' in words or 'table' in words or 'list' in words or 'paragraph' in words:
        improvements.append('Output format defined')
    if 'example' in words or 'such as' in words or 'like:' in words:
        improvements.append('Example provided')
    print('Improvements detected:')
    for i in improvements:
        print(f'  + {i}')

vague = 'Write a blog post about remote work.'
specific = 'Write a 600-word blog post for mid-level developers with 3 H2 sections and a closing CTA. No bullet points. Avoid generic productivity advice.'
analyze_improvement(vague, specific)

Yalnızca Bir Boyut Eklendiğinde Ne Olur

Yalnızca bir iyileştirme eklemek yardımcı olur; ancak kısmi özgüllük yine de büyük boşluklar bırakır. Karşılaştırın:

  • 'Uzaktan çalışma hakkında bir blog yazısı yazın' — kısıt yok
  • 'Uzaktan çalışma hakkında 600 kelimelik bir blog yazısı yazın' — yalnızca uzunluk belirtilmiş; bakış açısı, hedef kitle ve yapı hâlâ belirsiz
  • 'Geliştiriciler için, sohbet havasında bir tonla uzaktan çalışma hakkında 600 kelimelik bir blog yazısı yazın' — uzunluk + hedef kitle + ton belirtilmiş; yapı, CTA ve başlık biçimi hâlâ belirsiz

Belirtmediğiniz her boyut bir kura çekimidir. Elinizde bilgi bulunan boyutların mümkün olduğunca çoğunu ekleyin.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Progressively more specific prompts
prompts = [
    'Write about Python.',
    'Write a 200-word article about Python.',
    'Write a 200-word article about Python for beginners who know no programming.',
    (
        'Write a 200-word article about Python for beginners who know no programming. '
        'Start with a real-world analogy. Use 3 short paragraphs. '
        'End with one actionable first step they can take today.'
    )
]

for i, p in enumerate(prompts, 1):
    print(f'Prompt {i} ({len(p)} chars): {p[:80]}...' if len(p) > 80 else f'Prompt {i}: {p}')
    print()

Karşılaştırma Çifti Tekniğini Uygulamada Kullanma

Karşılaştırma çifti tekniği, güçlü bir hata ayıklama aracıdır. Kötü bir çıktı aldığınızda:

  1. Kötü çıktıyı üreten belirsiz istemi kaydedin
  2. Soruna neden olan tek boyutu belirleyin
  3. Yalnızca o boyutu hedefleyen somut bir yeniden yazım oluşturun
  4. Her iki istemi çalıştırıp çıktıları karşılaştırın
  5. Hâlâ düzeltilmesi gerekenleri belirleyin ve ardından bir sonraki kısıtı ekleyin

Bu bilimsel yaklaşım, kullanım alanınız için hangi kısıtların en önemli olduğunu hızla öğrenmenizi sağlar.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

def compare_prompts(prompt_a, prompt_b, label_a='A', label_b='B'):
    client_ref = anthropic.Anthropic(api_key='sk-ant-your-key-here')
    for label, prompt in [(label_a, prompt_a), (label_b, prompt_b)]:
        response = client_ref.messages.create(
            model='claude-opus-4-5',
            max_tokens=150,
            messages=[{'role': 'user', 'content': prompt}]
        )
        print(f'=== {label} ===')
        print(prompt)
        print('--- OUTPUT ---')
        print(response.content[0].text)
        print()

compare_prompts(
    prompt_a='Explain APIs.',
    prompt_b='Explain APIs in 3 sentences for a non-technical startup founder. Analogy required.',
    label_a='VAGUE',
    label_b='SPECIFIC'
)

İki Dakikalık İstem Denetimi

Önemli bir istemi göndermeden önce bu 2 dakikalık denetimi uygulayın. Her soru için yanıt 'hayır' ise eksik ayrıntıyı ekleyin:

  • Biçim belirtilmiş mi? (liste / tablo / paragraf / JSON)
  • Uzunluk belirtilmiş mi? (kelime sayısı / öğe sayısı)
  • Hedef kitle tanımlanmış mı? (rol + geçmiş)
  • Hedef açık mı? (çıktının ne için kullanılacağı)
  • En az bir hariç tutma var mı? (nelerin dışarıda bırakılacağı)
  • Bir örnek veya şablon var mı? (üslup önemliyse)
def two_minute_audit(prompt):
    score = 0
    checks = {
        'Format specified': any(w in prompt.lower() for w in
            ['list', 'table', 'paragraph', 'json', 'bullet', 'sentence', 'word']),
        'Length given': any(c.isdigit() for c in prompt),
        'Audience named': any(w in prompt.lower() for w in
            ['for a', 'audience', 'targeting', 'developer', 'manager', 'beginner']),
        'Exclusion added': any(w in prompt.lower() for w in
            ['do not', 'avoid', 'exclude', 'no ', 'without', 'never']),
        'Goal stated': any(w in prompt.lower() for w in
            ['goal', 'purpose', 'so that', 'in order to', 'will be used']),
    }
    print('Prompt Audit:')
    for check, passed in checks.items():
        icon = 'PASS' if passed else 'FAIL'
        print(f'  [{icon}] {check}')
        if passed: score += 1
    print(f'Score: {score}/{len(checks)}')

two_minute_audit(
    'Write 5 bullet-point suggestions for improving user onboarding '
    'for a B2B SaaS app targeting first-time non-technical users. '
    'Avoid suggestions that require engineering work. Each bullet: max 25 words.'
)

İstem Kitaplığınızı Oluşturma

Mükemmel bir çıktı üreten bir istem yazdığınız her seferde onu kaydedin. Görev türüne göre düzenlenmiş kişisel bir istem kitaplığı oluşturun.

İyi bir istem kitaplığı girdisi şunları içerir:

  • [AUDIENCE], [WORD_COUNT] gibi yer tutucular içeren istem şablonu
  • İstemin tasarlandığı kullanım alanı
  • Kullanılan model ve ayarlar
  • İstemi etkili kılan unsurlara ilişkin bir not

Zamanla kitaplığınız, yapay zekâ ile üretkenliğinizi artıran en değerli kaynağınız hâline gelir.

# Example prompt library entry
prompt_library = {
    'meeting_summary': {
        'template': (
            'Summarize the following meeting transcript in this format:\n'
            '1. Purpose: (1 sentence)\n'
            '2. Decisions: (bullet list, max 5)\n'
            '3. Action Items: (table: Task | Owner | Deadline)\n'
            '4. Open Questions: (numbered list)\n'
            'Missing info: N/A. Facts only.\n\nTranscript:\n[TRANSCRIPT]'
        ),
        'use_case': 'Post-meeting automation for Slack or Notion',
        'model': 'claude-opus-4-5',
        'temperature': 0,
        'notes': 'Works best with verbatim transcripts, not paraphrased notes'
    }
}

# Use the template
def run_meeting_summary(transcript):
    template = prompt_library['meeting_summary']['template']
    return template.replace('[TRANSCRIPT]', transcript)

print(run_meeting_summary('Alice: We decided to ship v2 next Friday...')[:200])

Bilgi Kontrolü

Bu dersteki beş karşılaştırma çiftine baktığınızda, beş örneğin tümünde istem kalitesini en tutarlı biçimde artıran tek değişiklik hangisiydi?

Belirsiz ve Somut — Özet

Beş karşılaştırma çifti, istemleri yeniden yazmayı etkili kılan unsurlarda tutarlı bir örüntü olduğunu ortaya koyuyor:

  • Çıktı yapısı en yüksek ROI sağlayan iyileştirmedir — her zaman tanımlayın
  • Kelime/öğe sayısı uzunlukla ilgili pazarlığı tamamen ortadan kaldırır
  • Hedef kitle açıklaması terminolojiyi ve derinliği otomatik olarak ayarlar
  • Hariç tutma kuralları öngörülebilir generic içeriği engeller
  • Kısmi özgüllük yine boşluklar bırakır — belirtilmeyen her boyut bir tahmindir
  • İstem kitaplıkları tekrar tekrar kullanılabilecek başarılı şablonları saklar
Başlamak ücretsiz

Yapay zeka eğitmeniyle AI Prompt Engineering öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
53
Dersler
199

Sıkça Sorulan Sorular

“Belirsiz ve Özgül İstemlerin Karşılaştırılması” dersi ücretsiz mi?

Evet — “Belirsiz ve Özgül İstemlerin Karşılaştırılması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.

“Belirsiz ve Özgül İstemlerin Karşılaştırılması” dersinde ne öğreneceğim?

Özgüllüğün yarattığı büyük farkı yan yana örneklerle görün. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Belirsiz ve Özgül İstemlerin Karşılaştırılması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Özgüllük Neden Önemlidir
  2. İstemlerdeki Belirsizliği Giderme
  3. Somut Ayrıntılar Ekleme
  4. Belirsiz ve Özgül İstemlerin Karşılaştırılması
← AI Prompt Engineering Sayfasına Dön