Sistem talimatlarını ayarla

Sistem talimatları, modele bir karakter vermenize, yanıtlarının üslubunu belirlemenize veya uyması gereken belirli kurallar sağlamanıza olanak tanır. Bu talimatlar, kullanıcının isteminden ayrıdır ve modelin beklendiği gibi davranmasını sağlamak için model tarafından daha yüksek öncelikli olarak ele alınır.

Yaygın kullanım alanları şunlardır:

  • Karakter belirleme: Örneğin, "Sen yardımsever bir matematik öğretmenisin."
  • Çıkış biçimini zorunlu kılma: Örneğin, "Her zaman madde işaretleriyle yanıt ver."
  • Kısıtlama belirleme: Örneğin, "Siyasetle ilgili soruları yanıtlama."

Ön koşullar

Sistem talimatları, Gemini Nano V3 ve sonraki sürümlerin yüklü olduğu cihazlarda çalışır. Desteklenen cihazların listesi için Doğrudan model erişimi cihaz desteği başlıklı makaleyi inceleyin.

Sınırlamalar

Sistem talimatlarını önek önbelleğe alma ile kullanmanızı önermiyoruz. Genel olarak, modelin nasıl davranması gerektiğini tanımlayan kısa talimatlar için sistem talimatlarını kullanın. İsteminizin büyük bir bölümünü sorgular arasında tekrarlamanız ve performansı optimize etmeniz gerekiyorsa ön ek önbelleğe almayı kullanın.

Sistem talimatlarını kullanma

Sistem talimatları sağlamak için bir SystemInstruction nesnesi oluşturun ve bunu GenerateContentRequest oluşturucuya iletin:

import com.google.mlkit.genai.prompt.SystemInstruction
import com.google.mlkit.genai.prompt.TextPart
import com.google.mlkit.genai.prompt.generateContentRequest

// 1. Define the system instruction
val systemInstruction =
    SystemInstruction("You are a concise assistant. Answer in 2 sentences or less.")

// 2. Create the request
val request = generateContentRequest(TextPart("How does photosynthesis work?")) {
    this.systemInstruction = systemInstruction
}

// 3. Run inference
try {
    val response = generativeModel.generateContent(request)
    println(response.candidates.firstOrNull()?.text)
} catch (e: GenAiException) {
    // Handle SDK-specific exceptions
}

Sistem talimatlarını doğrudan generateContentRequest istek oluşturucuya ileterek kodu daha da basitleştirebilirsiniz:

val request = generateContentRequest(
    SystemInstruction("You are a pirate. Speak like one."),
    TextPart("What is the weather like today?")
) {
    // Optional configurations like temperature
    temperature = 0.7f
}

En iyi uygulamalar

Sistem talimatlarını kullanırken yararlanabileceğiniz bazı en iyi uygulamalar şunlardır:

  • Net ve doğrudan olun: Model, net ve doğrudan talimatları belirsiz talimatlara göre daha iyi uygular. Aşağıda birkaç örnek verilmiştir:
    • Belirsiz (kaçının): "Çok fazla yazmayın. Yardımcı ve samimi olmaya çalış, çıktıyı düzgün bir şekilde biçimlendir."
    • Net (tercih edilen): "Sen, samimi bir müşteri destek asistanısın. Yanıtlarınızı en fazla 3 cümleyle sınırlayın. Listeleri madde işaretleri kullanarak biçimlendir."
  • Kısa ve öz olun: Sistem talimatları güçlü olsa da çok uzun talimatlar, modelin sınırlı bağlam penceresini tüketebilir.
  • Parça sayısını hesaba katın: İstek boyutunu eksik tahmin etmemek için parça sayma mantığınızın sistem talimatlarını içerdiğinden emin olun. Sistem talimatlarınızı 150 kelimenin (100-200 jeton) altında tutmanızı öneririz.
  • Test edin ve tekrarlayın: Modelin davranışı, ifadeye göre değişiklik gösterebilir. Modelin karakterini tutarlı bir şekilde koruduğundan emin olmak için çeşitli kullanıcı girişleriyle test edin.