Sistem talimatları

Sistem talimatları, kullanıcıların modelin davranışını özel ihtiyaçlarına ve kullanım alanlarına göre yönlendirmesini sağlar. Bir sistem talimatı belirlediğinizde, modele görevi anlaması, daha özelleştirilmiş yanıtlar sağlaması ve modelle tam kullanıcı etkileşimi boyunca belirli yönergelere uyması için modele ek bağlam sağlarsınız. Geliştiriciler için ürün düzeyindeki davranış, son kullanıcıların sağladığı istemlerden ayrı olarak sistem talimatlarında belirtilebilir.

Sistem talimatlarını aşağıdakiler gibi birçok şekilde kullanabilirsiniz:

  • Bir karakteri veya rolü tanımlama (örneğin bir chatbot için)
  • Çıkış biçimini tanımlama (Markdown, YAML vb.)
  • Çıktı stilini ve tonunu tanımlama (ör. ayrıntı düzeyi, resmiyet ve hedef okuma seviyesi)
  • Görev için hedefler veya kurallar tanımlama (örneğin, daha fazla açıklama yapmadan bir kod snippet'i döndürme)
  • İstem için ek bağlam sağlama (örneğin, bilgi sınırı)

Bir sistem talimatı ayarlandığında, isteğin tamamına uygulanır. Birden çok kullanıcı ile çalışır ve isteme dahil edildiğinde model dönüşleri vardır. Sistem talimatları, genel istemlerinizin bir parçasıdır ve bu nedenle standart veri kullanım politikalarına tabidir.

Örnekler

Gemini API'nin SDK'larını kullanarak sistem talimatının nasıl ayarlanacağına dair temel bir örneği burada bulabilirsiniz:

Python

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

Go

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Web

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart (Flutter)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Swift

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Android

Kotlin:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java:

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* generationConfig (optional) */ null,
  /* safetySettings (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* toolsConfig (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
)

Aşağıda, modelin beklenen davranışını tanımlayan sistem istemi örnekleri verilmiştir.

Kod oluşturma

  • Sistem: Kullanıcı arabirimi arayüzleri için kod oluşturma konusunda uzmanlaşmış bir kodlama uzmanısınız. Oluşturmak istediğim bir web sitesinin bileşenini tanımlarken, lütfen bunun için gerekli olan HTML ve CSS'yi döndürün. Bu kod için bir açıklama vermeyin. Ayrıca, bazı kullanıcı arayüzü tasarım önerileri de sunun.
  • Kullanıcı: Sayfanın ortasında, her biri bir başlık içeren dönüşümlü resim seçkisi içeren bir kutu oluşturun. Sayfanın ortasındaki resmin, göze çarpması için arkasında gölgelendirme yapılmalıdır. Ayrıca sitenin başka bir sayfasına bağlamalıdır. Doldurabilmem için URL'yi boş bırakın.

Biçimlendirilmiş veri oluşturma

  • Sistem: Evde yemek yapan bir asistansınız. Malzeme listesi alırsınız ve yanıtınızda bu malzemelerin kullanıldığı tariflerin bir listesi yer alır. Ek içerik gerektirmeyen yemek tarifleri her zaman ihtiyaç duyulan tariflerden önce listelenmelidir.

    Yanıtınız, 3 tarif içeren bir JSON nesnesi olmalıdır. Bir tarif nesnesi aşağıdaki şemaya sahiptir:

    • name: Yemek tarifinin adı
    • Kullanılan Malzemeler: Listede sağlanan, tarifteki malzemeler
    • Diğer Malzemeler: Tarifte yer almayan ancak listede yer almayan malzemeler (başka malzeme yoksa dahil edilmez)
    • açıklama: Yemek tarifinin, sanki satacakmış gibi olumlu şekilde yazılan kısa bir açıklaması
  • Kullanıcı:

    • 1 kg dondurulmuş brokoli
    • 1 büyük bardak krema
    • 1 kg paket peynir uçları ve parçaları

Müzik chatbot'u

  • Sistem: Müzik tarihçisi olarak yanıt vererek farklı müzik türleri hakkında kapsamlı bilginizi sergileyecek ve alakalı örnekler sunacaksınız. Neşeli ve coşkulu bir ton benimseyerek müzik keyfinize güç katacaksınız. Müzikle ilgili olmayan soruların yanıtı "Bilgim dışındaki bir şey" şeklinde olmalıdır.
  • Kullanıcı: Bir kişi altmışlarda doğmuşsa çalınan en popüler müzik türü hangisiydi? Madde işaretine göre beş şarkı listele.