Usa las instrucciones del sistema para guiar el comportamiento de un modelo

Las instrucciones del sistema son como un "preámbulo" que agregas antes de que el modelo se exponga a otras instrucciones del usuario final. Te permite dirigir el comportamiento del modelo según tus necesidades y casos de uso específicos.

Ir a las muestras de código


Cuando configuras una instrucción del sistema, le das al modelo contexto adicional para comprender la tarea, proporcionar respuestas más personalizadas y cumplir con lineamientos específicos sobre la interacción completa del usuario con el modelo. Puedes especificar el comportamiento a nivel del producto en las instrucciones del sistema, aparte de las instrucciones que proporcionan los usuarios finales. Por ejemplo, puedes incluir elementos como el rol o la arquetipo, la información contextual y las instrucciones de formato.

Puedes usar las instrucciones del sistema de muchas maneras, incluidas las siguientes:

  • Definir una persona o un rol (por ejemplo, para un chatbot)
  • Definir el formato de salida (Markdown, YAML, etcétera)
  • Definir el estilo y el tono de salida (por ejemplo, verbosidad, formalidad y nivel de lectura objetivo)
  • Definir objetivos o reglas para la tarea (por ejemplo, mostrar un fragmento de código sin más explicaciones)
  • Proporcionar contexto adicional para la instrucción (por ejemplo, un límite de conocimiento)

Cuando se establece una instrucción del sistema, se aplica a toda la solicitud. Funciona en varios turnos de usuario y modelo cuando se incluye en la instrucción. Aunque las instrucciones del sistema son independientes del contenido del mensaje, siguen siendo parte de los mensajes generales y, por lo tanto, están sujetas a las políticas de uso de datos estándar.

Todos los modelos de Gemini admiten instrucciones del sistema. No son compatibles con los modelos Imagen 3.

Establece instrucciones del sistema

Haz clic en tu proveedor de Gemini API para ver el contenido y el código específicos del proveedor en esta página.

Cómo establecer instrucciones del sistema para casos de uso generales

Swift

Especificas systemInstruction cuando creas una instancia de 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

Especificas systemInstruction cuando creas una instancia de 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

Especificas systemInstruction cuando creas una instancia de 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

Especificas systemInstruction cuando creas una instancia de 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

Especificas systemInstruction cuando creas una instancia de 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

Especificas systemInstruction cuando creas una instancia de 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.")
);

Establece instrucciones del sistema para el Gemini Live API

Ejemplos de solicitudes

Estos son algunos ejemplos de instrucciones del sistema que definen el comportamiento esperado del modelo.

Generación de código

  • Sistema: Eres un experto en programación que se especializa en la renderización de código para interfaces de frontend. Cuando describo un componente de un sitio web que quiero compilar, muestra el HTML y el CSS necesarios para hacerlo. No des una explicación para este código. También ofrece algunas sugerencias de diseño de la IU.
  • Usuario: Crea un cuadro en el centro de la página que contenga una selección rotativa de imágenes, cada una con una leyenda. La imagen en el centro de la página debe tener un sombreado detrás de ella para que se destaque. También debe vincular a otra página del sitio. Deja la URL en blanco para poder completarla.

Generación de datos con formato

  • Sistema: Eres un asistente para colectores en casa. Recibes una lista de ingredientes y respondes con una lista de recetas que usan esos ingredientes. Las recetas que no necesitan ingredientes adicionales siempre deben aparecer antes de las que sí.

    Tu respuesta debe ser un objeto JSON que contenga 3 recetas. Un objeto de receta tiene el siguiente esquema:

    • Nombre: El nombre de la receta
    • Ingredientes usados: Los componentes de la receta que se proporcionaron en la lista
    • Otros Ingredientes: Ingredientes en la receta que no se proporcionaron en la lista (se omiten si no hay otros ingredientes)
    • Descripción: Una breve descripción de la receta, escrita de forma positiva como si la vendiera.
  • Usuario:

    • 1 lb de brócoli congelado
    • 1 pinta de crema espesa
    • 1 lb de extremos y trozos de queso

Chatbot de música

  • Sistema: Responderás como un historiador de música, demostrarás conocimientos integrales sobre diversos géneros musicales y proporcionarás ejemplos relevantes. Tu tono será animado y entusiasta y expandirá la alegría de la música. Si una pregunta no está relacionada con la música, la respuesta debería ser: “Esto está más allá de mi conocimiento”.
  • Usuario: Si una persona nació en los sesenta, ¿cuál era el género de música más popular que se reproducía? Enumera cinco canciones por viñeta.

Otras opciones para controlar la generación de contenido

  • Obtén más información sobre el diseño de instrucciones para influir en el modelo y generar resultados específicos para tus necesidades.
  • Configura los parámetros del modelo para controlar cómo este genera una respuesta. En el caso de los modelos Gemini, estos parámetros incluyen la cantidad máxima de tokens de salida, la temperatura, Top-K y Top-P. En el caso de los modelos Imagen, estos incluyen la relación de aspecto, la generación de personas, la marca de agua, etcétera.
  • Usa la configuración de seguridad para ajustar la probabilidad de recibir respuestas que se puedan considerar dañinas, como incitación al odio o a la violencia y contenido sexual explícito.
  • Pasa un esquema de respuesta junto con la instrucción para especificar un esquema de salida específico. Esta función se usa con mayor frecuencia cuando se genera un resultado JSON, pero también se puede usar para tareas de clasificación (como cuando deseas que el modelo use etiquetas específicas).