Modül 2 · Accessing Claude with the API · ⏱ 5 dakika

Structured data exercise

Structured data exercise

Orijinal İngilizce video — Anthropic Academy / JWPlayer. Aşağıdaki Türkçe metin dersi birebir özetler.

Bu modül için tahmini süre: 5 dakika

Genel bakış

Bu alıştırmada bir önceki derste öğrenilen assistant message prefilling + stop sequences tekniğini bir senaryoya uygulayacağız. Hedef: chat() helper’ımızı stop_sequences parametresini de kabul edecek şekilde genişletmek ve sonra Claude’tan açıklama olmadan tek bir Python fonksiyonu üretmesini sağlamak.

Egzersiz

İki adım var:

  1. chat() fonksiyonunuza opsiyonel bir stop_sequences parametresi ekleyin. Sadece dolu liste geldiğinde params["stop_sequences"] olarak set edilsin.
  2. Mesaj listesine prefilled bir assistant mesajı (örn. ```python) ekleyin ve Claude’a bir Python fonksiyonu yazdırın. stop_sequences=["\“”]` parametresi ile generation’ı kapanış işaretinde durdurun.

Örnek çözüm

def chat(messages, system=None, temperature=1.0, stop_sequences=[]):
    params = {
        "model": model,
        "max_tokens": 1000,
        "messages": messages,
        "temperature": temperature,
    }
    if system:
        params["system"] = system
    if stop_sequences:
        params["stop_sequences"] = stop_sequences
    
    response = client.messages.create(**params)
    return response.content[0].text

messages = []
add_user_message(messages, "Write a Python function that checks a string for duplicate characters")
add_assistant_message(messages, "```python")

answer = chat(messages, stop_sequences=["```"])
print(answer)

Çıktı sadece fonksiyonun gövdesi olur — başında açıklama, sonunda yorum yoktur. answer’ı doğrudan bir .py dosyasına yazabilir veya başka bir pipeline’a feed edebilirsiniz.

Temel çıkarımlar

  • chat() helper’ına opsiyonel stop_sequences parametresi eklemek tüm structured-output senaryolarında işinize yarayacak
  • Prefilled assistant message (örn. ```python) Claude’u o code block’un içinde başlamış gibi davranmaya zorlar
  • ``` stop sequence’i, Claude block’u kapatmaya çalıştığında üretimi anında keser; sonuçta sadece kodu alırsınız
  • Aynı pattern JSON, regex, CSV gibi farklı formatlar için de geçerli — sadece prefill etiketini değiştirin
  • Bu teknik, AI çıktısını başka bir programa veya parser’a doğrudan beslemek istediğinizde kritik