0Pricing
AI Prompt Engineering · Ders

Öz Eleştiri ve Gözden Geçirme Kalıpları

Modellerden kendi çıktılarını bir anayasaya göre değerlendirmelerini ve yeniden yazmalarını isteme.

Öz Eleştiri ve Gözden Geçirme Kalıpları, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 2. 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.

Bir İstem Oluşturma Tekniği Olarak Öz-Eleştiri

Resmî bir CAI eğitim süreci olmadan da yetenekli herhangi bir LLM'den kendi çıktılarını eleştirmesini ve iyileştirmesini isteyebilirsiniz. Bu öz-eleştiri kalıbı; doğruluk, eksiksizlik veya güvenliğin önemli olduğu görevlerde kaliteyi önemli ölçüde artırır.

Temel fikir şudur: Modeller, ilk geçişte gösterdiklerinden daha fazla bilgiye sahiptir. Bir eleştiri istemi bu bilgiyi ortaya çıkarır.

Temel Doğruluk Eleştirisi Kalıbı

En basit öz-eleştiri yöntemi, modelden yanıtını olgusal doğruluk açısından gözden geçirmesini ve varsa hataları düzeltmesini istemektir.

import anthropic

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

def generate_and_self_critique(question):
    # Step 1: Generate
    r1 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': question}]
    )
    initial = r1.content[0].text

    # Step 2: Accuracy critique
    critique_prompt = (
        f'Question: {question}\n\n'
        f'Your previous answer: {initial}\n\n'
        'Review your previous answer for factual accuracy. '
        'Identify any errors, unsupported claims, or missing important nuances. '
        'Then provide a corrected, improved answer.'
    )
    r2 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': critique_prompt}]
    )
    return r2.content[0].text

result = generate_and_self_critique('What caused the fall of the Roman Empire?')
print(result[:300])

Eksiksizlik Denetimi Kalıbı

Eksiksizlik eleştirisi, modelden yanıtının sorunun her bölümünü tamamen yanıtladığını doğrulamasını ister. Bu, özellikle ilk yanıtların çoğu zaman alt soruları atladığı çok bölümlü sorular için kullanışlıdır.

COMPLETENESS_CRITIQUE = (
    'Original question: {question}\n\n'
    'Your previous answer: {answer}\n\n'
    'Check if your answer fully addresses the question:\n'
    '1. List each part or sub-question in the original question.\n'
    '2. For each part, indicate whether your answer addressed it.\n'
    '3. If any parts were missed or incomplete, provide a revised answer '
    'that covers everything.'
)

def check_completeness(question, initial_answer, client):
    prompt = COMPLETENESS_CRITIQUE.format(
        question=question,
        answer=initial_answer
    )
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=600,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response.content[0].text

Zarar ve Güvenlik Eleştirisi Kalıbı

Zarar eleştirisi, modelden yanıtını kullanıcılara göstermeden önce olası olumsuz sonuçlar açısından gözden geçirmesini ister. Bu, CAI ilkelerini üretim ortamında uygulamanın temelidir.

HARM_CRITIQUE_PROMPT = (
    'Review the following assistant response for potential harms:\n\n'
    'User message: {user_message}\n'
    'Assistant response: {response}\n\n'
    'Consider:\n'
    '- Could this response enable harmful actions?\n'
    '- Could it be misused by someone with bad intentions?\n'
    '- Does it respect the privacy and dignity of individuals?\n'
    '- Could it cause psychological harm to vulnerable users?\n\n'
    'If the response has issues, explain them and provide a revised '
    'version that addresses the concerns while still being helpful. '
    'If the response is fine, say "Response is appropriate" and quote it back.'
)

def safety_check(user_message, response, client):
    prompt = HARM_CRITIQUE_PROMPT.format(
        user_message=user_message,
        response=response
    )
    result = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=600,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return result.content[0].text

Çok Ölçütlü Eleştiri

Yüksek riskli çıktılar için birden çok ölçütü açıkça listeleyerek tek bir geçişte eleştirin. Bu, her ölçüt için ayrı eleştiri çağrıları yapmaktan daha verimlidir.

MULTI_CRITERIA_CRITIQUE = (
    'Evaluate this response on three criteria:\n\n'
    'Question: {question}\n'
    'Response: {response}\n\n'
    'Criteria:\n'
    '1. ACCURACY: Are all facts correct and claims well-supported?\n'
    '2. COMPLETENESS: Does it fully address the question?\n'
    '3. CLARITY: Is it easy to understand for the target audience?\n\n'
    'For each criterion, rate it Good/Fair/Poor and explain why.\n'
    'Then provide an improved response that scores Good on all three.'
)

def multi_criteria_check(question, response, client):
    prompt = MULTI_CRITERIA_CRITIQUE.format(
        question=question,
        response=response
    )
    result = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=800,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return result.content[0].text

Gözden Geçirme Adımı: En İyi Uygulamalar

Gözden geçirme istemi üç şey yapmalıdır:

  1. Modele asıl isteği (bağlamı) hatırlatmak
  2. Eleştiri bulgularını sunmak
  3. Sorunları ele alan gözden geçirilmiş bir yanıt istemek

Gözden geçirme sırasında modelden eleştiriyi yeniden açıklamasını istemeyin; yalnızca düzeltmesini isteyin. Gözden geçirme istemini eylem odaklı tutmak daha iyi sonuçlar üretir.

# Good revision prompt: action-oriented
GOOD_REVISION = (
    'Given this critique of your response, please write an improved version.\n\n'
    'Original question: {question}\n'
    'Critique: {critique}\n\n'
    'Write only the improved response — no preamble, no meta-commentary:'
)

# Bad revision prompt: too passive
BAD_REVISION = (
    'Here is a critique of your response. Can you maybe consider '
    'revising it somewhat based on the feedback below?\n'
    'Critique: {critique}'
    # Missing original question context!
    # Wishy-washy language reduces revision quality
)

Birden Çok Gözden Geçirme Turunu Zincirleme

Çok karmaşık kalite gereksinimleri için tek bir eleştiri-gözden geçirme turu çoğu zaman yeterli değildir. Her turda farklı bir ilke uygulayarak veya kalan sorunları denetleyerek birden çok turu zincirleyebilirsiniz.

import anthropic

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

def multi_round_revision(question, n_rounds=2):
    # Round 0: Initial generation
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': question}]
    ).content[0].text

    principles = [
        'factual accuracy and avoiding unsupported claims',
        'completeness — ensuring all parts of the question are answered',
    ]

    for i, principle in enumerate(principles[:n_rounds]):
        critique_prompt = (
            f'Question: {question}\n'
            f'Current response: {response}\n\n'
            f'Critique for {principle} and provide an improved version:'
        )
        response = client.messages.create(
            model='claude-opus-4-5',
            max_tokens=512,
            messages=[{'role': 'user', 'content': critique_prompt}]
        ).content[0].text
        print(f'Round {i+1} complete')

    return response

Kod Üretiminde Öz-Eleştiri

Öz-eleştiri, kod üretiminde özellikle etkilidir. Model önce kodu yazar, ardından kodu hatalar, sınır durumları ve güvenlik sorunları açısından gözden geçirir; çoğu zaman ilk seferde gözden kaçırdığı hataları yakalar.

CODE_CRITIQUE_PROMPT = (
    'Review this Python code for correctness and security issues:\n\n'
    'Task: {task}\n\n'
    'Code:\n'
    ''''python\n'
    '{code}\n'
    ''''\n\n'
    'Check for:\n'
    '1. Logic errors or off-by-one mistakes\n'
    '2. Unhandled edge cases (empty input, None, division by zero)\n'
    '3. Security issues (SQL injection, path traversal, etc.)\n\n'
    'If issues exist, list them and provide a corrected version. '
    'If the code is correct, say so and explain why it handles edge cases properly.'
)

def critique_code(task, code, client):
    prompt = CODE_CRITIQUE_PROMPT.format(task=task, code=code)
    result = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=800,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return result.content[0].text

Bir Alternatif Olarak Öz-Tutarlılık

Öz-tutarlılık farklı bir yaklaşımdır: Aynı yanıtı N kez üretir, ardından çoğunluk oylaması yapar veya modelden birden çok taslaktan en iyi yanıtı sentezlemesini istersiniz.

Öz-tutarlılığı, doğru yanıtı belirgin olan sorular için kullanın. Kalite çok boyutlu olduğunda (doğruluk + üslup + güvenlik) eleştiri-gözden geçirme yaklaşımını kullanın.

import anthropic
from collections import Counter

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

def self_consistency(question, n=5):
    """Generate N responses and pick the most common answer."""
    responses = []
    for _ in range(n):
        r = client.messages.create(
            model='claude-haiku-4-5',
            max_tokens=100,
            temperature=0.7,
            messages=[{'role': 'user', 'content': question}]
        )
        responses.append(r.content[0].text.strip())

    # Pick most common answer
    vote = Counter(responses)
    winner, count = vote.most_common(1)[0]
    print(f'Consensus ({count}/{n}): {winner}')
    return winner

result = self_consistency('What is the sum of angles in a triangle?')

Eleştirinin Zarar Verdiği Durumlar: Aşırı Eleştiri Riski

Öz-eleştiri her zaman yararlı değildir. Şu başarısızlık biçimlerine dikkat edin:

  • Yaranmacı eleştiri: Model, yanıtı yanlış olsa bile harika olduğunu söyler
  • Aşırı temkinlilik: Model, riskli göründüğü için gözden geçirme sırasında yararlı bilgileri çıkarır
  • Halüsinasyona dayalı düzeltmeler: Gözden geçirme, ilk yanıtta bulunmayan yeni hatalar ortaya çıkarır

Şunlarla azaltın: Eleştiri için farklı bir model kullanın, eleştirileri belirli gerçeklere dayandırın ve gözden geçirilmiş çıktıları doğruluğu bilinen yanıtlarla doğrulayın.

Eleştirinin Etkililiğini Ölçme

Başlangıç ve gözden geçirilmiş yanıtları bir altın standartla karşılaştırarak eleştirinin çıktıları gerçekten iyileştirip iyileştirmediğini izleyin. Bu, ek LLM çağrılarının maliyetine değip değmediğini gösterir.

def measure_critique_lift(examples, generate_fn, critique_fn, metric_fn):
    """
    Measure how much critique improves accuracy over initial generation.
    """
    initial_scores = []
    revised_scores = []

    for ex in examples:
        initial = generate_fn(ex.question)
        revised = critique_fn(ex.question, initial)

        initial_scores.append(metric_fn(ex.answer, initial))
        revised_scores.append(metric_fn(ex.answer, revised))

    avg_initial = sum(initial_scores) / len(initial_scores)
    avg_revised = sum(revised_scores) / len(revised_scores)

    print(f'Initial: {avg_initial:.1%}')
    print(f'Revised: {avg_revised:.1%}')
    print(f'Lift:   +{avg_revised - avg_initial:.1%}')
    return avg_revised - avg_initial

Bilgi Kontrolü: Öz-Eleştirinin Zamanlaması

Yanıtı kullanıcılara göstermeden önce olgusal hataları yakalamak için hangi kalıp en uygundur?

Özet: Öz-critique ve Revizyon Kalıpları

Öz-critique istemleri, modelden kendi çıktısını belirli ölçütlere — doğruluk, eksiksizlik, güvenlik veya açıklık — göre gözden geçirmesini ve ardından iyileştirilmiş bir revizyon üretmesini ister. Etkili kalıplar: doğruluk critique (olgusal hataları gözden geçirme), eksiksizlik kontrolü (tüm bölümlere değindiniz mi?), zarar critique (bu, zararlı eylemleri mümkün kılabilir mi?) ve kod incelemesi (hataları ve uç durumları kontrol etme). Yüksek riskli çıktılar için birden çok turu zincirleyin. Ek maliyetin haklı olduğunu doğrulamak için gerçek kazanımı ölçün.

Sıkça Sorulan Sorular

“Öz Eleştiri ve Gözden Geçirme Kalıpları” dersi ücretsiz mi?

Evet — “Öz Eleştiri ve Gözden Geçirme Kalıpları” 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.

“Öz Eleştiri ve Gözden Geçirme Kalıpları” dersinde ne öğreneceğim?

Modellerden kendi çıktılarını bir anayasaya göre değerlendirmelerini ve yeniden yazmalarını isteme. 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 2. dersidir.

“Öz Eleştiri ve Gözden Geçirme Kalıpları” 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. CAI İlkeleri ve Eleştiri İstemleri
  2. Öz Eleştiri ve Gözden Geçirme Kalıpları
  3. Zararsızlık ve Faydalılık Gerilimi
  4. Uygulamalarda CAI Uygulama
← AI Prompt Engineering Sayfasına Dön