Les instructions système vous permettent de donner un persona au modèle, de définir le ton de ses réponses ou de lui fournir des règles spécifiques à suivre. Ces instructions sont distinctes de la requête de l'utilisateur et sont traitées en priorité par le modèle pour s'assurer qu'il se comporte comme prévu.
Vous trouverez ci-dessous des cas d'utilisation courants :
- Définir un persona : par exemple, "Tu es un professeur de mathématiques serviable."
- Imposer un format de sortie : par exemple, "Réponds toujours sous forme de liste à puces."
- Définir des contraintes : par exemple, "Ne réponds pas aux questions sur la politique."
Prérequis
Les instructions système fonctionnent sur les appareils équipés de Gemini Nano V3 ou version ultérieure. Pour obtenir la liste des appareils compatibles, consultez Compatibilité des appareils avec l'accès direct aux modèles.
Limites
Nous vous déconseillons d'utiliser des instructions système avec la mise en cache des préfixes. En général, utilisez des instructions système pour les instructions courtes qui définissent le comportement du modèle. Utilisez la mise en cache des préfixes si vous devez répéter une grande partie de votre prompt dans plusieurs requêtes et que vous devez optimiser les performances.
Utiliser les instructions système
Pour fournir des instructions système, créez un objet SystemInstruction et transmettez-le au compilateur GenerateContentRequest :
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
}
Vous pouvez simplifier davantage le code en transmettant les instructions système directement au compilateur de requêtes generateContentRequest :
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
}
Bonnes pratiques
Voici quelques bonnes pratiques à suivre lorsque vous utilisez des instructions système :
- Soyez clair et direct : le modèle suit mieux les instructions claires et directes que les instructions ambiguës. Voici quelques exemples :
- Vague (à éviter) : "N'écris pas trop. Essaie d'être utile et amical, et formate bien le résultat."
- Clair (recommandé) : "Tu es un assistant du service client amical. Limitez vos réponses à trois phrases maximum. Mets en forme les listes à l'aide de puces."
- Soyez concis : bien que les instructions système soient puissantes, des instructions très longues peuvent consommer la fenêtre de contexte limitée du modèle.
- Prenez en compte le nombre de jetons : assurez-vous que votre logique de comptage des jetons inclut les instructions système pour éviter de sous-estimer la taille de la requête. Nous vous recommandons de limiter vos instructions système à moins de 150 mots (100 à 200 jetons).
- Tester et itérer : le comportement du modèle peut varier en fonction de la formulation. Testez avec différentes entrées utilisateur pour vous assurer que le modèle conserve son persona de manière cohérente.