Rol verme (role prompting), modele ne yapacağını söylemeden önce kim olacağını söylemektir: "Sabırlı bir matematik öğretmenisin", "Junior yazılımcı pozisyonu için işe alım yöneticisi gibi davran". Rol, cevabın kimin için yazıldığını, hangi kelimeleri kullandığını, ne kadar derine indiğini ve neye dikkat ettiğini değiştirir. Modele zaten sahip olmadığı bir bilgiyi vermez: rol bir cevabı yönlendirmenin yoludur, bilgi eklemenin değil.
Bir rol neyi değiştirir
Rol, birkaç şeyi birden belirlemenin kısa bir yoludur:
- Okur kitlesi ve kelime dağarcığı. Yeni başlayanlara öğreten biri terimleri tanımlar ve benzetmeler kullanır; meslektaşları için yazan kıdemli bir mühendis ikisini de atlar.
- Standart. Titiz bir editör, dost canlısı bir okurun geçeceği bir cümleyi işaretler. Neyin sorun sayılacağına rol karar verir.
- Odak. Bir güvenlik inceleyicisi ve bir performans inceleyicisi aynı fonksiyonu okur ve farklı şeyler fark eder.
- Davranış. Bir mülakatçı soru sorar ve bekler; bir öğretmene cevap yerine ipucu vermesi söylenebilir.
Aşağıdaki üç sekme arasında geç. Görev hepsinde aynı; sadece rol değişiyor.
API (Application Programming Interface, uygulama programlama arayüzü), bir yazılımın başka bir yazılımla konuşmasını sağlayan kurallar bütünüdür. Hangi istekleri yapabileceğini, bunları nasıl yapacağını ve karşılığında ne alacağını tanımlar. Örneğin bir hava durumu uygulaması tahmini almak için bir hava durumu servisinin API'sini kullanır. API'ler geliştiricilerin diğer sistemlerin özelliklerini ve verilerini, o sistemlerin içeride nasıl çalıştığını bilmeden kullanmasını sağlar.
"Sen bir uzmansın" cevabı neredeyse hiç değiştirmedi: aynı genel şekli korudu ve jargon ekledi, çünkü "uzman" kimin okuduğu hakkında hiçbir şey söylemiyor. Belirgin rol kelime dağarcığını, örneği ve referans noktasını değiştirdi, çünkü bir okur kitlesini ve o kitlenin zaten bildiği bir şeyi adlandırdı.
Bir rol neyi değiştirmez
Rol bilgi ekleyemez. "Dünya çapında bir vergi avukatısın" modele bu yılın vergi kurallarını hiç öğrenmediyse vermez ve kendinden emin bir persona yanlış bir cevabı daha az değil, daha otoriter gösterebilir. Doğruluğu artırmak için bir uzman etiketine güvenme. Doğruluk önemliyse modele ihtiyaç duyduğu bilgileri ya da belgeleri ver ve emin olmadığında bunu söylemesini iste; işe yarayan promptlar için yapay zekâ halüsinasyonu sayfasına bak.
Aynısı gerçek kişiler için de geçerli. "Ünlü bir programcı nasıl cevap verirdiyse öyle cevap ver" sana o kişinin kamuya açık üslubunun bir taklidini getirir. Model onların özel görüşlerini bilmez, yani yeni bir soru hakkında onların sesiyle söylediği her şey uydurmadır.
Belirgin roller yaz
İşe yarar bir rol genellikle dört şeyi adlandırır: iş, okur kitlesi, hedef ve standart. Karşılaştır:
- "Sen bir yazarsın" şuna dönüşür: "Yeni başlayanların adımları takip etmesine yardım etmeyen her cümleyi silen, teknik bir blogda çalışan bir editörsün."
- "Sen bir programcısın" şuna dönüşür: "Junior bir iş arkadaşının pull request'ini inceleyen kıdemli bir Python geliştiricisisin. Önce hataları, sonra okunabilirliği belirt ve her noktayı ondan öğrenebileceği şekilde açıkla." Tam inceleme promptları için kod inceleme promptları sayfasına bak.
- "Öğretmen gibi davran" şuna dönüşür: "15 yaşında birini sınava hazırlayan bir kimya öğretmeni gibi davran. Cevap vermek yerine bana sorular sor ve birini yanlış yaptığımda bir ipucu ver."
Rol bir promptun bir parçasıdır, tamamı değil. Net bir görev, modelin tahmin edemeyeceği bağlam ve istediğin cevabın şekliyle birlikte çalışır; diğer parçaları prompt yazma rehberi anlatır. Rol ve görev farklı yönlere çekerse, örneğin "titiz bir inceleyiciden" "yazarı rahatlatması" istenirse, yanıt ikisini birden yapmaya çalışır ve çoğu zaman ikisini de iyi yapamaz.
Pratik için "gibi davran" promptları
"... gibi davran" kalıbı, modelin bir iş mülakatçısını, bir dil partnerini ya da bir Linux terminalini oynadığı paylaşılan prompt koleksiyonlarıyla popüler oldu. Rol yapma, prova etmek istediğin her şey için işe yarar: mülakatlar, zor bir konuşma, bir sunum, yeni bir dil.
İşe yarayan bir rol yapma ile dağılan bir rol yapma arasındaki fark kurallardır. Role her turda ne yapacağını, ne zaman seni bekleyeceğini ve ne zaman duracağını söyle. Bunlar olmadan model bütün oturumu tek bir yanıtta yürütebilir: aynı anda beş soru ya da ardından örnek bir cevap gelen bir soru.
Harika, başlayalım. Temel bir soruyla başlıyorum.
Soru 1: JavaScript'te let, const ve var arasındaki fark nedir?
Acele etme ve gerçek bir mülakattaymış gibi cevap ver.
Kendi mülakatını prova etmek için pozisyonu ve konuyu değiştir. Modeli her turda tek soruda tutan satır "cevabımı bekle" satırıdır; "beş sorudan sonra dur" ise oturuma bir son ve bir özet verir.
Rol nereye yazılır
Her yanıtta olmasını istediğin bir rol sistem promptuna aittir: API'de system alanı, sohbet uygulamalarında özel talimatlar ve proje talimatları. Orada tekrarlanmadan bütün sohbete uygulanır. Tek seferlik bir istek için rolü mesajının ilk cümlesine, görevden önce koy.
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
message = client.messages.create(
model=MODEL,
max_tokens=500,
system="You are a patient programming tutor for adults in their first month of coding. Give hints before full solutions.",
messages=[{"role": "user", "content": "Why does my loop print the last item twice?"}],
)
print(message.content[0].text)
Roller sohbetin ortasında da çalışır. Model bir taslak yazdıktan sonra ondan "şimdi yukarıdaki taslağın şüpheci bir inceleyicisi gibi davran ve en zayıf üç noktasını listele" diye istemek, ilk turun üstünden geçtiği sorunları çoğu zaman ortaya çıkarır, çünkü yeni rol modelin neye baktığını değiştirir.
Sıkça Sorulan Sorular
Rol verme (role prompting) nedir?
Rol verme, modele ne yapacağını söylemeden önce kim olacağını söylemektir; örneğin "12 yaşındakilere öğreten sabırlı bir matematik öğretmenisin" ya da "Junior yazılımcı pozisyonu için mülakat yapan biri gibi davran." Rol, yanıtın okur kitlesini, kelime dağarcığını, derinliğini ve odağını şekillendirir; bir sohbette modelin davranışını da değiştirebilir, örneğin soruları cevaplamak yerine soru sormasını sağlar.
Yapay zekâya uzman olduğunu söylemek onu daha doğru yapar mı?
Buna güvenme. "Dünya çapında bir uzmansın" gibi bir etiket modele bilmediği bir bilgiyi vermez ve yanlış bir cevabı daha kendinden emin gösterebilir. Doğruluğu artırmak için modele ihtiyaç duyduğu bilgileri ya da kaynakları ver, emin olmadığında bunu söylemesini iste ve sonucu kontrol et.
Rolü nereye koymalıyım?
Bütün sohbet boyunca sürmesi gereken bir rol için onu sistem promptuna koy: API'de system alanı, sohbet uygulamalarında özel talimatlar ve proje talimatları. Tek seferlik bir istek için mesajının ilk cümlesine, görevden önce koy.
"Gibi davran" promptları nedir?
"... gibi davran" (İngilizcede "Act as") ile başlayan ve modele oynayacağı bir rol veren promptlardır: bir mülakatçı, bir dil pratiği partneri, bir Linux terminali, bir tur rehberi. Paylaşılan prompt koleksiyonları bu kalıbı popüler yaptı. Rolün her turda ne yapacağını ve ne zaman duracağını da söylediklerinde en iyi çalışırlar.
İyi bir rol promptunu ne iyi yapar?
Belirginlik. İşi, okur kitlesini, hedefi ve standardı adlandır: "junior bir iş arkadaşının pull request'ini inceleyen kıdemli bir Python geliştiricisi, önce hatalar, sonra okunabilirlik" modele "bir uzman" ifadesinden çok daha fazla malzeme verir. Sonra promptun geri kalanını her zamanki gibi yaz: görev, bağlam ve biçim.