Systemanweisungen festlegen

Mit Systemanweisungen können Sie dem Modell eine Persona zuweisen, den Ton der Antworten festlegen oder bestimmte Regeln vorgeben, die es befolgen muss. Diese Anweisungen sind vom Prompt des Nutzers getrennt und werden vom Modell mit höherer Priorität behandelt, damit es sich wie erwartet verhält.

Zu den häufigsten Anwendungsfällen gehören:

  • Persona festlegen: Beispiel: „Du bist eine hilfsbereite Lehrkraft für Mathematik.“
  • Ausgabeformat erzwingen: Beispiel: „Antworte immer in Stichpunkten.“
  • Einschränkungen festlegen: Zum Beispiel: „Beantworte keine Fragen zur Politik.“

Vorbereitung

Systemanweisungen funktionieren auf Geräten mit Gemini Nano V3 und höher. Eine Liste der unterstützten Geräte finden Sie unter Geräteunterstützung für direkten Modellzugriff.

Beschränkungen

Wir raten davon ab, Systemanweisungen mit Präfix-Caching zu verwenden. Im Allgemeinen sollten Sie Systemanweisungen für kurze Anweisungen verwenden, die festlegen, wie sich das Modell verhalten soll. Verwenden Sie das Präfix-Caching, wenn Sie einen großen Teil Ihres Prompts in mehreren Abfragen wiederholen und die Leistung optimieren müssen.

Systemanweisungen verwenden

Wenn Sie Systemanweisungen bereitstellen möchten, erstellen Sie ein SystemInstruction-Objekt und übergeben Sie es an den GenerateContentRequest-Builder:

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
}

Sie können den Code weiter vereinfachen, indem Sie die Systemanweisungen direkt an den generateContentRequest-Anfrage-Builder übergeben:

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
}

Best Practices

Hier sind einige Best Practices für die Verwendung von Systemanweisungen:

  • Seien Sie klar und direkt: Das Modell folgt klaren, direkten Anweisungen besser als mehrdeutigen. Hier einige Beispiele:
    • Vage (vermeiden): „Schreiben Sie nicht zu viel. Try to be helpful and friendly, and format the output nicely.“
    • Klar (bevorzugt): „Du bist ein freundlicher Kundensupport-Assistent. Beschränke deine Antworten auf maximal 3 Sätze. Formatiere alle Listen mit Aufzählungspunkten.“
  • Fassen Sie sich kurz: Systemanweisungen sind zwar leistungsstark, aber sehr lange Anweisungen können das begrenzte Kontextfenster des Modells überlasten.
  • Tokenanzahl berücksichtigen: Achten Sie darauf, dass Ihre Logik für die Tokenzählung die Systemanweisungen enthält, um eine Unterschätzung der Anfragegröße zu vermeiden. Wir empfehlen, die Systemanweisungen auf weniger als 150 Wörter (100–200 Tokens) zu beschränken.
  • Testen und iterieren: Das Verhalten des Modells kann je nach Formulierung variieren. Testen Sie mit verschiedenen Nutzereingaben, um sicherzustellen, dass das Modell seine Persona konsistent beibehält.