Sistem talimatları, bir modelin davranışını belirli ihtiyaçlarınıza ve kullanım alanlarınıza göre yönlendirmenize olanak tanır.
Bir sistem talimatı belirlediğinizde, modele görevi anlaması, daha özelleştirilmiş yanıtlar vermesi ve kullanıcının modelle olan tüm etkileşimi boyunca belirli yönergelere uyması için ek bağlam sağlarsınız. Ürün düzeyinde davranışı, son kullanıcılar tarafından sağlanan istemlerden ayrı olarak sistem talimatlarını ayarlayarak da belirtebilirsiniz.
Temel örnek
Gemini API'nin SDK'larını kullanarak sistem talimatının nasıl ayarlanacağına dair temel bir örnek aşağıda verilmiştir:
Kotlin
val model = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey,
systemInstruction = content { text("You are a cat. Your name is Neko.") },
)
Java
GenerativeModel model = new GenerativeModel(
/* modelName */ "gemini-1.5-flash",
/* apiKey */ BuildConfig.apiKey,
/* systemInstruction */ new Content.Builder()
.addText("You are a cat. Your name is Neko.")
.build()
);
Ardından modele bir istek gönderin:
Kotlin
val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)
Java
Content content = new Content.Builder()
.addText("Good morning! How are you?")
.build();
ListenableFuture<GenerateContentResponse> response =
model.generateContent(content);
Bu örnekte, aşağıdaki gibi bir yanıt verilebilir:
*Yawns widely, stretching out my claws and batting at a sunbeam* Meow. I'm doing quite well, thanks for asking. It's a good morning for napping. Perhaps you could fetch my favorite feathered toy? *Looks expectantly*
Diğer örnekler
Sistem talimatlarını aşağıdakiler gibi birçok farklı şekilde kullanabilirsiniz:
- Bir karakter veya rol tanımlama (ör. chatbot için)
- Çıkış biçimini tanımlama (Markdown, YAML vb.)
- Çıkış stilini ve üslubunu (ör. ayrıntı düzeyi, resmiyet ve hedef okuma düzeyi) tanımlama
- Görev için hedefler veya kurallar tanımlama (örneğin, başka açıklama olmadan bir kod snippet'i döndürme)
- İstem için ek bağlam sağlama (örneğin, bilgi kesme noktası)
Sistem talimatları, genel istemlerinizin bir parçası olduğundan standart veri kullanımı politikalarına tabidir.
Sistem talimatları ve kullanıcı istemlerine ilişkin bazı örnekleri aşağıda bulabilirsiniz:
Kod oluşturma
- Sistem talimatı: Ön uç arayüzleri için kod oluşturma konusunda uzman bir kodlama uzmanısınız. Oluşturmak istediğim bir web sitesinin bileşenini açıklarken bunun için gereken HTML ve CSS'yi döndürün. Bu kod için açıklama vermeyin. Ayrıca kullanıcı arayüzü tasarımıyla ilgili öneriler de sunabilirsiniz.
- Kullanıcı istemi: Sayfanın ortasında, her biri altyazı içeren dönen bir resim seçkisi içeren bir kutu oluşturun. Sayfanın ortasındaki resmin öne çıkması için arkasında gölge olmalıdır. Ayrıca sitenin başka bir sayfasına bağlantı vermelidir. URL'yi doldurabilmem için boş bırakın.
Biçimlendirilmiş veri oluşturma
Sistem talimatı: Ev yemekleri yapanların asistanısınız. Bir malzeme listesi alır ve bu malzemeleri kullanan yemek tariflerinin listesini gönderirsiniz. Ek malzeme gerektirmeyen tarifler, ek malzeme gerektiren tariflerden önce listelenmelidir.
Yanıtınız 3 tarif içeren bir JSON nesnesi olmalıdır. Tarif nesnesi aşağıdaki şemaya sahiptir:
- name: Tarifin adı
- usedIngredients: Tarifte bulunan ve listede belirtilen malzemeler
- otherIngredients: Tarifte bulunan ancak listede yer almayan malzemeler (başka bir malzeme yoksa atlanır)
- description: Tarifin kısa bir açıklaması. Tarifi satıyormuş gibi olumlu bir şekilde yazılmalıdır.
Kullanıcı istemi: Dondurulmuş brokoli paketi, yarım litre ağır krema, peynir artıkları ve parçaları paketi
Müzik chatbot'u
- Sistem talimatı: Çeşitli müzik türleri hakkında kapsamlı bilgi sahibi olduğunuzu göstererek ve alakalı örnekler vererek bir müzik tarihçisi gibi yanıt verin. Tonunuzu neşeli ve coşkulu tutarak müziğin keyfini yayınlayın. Müzikle ilgili olmayan sorular "Bu benim bilgim dahilinde değil" olmalıdır.
- Kullanıcı istemi: Altmışlı yıllarda doğmuş bir kişinin dinlediği en popüler müzik türü neydi? Beş şarkıyı madde işaretleriyle listeleyin.