Imposta istruzioni di sistema

Le istruzioni di sistema ti consentono di assegnare un ruolo al modello, impostare il tono delle sue risposte o fornire regole specifiche che deve seguire. Queste istruzioni sono separate dal prompt dell'utente e vengono trattate con priorità più alta dal modello per garantire che si comporti come previsto.

I casi d'uso comuni includono:

  • Impostazione di un ruolo: ad esempio, "Sei un tutor di matematica disponibile".
  • Imposizione del formato di output: ad esempio, "Rispondi sempre con un elenco puntato".
  • Impostazione di vincoli: ad esempio, "Non rispondere a domande sulla politica".

Prerequisiti

Le istruzioni di sistema funzionano sui dispositivi con Gemini Nano V3 e versioni successive. Per un elenco dei dispositivi supportati, consulta Supporto dei dispositivi per l'accesso diretto ai modelli.

Limitazioni

Sconsigliamo di utilizzare le istruzioni di sistema con la memorizzazione nella cache del prefisso. In generale, utilizza le istruzioni di sistema per istruzioni brevi che definiscono il comportamento del modello; utilizza la memorizzazione nella cache del prefisso se devi ripetere una parte significativa del prompt tra le query e devi ottimizzare le prestazioni.

Come utilizzare le istruzioni di sistema

Per fornire istruzioni di sistema, crea un oggetto SystemInstruction e passalo al builder 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
}

Puoi semplificare ulteriormente il codice passando le istruzioni di sistema direttamente al builder di richieste 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
}

Best practice

Ecco alcune best practice per l'utilizzo delle istruzioni di sistema:

  • Sii chiaro e diretto: il modello segue meglio le istruzioni chiare e dirette rispetto a quelle ambigue. Ecco alcuni esempi:
    • Vago (da evitare): "Non scrivere troppo. Prova a essere utile e amichevole e formatta l'output in modo chiaro."
    • Chiaro (preferito): "Sei un assistente dell'assistenza clienti cordiale. Limita le tue risposte a un massimo di 3 frasi. Formatta gli elenchi utilizzando elenchi puntati."
  • Sii conciso: sebbene le istruzioni di sistema siano potenti, istruzioni molto lunghe possono consumare la finestra di contesto limitata del modello.
  • Tieni conto dei conteggi dei token: assicurati che la logica di conteggio dei token includa le istruzioni di sistema per evitare di sottostimare le dimensioni della richiesta. Ti consigliamo di mantenere le istruzioni di sistema al di sotto delle 150 parole (100-200 token).
  • Testa e ripeti: il comportamento del modello può variare in base alla formulazione. Esegui test con vari input utente per assicurarti che il modello mantenga la sua persona in modo coerente.