Instructions système

Les instructions système permettent aux utilisateurs de gérer le comportement du modèle en fonction de leurs besoins et cas d'utilisation spécifiques. Lorsque vous définissez une instruction système, vous donnez au modèle plus de contexte pour comprendre la tâche, fournir des réponses plus personnalisées et respecter des consignes spécifiques par rapport à l'interaction complète de l'utilisateur avec le modèle. Pour les développeurs, le comportement au niveau du produit peut être spécifié dans les instructions système, indépendamment des invites fournies par les utilisateurs finaux.

Vous pouvez utiliser les instructions système de différentes manières, par exemple:

  • Définir un persona ou un rôle (pour un chatbot, par exemple)
  • Définir le format de sortie (Markdown, YAML, etc.)
  • Définir le style et le ton de sortie (par exemple, niveau de détail, formalité et niveau de lecture cible)
  • Définir des objectifs ou des règles pour la tâche (par exemple, renvoyer un extrait de code sans autre explication)
  • Fournir du contexte supplémentaire pour l'invite (par exemple, une limite de connaissances)

Lorsqu'une instruction système est définie, elle s'applique à l'ensemble de la requête. Elle fonctionne pour plusieurs tours d'utilisateur et de modèle lorsqu'elle est incluse dans l'invite. Les instructions système font partie de vos invites globales et sont donc soumises aux règles standards d'utilisation des données.

Exemples

Voici un exemple de base illustrant comment définir l'instruction système à l'aide des SDK pour l'API Gemini:

Python

model=genai.GenerativeModel(
    model_name="gemini-1.5-pro-latest",
    system_instruction="You are a cat. Your name is Neko.")

Go

model.SystemInstruction = &genai.Content{
    Parts: []genai.Part{genai.Text("You are a cat. Your name is Neko.")},
}

Node.js

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Web

const generativeModel = genAI.getGenerativeModel({
  model: "gemini-1.5-pro-latest",
  systemInstruction: "You are a cat. Your name is Neko."
});

Dart (Flutter)

final model = GenerativeModel(
  model: 'gemini-1.5-pro-latest',
  apiKey: apiKey,
  systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);

Swift

let generativeModel = GenerativeModel(
  name: "gemini-1.5-pro-latest",
  apiKey: apiKey,
  systemInstruction: "You are a cat. Your name is Neko."
)

Android

Kotlin:

val generativeModel = GenerativeModel(
  modelName = "gemini-1.5-pro-latest",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java :

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-pro-latest",
  /* apiKey */ BuildConfig.apiKey,
  /* generationConfig (optional) */ null,
  /* safetySettings (optional) */ null,
  /* requestOptions (optional) */ new RequestOptions(),
  /* tools (optional) */ null,
  /* toolsConfig (optional) */ null,
  /* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
)

Vous trouverez ci-dessous des exemples de requêtes système qui définissent le comportement attendu du modèle.

Génération de code

  • Système: vous êtes un expert en codage spécialisé dans le rendu de code pour les interfaces frontend. Lorsque je décris un composant d'un site Web que je souhaite créer, veuillez renvoyer le code HTML et CSS nécessaire. Ne fournissez pas d'explications sur ce code. Proposez également quelques suggestions pour la conception de l'interface utilisateur.
  • Utilisateur: crée une zone au milieu de la page contenant une sélection d'images qui alterne et avec une légende. L'image au centre de la page doit avoir une ombre derrière elle pour la faire ressortir. Elle doit également être associée à une autre page du site. Laissez l'URL vide pour que je puisse la renseigner.

Génération de données formatées

  • Système:vous êtes l'assistant du cuisinier amateur. Vous recevez une liste d'ingrédients et répondez par une liste de recettes qui utilisent ces ingrédients. Les recettes qui n'ont pas besoin d'ingrédients supplémentaires doivent toujours être listées avant celles qui en ont besoin.

    Votre réponse doit être un objet JSON contenant trois recettes. Un objet de recette présente le schéma suivant:

    • name: nom de la recette.
    • usedIngredients: les ingrédients de la recette figurant dans la liste
    • otherIngredients: ingrédients de la recette qui ne figuraient pas dans la liste (omis s'il n'y a pas d'autres ingrédients)
    • description: brève description de la recette, écrite de manière positive, comme pour la vendre.
  • Utilisateur:

    • Sac de 1 kg de brocoli surgelé
    • 1 pinte de crème épaisse
    • Emballez 500 g de fromage en bout et en morceaux

Chatbot musical

  • Système: vous répondrez en tant qu'historique de la musique en démontrant des connaissances complètes sur divers genres musicaux et en fournissant des exemples pertinents. Votre ton sera rythmé et enthousiaste, ce qui vous permettra de répandre le plaisir de la musique. Si une question n'est pas liée à la musique, la réponse doit être : "C'est au-delà de ce que je sais".
  • Utilisateur: Si une personne est née dans les années 60, quel était le genre musical le plus populaire ? Listez cinq titres par puce.