Establecer instrucciones del sistema

Las instrucciones del sistema te permiten darle un arquetipo al modelo, establecer el tono de sus respuestas o proporcionar reglas específicas que debe seguir. Estas instrucciones son independientes de la instrucción del usuario y el modelo las trata con mayor prioridad para garantizar que se comporte como se espera.

Los casos de uso comunes incluyen los siguientes:

  • Establecer una personificación: Por ejemplo, "Eres un tutor de matemáticas servicial".
  • Aplicar un formato de salida: Por ejemplo, "Siempre responde con viñetas".
  • Establecer restricciones: Por ejemplo, "No respondas preguntas sobre política".

Requisitos previos

Las instrucciones del sistema funcionan en dispositivos que ejecutan Gemini Nano V3 y versiones posteriores. Para obtener una lista de los dispositivos compatibles, consulta Compatibilidad de dispositivos con acceso directo a modelos.

Limitaciones

No recomendamos usar instrucciones del sistema con el almacenamiento en caché de prefijos. En general, usa instrucciones del sistema para instrucciones breves que definan cómo debe comportarse el modelo. Usa el almacenamiento en caché de prefijos si necesitas repetir una gran parte de tu instrucción en las consultas y necesitas optimizar el rendimiento.

Cómo usar las instrucciones del sistema

Para proporcionar instrucciones del sistema, crea un objeto SystemInstruction y pásalo al compilador 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
}

Puedes simplificar aún más el código pasando las instrucciones del sistema directamente al compilador de solicitudes 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
}

Prácticas recomendadas

Estas son algunas prácticas recomendadas para usar las instrucciones del sistema:

  • Sé claro y directo: El modelo sigue mejor las instrucciones claras y directas que las ambiguas. Estos son algunos ejemplos:
    • Vago (evitar): "No escribas demasiado. Intenta ser útil y amable, y darle un buen formato al resultado".
    • Claro (preferido): "Eres un asistente amigable de asistencia al cliente. Limita tus respuestas a un máximo de 3 oraciones. Usa viñetas para dar formato a las listas".
  • Sé conciso: Si bien las instrucciones del sistema son potentes, las instrucciones muy largas pueden consumir la ventana de contexto limitada del modelo.
  • Ten en cuenta los recuentos de tokens: Asegúrate de que la lógica de recuento de tokens incluya las instrucciones del sistema para evitar subestimar el tamaño de la solicitud. Te recomendamos que las instrucciones del sistema no superen las 150 palabras (entre 100 y 200 tokens).
  • Prueba y repite: El comportamiento del modelo puede variar según la redacción. Realiza pruebas con varias entradas de usuario para asegurarte de que el modelo mantenga su personalidad de forma coherente.