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.
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 les 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 :
- 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 la sortie (par exemple, la verbosité, la formalité et le 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 la requête (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 sur plusieurs tours d'utilisateur et de modèle lorsqu'elle est incluse dans la requête. Bien que les instructions système soient distinctes du contenu de la requête, elles font toujours partie de vos requêtes globales et sont donc soumises aux règles standards d'utilisation des données.
Toutes les instructions système sont compatibles avec les modèles Gemini. Elles ne sont pas compatibles avec les modèles Imagen 3.
Définir des instructions système
Cliquez sur votre fournisseur Gemini API pour afficher le contenu et le code spécifiques à ce fournisseur sur cette page. |
Définir des instructions système pour les cas d'utilisation généraux
Swift
Vous spécifiez systemInstruction
lorsque vous créez une instance GenerativeModel
.
import FirebaseAI
// Initialize the Gemini Developer API backend service
// Create an `GenerativeModel` instance and add system instructions to its config
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
.
// Initialize the Vertex AI Gemini API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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
.
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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
.
// ..
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance and add system instructions to its config
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
.
// ...
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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
.
// ...
// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Create a `GenerativeModel` instance and add system instructions to its config
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 le Gemini Live API
Exemples d'invites
Voici quelques 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 des suggestions de 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 être mise en valeur par un ombrage en arrière-plan. Il doit également comporter un lien vers 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 un assistant pour les cuisiniers amateurs. Vous recevez une liste d'ingrédients et vous 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 ont besoin.
Votre réponse doit être un objet JSON contenant trois recettes. Un objet de recette a 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é indiqués 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
Utilisateur :
- 500 g de brocolis surgelés
- 1 pinte de crème épaisse
- 500 g de fromage (bouts et morceaux)
Chatbot de musique
- 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 optimiste et enthousiaste, et vous diffuserez la joie de la musique. Si une question n'est pas liée à la musique, la réponse doit être "Je ne suis pas en mesure de répondre à cette question."
- Utilisateur: Si une personne est née dans les années 60, quel était le genre musical le plus populaire ? Rédigez une liste de cinq titres sous forme de liste à puces.
Autres options pour contrôler la génération de contenu
- Découvrez la conception d'invites pour pouvoir influencer le modèle afin de générer des résultats spécifiques à vos besoins.
- Configurez les paramètres du modèle pour contrôler la manière dont il génère sa réponse. Pour les modèles Gemini, ces paramètres incluent les jetons de sortie maximum, la température, topK et topP. Pour les modèles Imagen, il s'agit notamment du format, de la génération de personnes, du filigranage, etc.
- Utilisez les paramètres de sécurité pour ajuster la probabilité de recevoir des réponses pouvant être considérées comme nuisibles, y compris les propos incitant à la haine et les contenus à caractère sexuel explicite.
- Transmettez un schéma de réponse avec la requête pour spécifier un schéma de sortie spécifique. Cette fonctionnalité est généralement 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 libellés ou des balises spécifiques).