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 qu'il doit suivre. Ces instructions sont distinctes de la requête de l'utilisateur et sont traitées avec une priorité plus élevée 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épondez 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 Appareils compatibles avec l'API Prompt.
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 requête 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 générateur 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 dans le générateur 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 celles qui sont ambiguës. Voici quelques exemples :
- Vague (à éviter) : "N'écris pas trop. Essayez d'être utile et amical, et de mettre en forme le résultat de manière agréable.
- 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, les instructions très longues peuvent consommer la fenêtre de contexte limitée du modèle.
- Tenez compte du nombre de jetons : assurez-vous que votre logique de comptabilisation des jetons inclut les instructions système pour éviter de sous-estimer la taille des requêtes. Nous vous recommandons de limiter vos instructions système à moins de 150 mots (100 à 200 jetons).
- Testez et itérez : 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 sa personnalité de manière cohérente.