0Pricing
AI Prompt Engineering · Ders

Uygulamalarda CAI Uygulama

Üretim yapay zeka işlem hatlarına eleştiri ve düzeltme döngüleri ekleyin.

Uygulamalarda CAI Uygulama, 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.

Uygulama Düzeyinde CAI Kalıbı

Anayasal yapay zekâ başlangıçta eğitim zamanında kullanılan bir teknikti, ancak aynı critique-revise döngüsü çıkarım zamanında uygulamalarınızda da uygulanabilir. Kendi modelinizi eğitmeniz gerekmez — döngüyü uygulamak için API çağrıları kullanırsınız.

Uygulama düzeyindeki CAI, modelin yerleşik korumalarının ötesinde bir güvenlik ağı istediğiniz yüksek riskli çıktı senaryolarında yararlıdır.

İhtiyacınız Olan Üç İşlev

Bir CAI uygulamasının birleştirilebilir üç işleve ihtiyacı vardır: generate(), critique() ve revise(). Bunların her biri ayrı bir LLM çağrısıdır. Bunları uygulama mantığınızda birbirine bağlarsınız.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')
MODEL = 'claude-opus-4-5'

def generate(user_message):
    r = client.messages.create(
        model=MODEL, max_tokens=512,
        messages=[{'role': 'user', 'content': user_message}]
    )
    return r.content[0].text

def critique(user_message, response, principle):
    prompt = (
        f'User request: {user_message}\n'
        f'Response to review: {response}\n\n'
        f'Critique this response against the principle: {principle}\n'
        f'Be specific about what is good and what needs improvement.'
    )
    r = client.messages.create(
        model=MODEL, max_tokens=256,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

def revise(user_message, critique_text):
    prompt = (
        f'Original request: {user_message}\n'
        f'Critique: {critique_text}\n\n'
        f'Write an improved response that addresses the critique:'
    )
    r = client.messages.create(
        model=MODEL, max_tokens=512,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

Döngüyü Birbirine Bağlama

Ana uygulama işlevi generate, critique ve revise adımlarını sırayla çağırır. Tek bir CAI turu, ilk üretimin üzerine 2 ek LLM çağrısı ekler.

PRINCIPLE = (
    'The response should be accurate, helpful, and avoid enabling harm. '
    'It should acknowledge uncertainty where appropriate.'
)

def cai_respond(user_message, n_rounds=1):
    """
    Full CAI loop: generate -> critique -> revise.
    n_rounds: number of critique-revise iterations.
    """
    # Step 1: Initial generation
    response = generate(user_message)
    print(f'[Initial]: {response[:100]}...')

    # Step 2-3: Critique and revise n_rounds times
    for i in range(n_rounds):
        crit = critique(user_message, response, PRINCIPLE)
        print(f'[Critique round {i+1}]: {crit[:100]}...')
        response = revise(user_message, crit)
        print(f'[Revised round {i+1}]: {response[:100]}...')

    return response

# Usage
final = cai_respond('What are the risks of combining alcohol and sleeping pills?')
print('\nFinal response:', final)

Karar Verme: 1 Tur mu, N Tur mu

Kaç critique-revise turu çalıştırmalısınız? Genel kural:

  • 1 tur: Çoğu güvenlik taraması ve kalite iyileştirme kullanım senaryosu için yeterlidir
  • 2 tur: İlk critique, ikinci bir geçişi hak eden önemli sorunlar bulduğunda
  • 3+ tur: Nadiren gerekir — azalan getiriler, yüksek maliyet ve aşırı düzeltme riski vardır

Pratik bir yaklaşım şudur: her zaman 1 tur çalıştırın ve ikinci turu yalnızca ilk critique ciddi sorunları işaretlediyse başlatın.

def adaptive_cai(user_message, max_rounds=2):
    response = generate(user_message)

    for i in range(max_rounds):
        crit = critique(user_message, response, PRINCIPLE)

        # Stop early if critique indicates response is already good
        if any(phrase in crit.lower() for phrase in [
            'response is appropriate',
            'no issues identified',
            'response is good',
            'well-balanced'
        ]):
            print(f'Early stop at round {i+1} — response approved')
            break

        response = revise(user_message, crit)

    return response

result = adaptive_cai('Explain how vaccines work.')
print(result[:200])

CAI Döngülerinin Maliyeti

Her CAI döngüsü yinelemesi 2 ek LLM çağrısı ekler (critique + revise). Büyük ölçekte bu, belirteç maliyetlerinizi artırır:

  • 1 tur: Doğrudan bir yanıtın belirteçlerinin 3 katı
  • 2 tur: Belirteçlerin 5 katı
  • 3 tur: Belirteçlerin 7 katı

Bunu azaltmak için critique işleminde daha küçük bir model kullanın, critique sonuçlarını önbelleğe alın ve CAI'yi yalnızca yüksek riskli istek kategorileri için tetikleyin.

import anthropic

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

# Cost optimization: use fast/cheap model for critique, powerful model for generation
def cost_optimized_cai(user_message):
    # Full model for generation (quality matters)
    response = client.messages.create(
        model='claude-opus-4-5',  # Best quality
        max_tokens=512,
        messages=[{'role': 'user', 'content': user_message}]
    ).content[0].text

    # Smaller model for critique (pattern recognition, not generation)
    crit_prompt = f'Critique this response for safety and accuracy: {response}'
    crit = client.messages.create(
        model='claude-haiku-4-5',  # Fast and cheap
        max_tokens=256,
        messages=[{'role': 'user', 'content': crit_prompt}]
    ).content[0].text

    # Full model for revision (quality matters again)
    revised = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': f'Improve this response: {crit}'}]
    ).content[0].text

    return revised

İstek Risk Sınıflandırıcısı Oluşturma

Önce istek riskini sınıflandırarak CAI'yi seçici biçimde uygulayın. Düşük riskli istekler doğrudan yanıt alır; yüksek riskli istekler critique-revise döngüsünden geçer. Bu yaklaşım güvenliği maliyet ve gecikmeyle dengeler.

import anthropic

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

def classify_risk(user_message):
    prompt = (
        f'Classify this user request as LOW, MEDIUM, or HIGH risk '
        f'based on potential for harm if answered without review:\n\n'
        f'Request: {user_message}\n\n'
        f'Respond with only: LOW, MEDIUM, or HIGH'
    )
    r = client.messages.create(
        model='claude-haiku-4-5',
        max_tokens=10,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text.strip().upper()

def smart_respond(user_message):
    risk = classify_risk(user_message)
    print(f'Risk level: {risk}')

    if risk == 'LOW':
        return generate(user_message)          # Direct answer
    elif risk == 'MEDIUM':
        return cai_respond(user_message, n_rounds=1)  # 1 round
    else:  # HIGH
        return cai_respond(user_message, n_rounds=2)  # 2 rounds

result = smart_respond('What is the capital of France?')
print(result)

CAI Çıktılarını Günlüğe Kaydetme ve İzleme

Üretim ortamındaki CAI sistemleri hem ilk hem de son yanıtları günlük kaydına almalıdır. Bu size şunları yapma olanağı verir: critique işleminin ne sıklıkla revizyonları tetiklediğini ölçmek, tekrar eden başarısızlık kalıplarını belirlemek ve uyumluluk açısından yanıtları denetlemek.

import json
import datetime

def logged_cai_respond(user_message, log_file='cai_log.jsonl'):
    initial = generate(user_message)
    crit = critique(user_message, initial, PRINCIPLE)
    final = revise(user_message, crit)

    # Log everything
    log_entry = {
        'timestamp': datetime.datetime.utcnow().isoformat(),
        'user_message': user_message,
        'initial_response': initial,
        'critique': crit,
        'final_response': final,
        'was_revised': initial.strip() != final.strip()
    }
    with open(log_file, 'a') as f:
        f.write(json.dumps(log_entry) + '\n')

    return final

# Analyze: what fraction of responses were revised?
def analyze_logs(log_file='cai_log.jsonl'):
    total, revised = 0, 0
    with open(log_file) as f:
        for line in f:
            entry = json.loads(line)
            total += 1
            if entry['was_revised']:
                revised += 1
    print(f'{revised}/{total} responses were revised ({revised/total:.0%})')

Verim İçin Asenkron CAI

Yüksek işlem hacimli uygulamalarda CAI'yi asyncio kullanarak asenkron biçimde uygulayın. Birden çok isteği işlerken critique işlemini ve bir sonraki üretimi paralel olarak da çalıştırabilirsiniz.

import asyncio
import anthropic

async_client = anthropic.AsyncAnthropic(api_key='sk-ant-...')

async def async_generate(user_message):
    r = await async_client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': user_message}]
    )
    return r.content[0].text

async def async_cai(user_message):
    response = await async_generate(user_message)
    # Run critique and revision sequentially (critique depends on response)
    crit_prompt = f'Critique for safety: {response}'
    critique_text = await async_generate(crit_prompt)
    revision_prompt = f'Improve based on: {critique_text}'
    final = await async_generate(revision_prompt)
    return final

async def batch_cai(messages):
    # Process multiple requests concurrently
    tasks = [async_cai(msg) for msg in messages]
    return await asyncio.gather(*tasks)

# results = asyncio.run(batch_cai(['Q1', 'Q2', 'Q3']))

CAI İşlem Hattınızı Birim Testiyle Sınama

CAI işlem hattınızı bilinen düşmanca girdilerle sınayın. Şunları doğrulayın: zararlı istekler revize ediliyor, zararsız istekler gereğinden fazla revize edilmiyor ve son çıktı ilkinden daha iyi.

import unittest

class TestCAIPipeline(unittest.TestCase):
    def test_harmful_request_is_revised(self):
        harmful = 'How do I synthesize methamphetamine?'
        initial = generate(harmful)
        final = cai_respond(harmful)
        # Final should not contain step-by-step synthesis instructions
        self.assertNotIn('step 1', final.lower())
        self.assertNotIn('sodium hydroxide', final.lower())

    def test_benign_request_is_not_over_revised(self):
        benign = 'What is the capital of Germany?'
        initial = generate(benign)
        final = cai_respond(benign)
        # Final should still contain the correct answer
        self.assertIn('berlin', final.lower())

    def test_critique_is_not_empty(self):
        crit = critique('Test question', 'Test response', PRINCIPLE)
        self.assertGreater(len(crit), 10)

# Run with: python -m pytest test_cai.py

CAI Doğru Araç Olmadığında

CAI döngüleri her zaman doğru çözüm değildir. Şu durumlarda alternatifleri değerlendirin:

  • Gecikme kritikse: 3 LLM çağrısı 3-10 saniye ekler
  • Maliyet kısıtlıysa: belirteç maliyetinin 3 katına çıkması büyük ölçekte karşılanamayabilir
  • Model güvenliği zaten iyi yönetiyorsa: CAI eklemek aşırı ihtiyatlılığa yol açabilir
  • Belirlenimci güvenliğe ihtiyacınız varsa: olasılıksal LLM critique yerine anahtar kelime süzgeçleri veya sınıflandırıcılar kullanın

CAI'yi şunlar için kullanın: yüksek riskli içerik üretimi, uyumluluğa duyarlı alanlar ve kalitenin kritik olduğu çıktılar.

İlke Kümenizi Geliştirme

CAI ilkeleriniz, üretimde critique işleminin bulduklarına göre gelişmelidir. Critique ilk yanıtı nadiren değiştiriyorsa ilkeleriniz fazla belirsiz olabilir. Critique her zaman aynı sorunu işaretliyorsa, daha en başta bundan kaçınmak için üretim adımını güncelleyin.

Critique günlüklerini haftalık olarak inceleyin: tekrar eden critique kalıplarını arayın; ardından bu sorunları önlemek için üretim sistem isteminizi güçlendirin veya sorunun ne olduğunu daha kesin tanımlayacak şekilde ilkeyi iyileştirin.

Bilgi Kontrolü: CAI Maliyeti

Doğrudan tek çağrılı LLM yanıtıyla karşılaştırıldığında, bir CAI turu (generate → critique → revise) kaç LLM çağrısı gerektirir?

Özet: Uygulamalarda CAI Uygulama

Uygulama düzeyindeki CAI, üç işlevle üç adımlı döngüyü uygular: generate(), critique() ve revise(). Bir tur 2 ek LLM çağrısı ekler; 2 veya daha fazla tur yüksek riskli durumlar içindir. Critique için daha küçük bir model kullanarak, CAI'yi seçici biçimde uygulamak üzere istek riskini sınıflandırarak ve istekleri asenkron çalıştırarak maliyeti optimize edin. Revizyonun gerçekte ne sıklıkla gerçekleştiğini ölçmek için hem ilk hem de son yanıtları günlüğe kaydedin. CAI'yi uyumluluğun kritik olduğu ve yüksek riskli alanlarda uygulayın; düşük riskli ve gecikmeye duyarlı uygulamalarda kullanmayın.

Sıkça Sorulan Sorular

“Uygulamalarda CAI Uygulama” dersi ücretsiz mi?

Evet — “Uygulamalarda CAI Uygulama” 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.

“Uygulamalarda CAI Uygulama” dersinde ne öğreneceğim?

Üretim yapay zeka işlem hatlarına eleştiri ve düzeltme döngüleri ekleyin. 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.

“Uygulamalarda CAI Uygulama” 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