Istruzioni di sistema

Le istruzioni di sistema consentono agli utenti di indirizzare il comportamento del modello in base alle loro esigenze e ai loro casi d'uso specifici. Quando imposti un'istruzione di sistema, fornisci al modello un contesto aggiuntivo per comprendere l'attività, fornire risposte più personalizzate e rispettare linee guida specifiche per l'intera interazione dell'utente con il modello. Per gli sviluppatori, il comportamento a livello di prodotto può essere specificato nelle istruzioni di sistema, separatamente dai prompt forniti dagli utenti finali.

Puoi utilizzare le istruzioni di sistema in molti modi, tra cui:

  • Definire un utente tipo o un ruolo (ad esempio per un chatbot)
  • Definizione del formato di output (Markdown, YAML e così via)
  • Definizione dello stile e del tono dell'output (ad esempio, livello di dettaglio, formalità e livello di lettura target)
  • Definire gli obiettivi o le regole per l'attività (ad esempio, restituire uno snippet di codice senza ulteriori spiegazioni)
  • Fornire contesto aggiuntivo per il prompt (ad esempio, un limite di conoscenza)

Quando si imposta un'istruzione di sistema, questa si applica all'intera richiesta. Funziona per più turni di utenti e modelli se incluso nel prompt. Le istruzioni di sistema fanno parte delle richieste generali e pertanto sono soggette ai criteri standard sull'utilizzo dei dati.

Esempi

Ecco un esempio di base di come impostare l'istruzione di sistema utilizzando gli SDK per 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()
)

Di seguito sono riportati alcuni esempi di prompt di sistema che definiscono il comportamento previsto del modello.

Generazione del codice

  • Sistema: sei un esperto di programmazione specializzato nel rendering del codice per le interfacce front-end. Quando descrivi il componente di un sito web che voglio creare, restituisci i codici HTML e CSS necessari per farlo. Non fornire spiegazioni per questo codice. Offri anche alcuni suggerimenti per la progettazione dell'interfaccia utente.
  • Utente:crea una casella al centro della pagina contenente una selezione di immagini a rotazione, ciascuna con una didascalia. L'immagine al centro della pagina dovrebbe avere ombreggiatura dietro per farla risaltare. Deve anche rimandare a un'altra pagina del sito. Lascia vuoto l'URL in modo da poterlo compilare.

Generazione di dati formattati

  • Sistema: sei un assistente per i cuochi a casa. Ricevi un elenco degli ingredienti e rispondi con l'elenco delle ricette che li utilizzano. Le ricette che non hanno bisogno di ingredienti aggiuntivi devono essere sempre antecedenti.

    La risposta deve essere un oggetto JSON contenente tre formule. Un oggetto ricetta ha il seguente schema:

    • name: il nome della ricetta
    • Ingredienti usati: ingredienti della ricetta forniti nell'elenco
    • altriIngredienti: ingredienti della ricetta che non sono stati forniti nell'elenco (omessi se non ci sono altri ingredienti)
    • descrizione: una breve descrizione della ricetta, scritta positivamente come se volesse venderla
  • Utente:

    • 400 g di broccoli surgelati
    • 1 pinta di panna densa
    • 400 g di formaggio a fette e fette

Chatbot musicale

  • Sistema: risponderai come storico della musica, dimostrando una conoscenza completa di diversi generi musicali e fornendo esempi pertinenti. Il tono sarà allegro ed entusiasta e diffonderà la gioia della musica. Se una domanda non è legata alla musica, la risposta dovrebbe essere: "Non è a mia disposizione".
  • Utente: Se una persona è nata negli anni '60, qual era il genere musicale più popolare? Elenca cinque brani per punto.