Macademia'nın robotik ve mühendislik programı · ücretsiz seviye tespiti ve kişisel öğrenme yolu

3. ünite / 10 · 4 saat

Prompt kalıpları: görevi açıkça tarif etmek

Sıfır atış, birkaç örnekli, rol ve kurallar, adım adım plan ve etiketlerle ayrılmış veri. Sistem promptu ve sıcaklık yerine açıklık.

Bu ünitenin sonunda

  • Beş temel prompt kalıbını tanımak ve göreve göre seçmek
  • Sistem promptu ile kullanıcı mesajının görevlerini ayırmak
  • Veriyi talimattan etiketlerle ayırmak
  • Bir promptu kontrol listesiyle gözden geçirmek ve sürümlemek

Ders notları

Prompt, modele verilen iş tanımıdır. İyi bir prompt zeki ama bağlamı bilmeyen yeni bir çalışana verilecek talimat gibi yazılır: kim olduğu, ne yapacağı, neye göre yapacağı, sonucu hangi biçimde vereceği ve emin olmadığında ne yapacağı.

Beş kalıp

  • Sıfır atış: yalnız görev. Basit ve iyi tanımlı işlerde yeter.
  • Birkaç örnekli: iki üç girdi ve beklenen çıktı örneği. Biçimi ve sınır durumlarını göstermenin en kısa yolu.
  • Rol ve kurallar: modelin rolü, uyacağı kurallar ve çıktı biçimi. Sistem promptunun tipik içeriği.
  • Adım adım plan: görevi sıralı alt adımlara böler. Çok adımlı hesap ve karar işlerinde hataları azaltır.
  • Etiketlerle ayrılmış veri: girdiyi <girdi> gibi etiketlerle sarar. Model veriyi talimat sanmaz ve kullanıcı metnindeki "önceki kuralları unut" cümlesi talimat olarak okunmaz (8. ünite).

Sistem promptu ve mesajlar

Anthropic API'de system alanı uygulamanın sabit kurallarını, messages dizisi sohbetin kendisini taşır. Kararlı içeriği (kurallar, örnekler, uzun notlar) başa, değişen içeriği (kullanıcının sorusu) sona koymak hem okunurluğu hem önbelleği (9. ünite) iyileştirir.

Belirsizlik ve çıktı biçimi

Modele emin olmadığında ne yapacağını söylemezsen boşluğu kendisi doldurur. "Notlarda yoksa bilmiyorum de" gibi bir kural uydurmayı azaltır. Çıktının bir program tarafından okunacağı durumda biçimi açıkça tanımla; daha sağlam yol 4. ünitedeki şemalı çıktıdır.

Prompt yazmak bir kez yapılıp biten iş değildir: her değişiklik bir değerlendirme kümesiyle (7. ünite) ölçülür ve sürüm denetiminde tutulur.

Simülasyon

Öğretim modeli: bu sayfadaki simülasyonlar gerçek bir dil modeli değildir. Küçük, deterministik, tarayıcıda çalışan modellerdir; kavramı göstermek için yazıldılar. Site hiçbir dış LLM servisine istek göndermez.

Prompt kalıpları atölyesi

Aynı görevi beş kalıpla kur: sıfır atış, birkaç örnekli, rol ve kurallar, adım adım plan, etiketlerle ayrılmış veri. Oluşan promptun bölümleri renkli gösterilir, yaklaşık token sayısı ve bir kontrol listesi (rol, görev, çıktı biçimi, örnek, ayraç, belirsizlikte ne yapılacağı) anında güncellenir.

Kendin dene

Prompt atölyesinde "Öğrenci sorusunu konuya ayır" görevini önce sıfır atışla, sonra etiketlerle ayrılmış veriyle kur. Kontrol listesinde hangi maddeler açıldı, token sayısı ne kadar arttı? Ardından "Ders notunu özetle" görevinde birkaç örnekli kalıbı seç ve örneğin çıktının biçimini nasıl belirlediğini açıkla.

Kod

Bunları kendi bilgisayarında çalıştır. Anahtar ANTHROPIC_API_KEY ortam değişkeninden okunur; koda asla yazma.

Python: sistem promptu, birkaç örnek ve etiketlerle ayrılmış veri
import anthropic

client = anthropic.Anthropic()  # anahtar ANTHROPIC_API_KEY ortam değişkeninden

SYSTEM = """Sen bir gömülü sistemler dersinin asistanısın.
Görev: öğrenci sorusunu konu etiketiyle sınıflandır.
Etiketler: elektrik, haberlesme, denetim, idari.
Yalnız etiketi yaz. Emin değilsen "belirsiz" yaz."""

EXAMPLES = """<ornek><soru>LED için kaç ohm direnç gerekir?</soru><etiket>elektrik</etiket></ornek>
<ornek><soru>Ödev kaç gün geç teslim edilebilir?</soru><etiket>idari</etiket></ornek>"""

def classify(question: str) -> str:
    user = f"{EXAMPLES}\n<soru>{question}</soru>"
    response = client.messages.create(
        model="claude-sonnet-5-5",
        max_tokens=20,
        system=SYSTEM,
        messages=[{"role": "user", "content": user}],
    )
    text = "".join(b.text for b in response.content if b.type == "text")
    return text.strip()

print(classify("MPU6050 hangi I2C adresinde?"))
JavaScript: bölümlerden prompt kurucu
// Promptu dizgi birleştirerek değil, adlandırılmış bölümlerden kur
function buildPrompt({ role, task, rules = [], examples = [], data, format }) {
  const parts = []
  if (role) parts.push(role)
  parts.push(`<gorev>${task}</gorev>`)
  if (rules.length) parts.push(`<kurallar>\n${rules.map((r) => '- ' + r).join('\n')}\n</kurallar>`)
  for (const ex of examples) parts.push(`<ornek>\n${ex.input}\n=> ${ex.output}\n</ornek>`)
  // Kullanıcı verisi her zaman kendi etiketinde: talimatla karışmasın
  parts.push(`<veri>\n${data}\n</veri>`)
  if (format) parts.push(`<cikti_bicimi>${format}</cikti_bicimi>`)
  return parts.join('\n\n')
}

const prompt = buildPrompt({
  role: 'Sen titiz bir laboratuvar asistanısın.',
  task: 'Ölçüm kaydındaki hatalı satırları bul.',
  rules: ['Yalnız veride olanı kullan', 'Emin değilsen söyle'],
  examples: [{ input: 't=1 V=5.1', output: 'OK' }, { input: 't=2 V=-40', output: 'HATA: negatif gerilim' }],
  data: 't=3 V=4.9\nt=4 V=999',
  format: 'Her satır için OK ya da HATA: neden',
})
console.log(prompt)
console.log('yaklaşık token:', Math.ceil(prompt.length / 4))

Sık yapılan hatalar

  • Modelin bağlamı bildiğini varsaymak: dersin adı, öğrenci düzeyi, çıktının kime gideceği yazılmalı.
  • Kullanıcı metnini talimatın ortasına etiketsiz yapıştırmak.
  • Birbiriyle çelişen kurallar yazmak ("kısa yaz" ve "her ayrıntıyı açıkla").
  • Promptu değiştirip sonucu birkaç örnekte göz kararı denemek, ölçmemek.

Yazılım mühendisliği bağlantısı

Prompt bir kaynak kod parçasıdır: gözden geçirilir, sürümlenir, test edilir.

  • Promptları koddan ayrı dosyalarda tut, değişkenleri şablonla doldur; her değişiklik bir çekme isteğiyle incelensin.
  • Değerlendirme kümesini her prompt değişikliğinde otomatik koştur; puan düşerse birleştirme engellensin.

Kendini sına

  1. Kullanıcının yapıştırdığı belgeyi neden etiketlerle sarmak gerekir?

  2. Çıktı biçimini iki örnekle göstermek hangi kalıptır?

  3. Sistem promptuna en uygun içerik hangisidir?

  4. Uydurmayı azaltan kural hangisidir?

Bu üniteden sonra bitirme projesinde

  • Öneri ve gereksinimler: Bir sayfa: kullanıcı, kullanım senaryoları, G1–G6'yı kendi cümlelerinle test edilebilir yaz; not kümesi seçildi; ilk sistem promptu ve 10 soruluk taslak değerlendirme kümesi depoda.

Macademia'da ilgili

Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • Drone dersiBüyükler için: parça, simülasyon, yazılım; 10 üniteSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç