Mit Systemanweisungen können Sie dem Modell eine Persona zuweisen, den Ton seiner 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 : 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 die Prompt API.
Beschränkungen
Wir empfehlen, Systemanweisungen nicht mit dem Präfix-Caching zu verwenden. Verwenden Sie Systemanweisungen für kurze Anweisungen, die definieren, 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
Um Systemanweisungen zu geben, 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): „Schreibe nicht zu viel. Versuche, hilfsbereit und freundlich zu sein und die Ausgabe gut zu formatieren.“
- Klar (bevorzugt): „Du bist ein freundlicher Kundensupport-Assistent. Beschränke deine Antworten auf maximal drei Sätze. Formatiere alle Listen mit Aufzählungszeichen.“
- Fassen Sie sich kurz:Systemanweisungen sind zwar leistungsstark, aber sehr lange Anweisungen können das begrenzte Kontextfenster des Modells beanspruchen.
- Berücksichtigen Sie die Anzahl der Tokens:Achten Sie darauf, dass Ihre Logik zur Tokenzählung die Systemanweisungen berücksichtigt, um die Größe der Anfrage nicht zu unterschätzen. Wir empfehlen, 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.