Multi-turn conversation'lar
Multi-Turn conversations
Bu modül için tahmini süre: 9 dakika
Genel bakış
Anthropic API ve Claude ile çalışırken anlamanız gereken kritik bir kavram vardır: Claude konuşma geçmişinizi (conversation history) saklamaz. Yaptığınız her request tamamen bağımsızdır ve önceki etkileşimlere dair hiçbir hafızası yoktur.

Bu, Claude’un önceki mesajlardaki context’i hatırladığı multi-turn bir konuşma kurmak istiyorsanız, conversation state’i kendinizin yönetmeniz gerektiği anlamına gelir.
Stateless konuşmaların problemi
Diyelim ki Claude’a “What is quantum computing?” diye sordunuz ve iyi bir yanıt aldınız. Sonra “Write another sentence” diye devam ettiniz — Claude neden bahsettiğinizi anlayamaz. Önceki quantum computing tartışmasına dair hafızası olmadığı için tamamen rastgele bir konu hakkında bir cümle yazacaktır.

Multi-turn conversation nasıl çalışır
Conversation context’ini korumak için iki şeyi yapmalısınız:
- Tüm mesajların listesini kodunuzda manuel olarak tutmak
- Her request ile birlikte tam message history’yi göndermek

İşte gerçekten işe yarayan akış:
- İlk user message’ı Claude’a gönderin
- Claude’un response’unu alın ve assistant message olarak message list’e ekleyin
- Takip sorunuzu yeni bir user message olarak ekleyin
- Tüm conversation history’yi Claude’a gönderin

Helper fonksiyonları kurmak
Conversation yönetimini kolaylaştırmak için üç helper fonksiyon oluşturabilirsiniz:
def add_user_message(messages, text):
user_message = {"role": "user", "content": text}
messages.append(user_message)
def add_assistant_message(messages, text):
assistant_message = {"role": "assistant", "content": text}
messages.append(assistant_message)
def chat(messages):
message = client.messages.create(
model=model,
max_tokens=1000,
messages=messages,
)
return message.content[0].text
Her şeyi bir araya getirmek
Bu fonksiyonları kullanarak bir konuşmayı şöyle sürdürürsünüz:
# Start with an empty message list
messages = []
# Add the initial user question
add_user_message(messages, "Define quantum computing in one sentence")
# Get Claude's response
answer = chat(messages)
# Add Claude's response to the conversation history
add_assistant_message(messages, answer)
# Add a follow-up question
add_user_message(messages, "Write another sentence")
# Get the follow-up response with full context
final_answer = chat(messages)
Şimdi Claude, “Write another sentence” ifadesinin quantum computing tanımını genişletmeye atıfta bulunduğunu anlayacaktır; çünkü tam conversation context’ini sağladınız.
Bu helper fonksiyonları Claude ile çalışırken sürekli işinize yarayacak ve birden çok turda anlamlı konuşmalar sürdürebilen uygulamalar kurmayı çok daha kolaylaştıracak.
Temel çıkarımlar
- Claude tamamen stateless’tır; her request bağımsız bir snapshot’tır
- Context’i korumak istiyorsanız message list’i siz tutmalı ve her request’te tamamını göndermelisiniz
- Pattern: user message ekle → chat çağır → response’u assistant message olarak listeye ekle → tekrar
add_user_message,add_assistant_messagevechathelper’ları kurs boyunca tekrar tekrar kullanılacak- Conversation uzadıkça her request daha pahalı olur; token kullanımını izlemek için bu yapıyı bilinçli yönetin