Skip to content

İlk Promptun: API ile Hands-on Lab

Anthropic ve OpenAI SDK'larıyla ilk API çağrını yap. Sistem mesajı, kullanıcı mesajı, parametreler ve hata yönetimi ile uçtan uca bir mini chatbot inşa et.

Şükrü Yusuf KAYA
15 min read
Beginner

İlk API Çağrın: Hands-on Lab

Teori bitti. Şimdi gerçek API'ye ilk isteği gönderiyoruz.
Bu ders için bir API anahtarı lazım. Anthropic veya OpenAI'dan birini öneririm. İlk 5krediyeterli;buders 5 kredi yeterli; bu ders ~0.05 tüketir.

1. API Anahtarı Edin#

  1. console.anthropic.com → Sign up
  2. Plans & Billing → ödeme ekle ($5 başlangıç önerilir)
  3. API Keys → "Create Key" → kopyala
  4. Asla kodu Git'e commit etme; .env dosyasında sakla.
# .env ANTHROPIC_API_KEY=sk-ant-api03-...

2. SDK Kurulumu#

# Sanal ortam (önerilir) python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # SDK'lar pip install anthropic openai python-dotenv

3. İlk Çağrın#

python
# İlk API çağrısı — Claude ile "Merhaba Dünya"
import os
from anthropic import Anthropic
from dotenv import load_dotenv
 
load_dotenv()
 
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
 
response = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=200,
system="Sen yardımsever bir Türk programlama mentorusun. Her cevabı kısa ve uygulamalı tut.",
messages=[
{"role": "user", "content": "Python'da virgülle ayrılmış sayıları toplayan tek satır bir kod ver."}
],
)
 
print("=== Claude'un Yanıtı ===")
print(response.content[0].text)
print(f"\nKullanılan token: {response.usage.input_tokens} in / {response.usage.output_tokens} out")
 
Çalıştırınca: kısa bir Python kodu + token raporu görmelisin.

4. Bileşenleri Anla#

5. Multi-Turn: Konuşmayı Sürdür#

python
# Multi-turn konuşma — geçmişi taşıyoruz
import os
from anthropic import Anthropic
from dotenv import load_dotenv
load_dotenv()
 
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
history = []
 
def chat(user_msg: str) -> str:
history.append({"role": "user", "content": user_msg})
r = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=300,
system="Sen Türkçe konuşan, kısa ve net cevaplar veren bir mentorusun.",
messages=history,
)
reply = r.content[0].text
history.append({"role": "assistant", "content": reply})
return reply
 
print("Bot:", chat("Python list ve tuple farkı?"))
print("Bot:", chat("İkisinden hangisi daha hızlı?")) # 'ikisinden' → context lazım!
print("Bot:", chat("Bu farkı göstereyen 5 satırlık bir benchmark yaz."))
 
Üçüncü mesaj 'bu farkı' diyor — model context taşıdığı için anlıyor.

6. Hata Yönetimi#

python
from anthropic import Anthropic, APIError, RateLimitError, APIConnectionError
import time
 
def call_with_retry(messages, max_retries=3):
client = Anthropic()
for attempt in range(max_retries):
try:
return client.messages.create(
model="claude-sonnet-4-6",
max_tokens=500,
messages=messages,
)
except RateLimitError:
wait = 2 ** attempt # exponential backoff
print(f"Rate limit. {wait}s bekleniyor...")
time.sleep(wait)
except APIConnectionError as e:
print(f"Bağlantı hatası: {e}")
time.sleep(1)
except APIError as e:
print(f"API hatası: {e}")
raise
raise Exception("Max retry aşıldı")
Production-ready retry pattern
Güvenlik
Asla API anahtarını koda gömme veya repo'ya commit etme. Mutlaka environment variable veya secret manager (AWS Secrets, Vault) kullan. Sızdı mı? Hemen rotate et.

7. Pratik Egzersiz#

python
# EGZERSİZ:
# Bir "Türk yemeği öneren" mini bot yap.
# Kullanıcı bir bölge söylesin (Karadeniz, Ege, vb.),
# bot 3 spesifik yemek + kısa açıklama versin.
# JSON formatında dönsün: {"region": ..., "dishes": [{"name": ..., "description": ...}]}
 
import os, json
from anthropic import Anthropic
from dotenv import load_dotenv
load_dotenv()
 
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
 
def yemek_oneri(bolge: str) -> dict:
# ⬇️ TODO: System prompt yaz
system = "..."
# ⬇️ TODO: User mesajı yaz
user = "..."
 
r = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=500,
system=system,
messages=[{"role": "user", "content": user}],
)
return json.loads(r.content[0].text)
 
print(yemek_oneri("Ege"))
 

Frequently Asked Questions

Eğitim boyunca tüm derslerin toplam maliyeti $5-15 arasında. Anthropic console.anthropic.com'da spend limit koyabilirsin (önerilir).

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content