En este documento se describe cómo usar las instrucciones del sistema. Para saber qué son las instrucciones del sistema y consultar las prácticas recomendadas para usarlas, consulta el artículo Introducción a las instrucciones del sistema.
Las instrucciones del sistema son un conjunto de instrucciones que el modelo procesa antes de procesar las peticiones. Te recomendamos que uses instrucciones del sistema para indicar al modelo cómo quieres que se comporte y responda a las peticiones. Por ejemplo, puedes incluir aspectos como el rol o el perfil, información contextual e instrucciones de formato:
You are a friendly and helpful assistant.
Ensure your answers are complete, unless the user requests a more concise approach.
When generating code, offer explanations for code segments as necessary and maintain good coding practices.
When presented with inquiries seeking information, provide answers that reflect a deep understanding of the field, guaranteeing their correctness.
For any non-english queries, respond in the same language as the prompt unless otherwise specified by the user.
For prompts involving reasoning, provide a clear explanation of each step in the reasoning process before presenting the final answer.
Cuando se define una instrucción del sistema, se aplica a toda la solicitud. Funciona en varias interacciones entre el usuario y el modelo cuando se incluye en la petición. Aunque las instrucciones del sistema son independientes del contenido de la petición, siguen formando parte de las peticiones generales y, por lo tanto, están sujetas a las políticas de uso de datos estándar.
Casos prácticos
Puedes usar las instrucciones del sistema de muchas formas, entre las que se incluyen las siguientes:
- Definir un perfil o un rol (por ejemplo, para un chatbot)
- Definir el formato de salida (Markdown, YAML, etc.)
- Definir el estilo y el tono del resultado (por ejemplo, la verbosidad, la formalidad y el nivel de lectura objetivo)
- Definir objetivos o reglas para la tarea (por ejemplo, devolver un fragmento de código sin más explicaciones)
- Proporcionar contexto adicional para la petición (por ejemplo, una fecha límite de conocimientos)
Especificar en qué idioma debe responder el modelo (a veces, los modelos pueden responder en tu idioma local, aunque la petición se haya escrito en otro idioma). Si usas un idioma distinto del inglés en tus peticiones, te recomendamos que añadas lo siguiente a tus instrucciones del sistema:
All questions should be answered comprehensively with details, unless the user requests a concise response specifically. Respond in the same language as the query.
Códigos de ejemplo
Los ejemplos de código de las siguientes pestañas muestran cómo usar instrucciones del sistema en tu aplicación de IA generativa.
Python
Instalar
pip install --upgrade google-genai
Para obtener más información, consulta la documentación de referencia del SDK.
Define variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Consulta cómo instalar o actualizar Go.
Para obtener más información, consulta la documentación de referencia del SDK.
Define variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
Instalar
npm install @google/genai
Para obtener más información, consulta la documentación de referencia del SDK.
Define variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Consulta cómo instalar o actualizar Java.
Para obtener más información, consulta la documentación de referencia del SDK.
Define variables de entorno para usar el SDK de IA generativa con Vertex AI:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
Después de configurar tu entorno, puedes usar REST para probar una petición de texto. En el siguiente ejemplo se envía una solicitud al endpoint del modelo del editor.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
GENERATE_RESPONSE_METHOD
: el tipo de respuesta que quieres que genere el modelo. Elige un método que genere la forma en que quieres que se devuelva la respuesta del modelo:streamGenerateContent
: la respuesta se transmite en tiempo real a medida que se genera para reducir la percepción de latencia de los usuarios.generateContent
: La respuesta se devuelve una vez que se ha generado por completo.
LOCATION
: la región en la que se procesará la solicitud. Entre las opciones disponibles se incluyen las siguientes:Haz clic para ver una lista parcial de las regiones disponibles
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: tu ID de proyecto.MODEL_ID
: ID del modelo multimodal que quieras usar.ROLE
: el rol en una conversación asociado al contenido. Es obligatorio especificar un rol incluso en los casos prácticos de una sola interacción. Entre los valores aceptados se incluyen los siguientes:USER
: especifica el contenido que has enviado.MODEL
: especifica la respuesta del modelo.
Las instrucciones de texto que se deben incluir en la petición. Por ejemplo,TEXT
User input: I like bagels
.SAFETY_CATEGORY
: la categoría de seguridad para la que se va a configurar un umbral. Entre los valores aceptados se incluyen los siguientes:Haz clic para desplegar las categorías de seguridad.
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
THRESHOLD
: Umbral para bloquear las respuestas que podrían pertenecer a la categoría de seguridad especificada en función de la probabilidad. Entre los valores aceptados se incluyen los siguientes:Haz clic para desplegar los umbrales de bloqueo
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(predeterminado)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
bloquea la mayoría de las cookies, mientras queBLOCK_ONLY_HIGH
bloquea la menor cantidad. (Opcional) No disponible en todos los modelos. Instrucciones para que el modelo mejore su rendimiento. JSON no admite saltos de línea. Sustituye todos los saltos de línea de este campo porSYSTEM_INSTRUCTION
\n
. Por ejemplo,You are a helpful language translator.\nYour mission is to translate text in English to French.
TEMPERATURE
: La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplicantopP
ytopK
. La temperatura controla el grado de aleatoriedad en la selección de tokens. Las temperaturas más bajas son adecuadas para las peticiones que requieren una respuesta menos abierta o creativa, mientras que las temperaturas más altas pueden dar lugar a resultados más diversos o creativos. Una temperatura de0
significa que siempre se seleccionan los tokens con la probabilidad más alta. En este caso, las respuestas a una petición determinada son mayormente deterministas, pero sigue siendo posible que haya una pequeña variación.Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura.
TOP_P
: Top-P cambia la forma en que el modelo selecciona los tokens de salida. Los tokens se seleccionan de más probable a menos probable hasta que la suma de sus probabilidades sea igual al valor de top-P. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0,3, 0,2 y 0,1, y el valor de top_p es0.5
, el modelo seleccionará A o B como el siguiente token usando la temperatura y excluirá C como candidato.Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.
TOP_K
: Top-K cambia la forma en que el modelo selecciona los tokens de salida. Un valor de K superior de1
significa que el siguiente token seleccionado es el más probable de todos los tokens del vocabulario del modelo (también llamado decodificación voraz), mientras que un valor de K superior de3
significa que el siguiente token se selecciona de entre los tres tokens más probables mediante la temperatura.En cada paso de selección de tokens, se muestrean los K tokens principales con las probabilidades más altas. Después, los tokens se filtran en función de la probabilidad P máxima y el token final se selecciona mediante un muestreo de temperatura.
Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias.
MAX_OUTPUT_TOKENS
: Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras.Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas.
STOP_SEQUENCES
: especifica una lista de cadenas que indica al modelo que deje de generar texto si se encuentra una de las cadenas en la respuesta. Si una cadena aparece varias veces en la respuesta, esta se truncará en el punto en el que se encuentre por primera vez. Las cadenas distinguen entre mayúsculas y minúsculas.
Por ejemplo, si la respuesta devuelta cuando no se especificastopSequences
es la siguiente:
public static string reverse(string myString)
La respuesta devuelta constopSequences
definido como["Str", "reverse"]
es la siguiente:
public static string
Especifica un array vacío ([]
) para inhabilitar las secuencias de parada.
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "system_instruction": { "parts": [ { "text": "SYSTEM_INSTRUCTION" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES } } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "contents": { "role": "ROLE", "parts": { "text": "TEXT" } }, "system_instruction": { "parts": [ { "text": "SYSTEM_INSTRUCTION" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES } } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la siguiente.
Fíjate en lo siguiente de la URL de este ejemplo:- Usa el método
generateContent
para solicitar que la respuesta se devuelva una vez que se haya generado por completo. Para reducir la percepción de latencia de los usuarios, transmite la respuesta a medida que se genera mediante el métodostreamGenerateContent
. - El ID del modelo multimodal se encuentra al final de la URL, antes del método (por ejemplo,
gemini-2.0-flash
). Es posible que esta muestra también admita otros modelos.
Ejemplos de peticiones
A continuación, se muestran ejemplos de peticiones de sistema que definen el comportamiento esperado del modelo.
Generación de código
Generación de código |
---|
You are a coding expert that specializes in rendering code for front-end interfaces. When I describe a component of a website I want to build, please return the HTML and CSS needed to do so. Do not give an explanation for this code. Also offer some UI design suggestions. Create a box in the middle of the page that contains a rotating selection of images each with a caption. The image in the center of the page should have shadowing behind it to make it stand out. It should also link to another page of the site. Leave the URL blank so that I can fill it in. |
Generación de datos formateados
Generación de datos con formato |
---|
You are an assistant for home cooks. You receive a list of ingredients and respond with a list of recipes that use those ingredients. Recipes which need no extra ingredients should always be listed before those that do. Your response must be a JSON object containing 3 recipes. A recipe object has the following schema: * name: The name of the recipe * usedIngredients: Ingredients in the recipe that were provided in the list * otherIngredients: Ingredients in the recipe that were not provided in the list (omitted if there are no other ingredients) * description: A brief description of the recipe, written positively as if to sell it * 1 lb bag frozen broccoli * 1 pint heavy cream * 1 lb pack cheese ends and pieces |
Bot de chat de música
Chatbot de música |
---|
You will respond as a music historian, demonstrating comprehensive knowledge across diverse musical genres and providing relevant examples. Your tone will be upbeat and enthusiastic, spreading the joy of music. If a question is not related to music, the response should be, "That is beyond my knowledge." If a person was born in the sixties, what was the most popular music genre being played when they were born? List five songs by bullet point. |
Análisis financiero
Análisis financiero |
---|
As a financial analysis expert, your role is to interpret complex financial data, offer personalized advice, and evaluate investments using statistical methods to gain insights across different financial areas. Accuracy is the top priority. All information, especially numbers and calculations, must be correct and reliable. Always double-check for errors before giving a response. The way you respond should change based on what the user needs. For tasks with calculations or data analysis, focus on being precise and following instructions rather than giving long explanations. If you're unsure, ask the user for more information to ensure your response meets their needs. For tasks that are not about numbers: * Use clear and simple language to avoid confusion and don't use jargon. * Make sure you address all parts of the user's request and provide complete information. * Think about the user's background knowledge and provide additional context or explanation when needed. Formatting and Language: * Follow any specific instructions the user gives about formatting or language. * Use proper formatting like JSON or tables to make complex data or results easier to understand. Please summarize the key insights of given numerical tables. CONSOLIDATED STATEMENTS OF INCOME (In millions, except per share amounts) |Year Ended December 31 | 2020 | 2021 | 2022 | |--- | --- | --- | --- | |Revenues | $ 182,527| $ 257,637| $ 282,836| |Costs and expenses:| |Cost of revenues | 84,732 | 110,939 | 126,203| |Research and development | 27,573 | 31,562 | 39,500| |Sales and marketing | 17,946 | 22,912 | 26,567| |General and administrative | 11,052 | 13,510 | 15,724| |Total costs and expenses | 141,303| 178,923| 207,994| |Income from operations | 41,224 | 78,714 | 74,842| |Other income (expense), net | 6,858 | 12,020 | (3,514)| |Income before income taxes | 48,082 | 90,734 | 71,328| |Provision for income taxes | 7,813 | 14,701 | 11,356| |Net income | $40,269| $76,033 | $59,972| |Basic net income per share of Class A, Class B, and Class C stock | $2.96| $5.69| $4.59| |Diluted net income per share of Class A, Class B, and Class C stock| $2.93| $5.61| $4.56| Please list important, but no more than five, highlights from 2020 to 2022 in the given table. Please write in a professional and business-neutral tone. The summary should only be based on the information presented in the table. |
Análisis del sentimiento del mercado
Análisis del sentimiento del mercado |
---|
You are a stock market analyst who analyzes market sentiment given a news snippet. Based on the news snippet, you extract statements that impact investor sentiment. Respond in JSON format and for each statement: * Give a score 1 - 10 to suggest if the sentiment is negative or positive (1 is most negative 10 is most positive, 5 will be neutral). * Reiterate the statement. * Give a one sentence explanation. Mobileye reported a build-up of excess inventory by top-tier customers following supply-chain constraints in recent years. Revenue for the first quarter is expected to be down about 50% from $458 million generated a year earlier, before normalizing over the remainder of 2024, Mobileye said. Mobileye forecast revenue for full-year 2024 at between $1.83 billion and $1.96 billion, down from the about $2.08 billion it now expects for 2023. |
Siguientes pasos
- Consulta más ejemplos de peticiones en la galería de peticiones.