Les instructions système sont comme un "préambule" que vous ajoutez avant que le modèle ne soit exposé à d'autres instructions de l'utilisateur final. Elles vous permettent d'orienter le comportement du modèle en fonction de vos besoins et de vos cas d'utilisation spécifiques.
Les instructions système sont compatibles avec tous les modèles Gemini.
Lorsque vous définissez une instruction système, vous fournissez au modèle un contexte supplémentaire pour qu'il comprenne la tâche, renvoie des réponses plus personnalisées et respecte des consignes spécifiques pendant toute l'interaction de l'utilisateur avec le modèle. Vous pouvez spécifier le comportement au niveau du produit dans des instructions système, distinctes des requêtes fournies par les utilisateurs finaux. Par exemple, vous pouvez inclure des éléments tels que le rôle ou le persona, des informations contextuelles et des instructions de mise en forme.
Vous pouvez utiliser les instructions système de différentes manières, par exemple :
- Pour définir un persona ou un rôle (pour un chatbot, par exemple)
- Pour définir le format de sortie (Markdown, YAML, etc.)
- Pour définir le style et le ton de la sortie (par exemple, la verbosité, la formalité et le niveau de lecture cible)
- Pour définir des objectifs ou des règles pour la tâche (par exemple, renvoyer un extrait de code sans autre explication)
- Pour fournir un contexte supplémentaire pour le prompt (par exemple, une date limite des connaissances)
Lorsqu'une instruction système est définie, elle s'applique à l'ensemble de la requête. Elle fonctionne sur plusieurs tours d'utilisateur et de modèle lorsqu'elle est incluse dans le prompt. Bien que les instructions système soient distinctes du contenu du prompt, elles font toujours partie de vos prompts globaux et sont donc soumises aux règles standards d'utilisation des données.
Définir des instructions système
|
Cliquez sur votre fournisseur Gemini API pour afficher le contenu et le code spécifiques au fournisseur sur cette page. |
Définir des instructions système pour des cas d'utilisation généraux
Swift
Vous spécifiez systemInstruction lorsque vous créez une instance GenerativeModel.
import FirebaseAILogic
// Specify the system instructions as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
modelName: "GEMINI_MODEL_NAME",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)
Kotlin
Vous spécifiez systemInstruction lorsque vous créez une instance GenerativeModel.
// Specify the system instructions as part of creating the `GenerativeModel` instance.
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "GEMINI_MODEL_NAME",
systemInstruction = content { text("You are a cat. Your name is Neko.") }
)
Java
Vous spécifiez systemInstruction lorsque vous créez une instance GenerativeModel.
// Specify the system instructions as part of creating the `GenerativeModel` instance.
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
/* modelName */ "GEMINI_MODEL_NAME",
/* 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()
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Web
Vous spécifiez systemInstruction lorsque vous créez une instance GenerativeModel.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Specify the system instructions as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, {
model: "GEMINI_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko."
});
Dart
Vous spécifiez systemInstruction lorsque vous créez une instance GenerativeModel.
// ...
// Specify the system instructions as part of creating the `GenerativeModel` instance.
final model = FirebaseAI.googleAI().generativeModel(
model: 'GEMINI_MODEL_NAME',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);
// ...
Unity
Vous spécifiez systemInstruction lorsque vous créez une instance GenerativeModel.
// ...
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Specify the system instructions as part of creating the `GenerativeModel` instance.
var model = ai.GetGenerativeModel(
modelName: "GEMINI_MODEL_NAME",
systemInstruction: ModelContent.Text("You are a cat. Your name is Neko.")
);
Définir des instructions système pour Gemini Live API
Swift
Vous spécifiez systemInstruction lorsque vous créez une instance LiveModel.
// ...
// Specify the system instructions as part of creating the `liveModel` instance
let liveModel = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
modelName: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko."),
// ...
)
// ...
Kotlin
Vous spécifiez systemInstruction lorsque vous créez une instance LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance.
val liveModel = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
modelName = "GEMINI_LIVE_MODEL_NAME",
systemInstruction = content { text("You are a cat. Your name is Neko.") },
// ...
)
// ...
Java
Vous spécifiez systemInstruction lorsque vous créez une instance LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance.
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
/* modelName */ "GEMINI_LIVE_MODEL_NAME",
/* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
// ...
);
LiveModelFutures liveModel = LiveModelFutures.from(lm);
// ...
Web
Vous spécifiez systemInstruction lorsque vous créez une instance LiveGenerativeModel.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Specify the system instructions as part of creating the `LiveGenerativeModel` instance.
const liveModel = getLiveGenerativeModel(ai, {
model: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko.",
// ...
});
// ...
Dart
Vous spécifiez systemInstruction lorsque vous créez une instance LiveGenerativeModel.
// ...
// Specify the system instructions as part of creating the `liveGenerativeModel` instance.
final liveModel = FirebaseAI.googleAI().liveGenerativeModel(
model: 'GEMINI_LIVE_MODEL_NAME',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
// ...
);
// ...
Unity
Vous spécifiez systemInstruction lorsque vous créez une instance LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance.
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
modelName: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: ModelContent.Text("You are a cat. Your name is Neko."),
// ...
);
// ...
Exemples d'instructions système
Voici quelques exemples d'instructions système qui permettent d'orienter le comportement attendu du modèle. Certains exemples montrent également un exemple de requête pour lequel l'instruction système serait utile.
Génération de code
Instruction 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. Propose également des suggestions de conception d'UI.Requête de l'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. Il doit également renvoyer à une autre page du site. Laissez l'URL vide pour que je puisse la remplir.
Chatbot de musique
Instruction système :
Vous répondrez en tant qu'historien de la musique en démontrant des connaissances complètes sur divers genres musicaux et en fournissant des exemples pertinents. Votre ton sera optimiste et enthousiaste, et vous partagerez votre passion pour la musique. Si une question ne concerne pas la musique, la réponse doit être "Cela dépasse mes connaissances".Requête utilisateur :
Si une personne est née dans les années 60, quel était le genre musical le plus populaire ? Liste de cinq chansons sous forme de liste à puces.
Génération de données formatées
Instruction système :
Tu es un assistant pour les cuisiniers amateurs. Vous recevez une liste d'ingrédients et répondez avec une liste de recettes qui utilisent ces ingrédients. Les recettes qui ne nécessitent pas d'ingrédients supplémentaires doivent toujours être listées avant celles qui en nécessitent.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 : ingrédients de la recette qui ont été fournis dans la liste
- otherIngredients : ingrédients de la recette qui n'ont pas été fournis dans la liste (omis s'il n'y a pas d'autres ingrédients)
- description : brève description de la recette, rédigée de manière positive, comme pour la vendre
Prompt de l'utilisateur :
- 1 sachet de 450 g de brocolis surgelés
- 1 pinte de crème épaisse
- 1 paquet de 1 lb de morceaux de fromage
Autres options pour contrôler la génération de contenu
- Découvrez comment concevoir des requêtes afin d'influencer le modèle pour qu'il génère des résultats adaptés à vos besoins.
- Configurez les paramètres du modèle pour contrôler la façon dont le modèle génère une réponse, comme le nombre maximal de jetons de sortie, la probabilité de jetons de sortie répétés, etc.
- Utilisez les paramètres de sécurité pour ajuster la probabilité d'obtenir des réponses pouvant être considérées comme nuisibles, y compris l'incitation à la haine et le contenu à caractère sexuel explicite.
- Transmettez un schéma de réponse avec le prompt pour spécifier un schéma de sortie spécifique. Cette fonctionnalité est le plus souvent utilisée pour générer une sortie JSON, mais elle peut également être utilisée pour des tâches de classification (par exemple, lorsque vous souhaitez que le modèle utilise des étiquettes ou des tags spécifiques).