Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
El optimizador sin ejemplos te permite refinar y mejorar automáticamente las instrucciones escritas por el usuario. A menudo, es posible que una instrucción no produzca la respuesta del modelo que deseas debido a un lenguaje ambiguo, falta de contexto o la inclusión de información irrelevante. Este optimizador analiza y reescribe una instrucción existente para que sea más clara, eficaz y esté mejor alineada con las capacidades del modelo, lo que, en última instancia, genera respuestas de mayor calidad.
El optimizador sin ejemplos es particularmente útil para lo siguiente:
Adaptación a las actualizaciones del modelo: Cuando actualizas a una versión más reciente de un modelo, es posible que tus instrucciones existentes ya no funcionen de manera óptima.
Mejora de la comprensión de instrucciones: Cuando la redacción de una instrucción es compleja o se puede malinterpretar, la herramienta puede reformularla para lograr la máxima claridad y precisión, lo que reduce la probabilidad de un resultado no deseado.
Existen dos maneras de usar el optimizador:
Generación de instrucciones: En lugar de escribir instrucciones complejas del sistema desde cero, puedes describir tu objetivo o tarea en lenguaje sencillo. Luego, el optimizador generará un conjunto completo y bien estructurado de instrucciones del sistema diseñadas para alcanzar tu objetivo.
Refinamiento de instrucciones: Tienes una instrucción que funciona, pero la respuesta del modelo es incoherente, se desvía ligeramente del tema o no tiene el nivel de detalle que deseas. El optimizador puede ayudarte a mejorar la instrucción para obtener un mejor resultado.
El optimizador admite la optimización de instrucciones en todos los idiomas compatibles con Gemini y está disponible a través del SDK de Vertex AI.
Es posible que tu administrador también pueda otorgarle los permisos necesarios al agente de servicio de Compute Engine mediante roles personalizados o cualquier otro rol predefinido.
Optimiza una instrucción
# Import librariesimportvertexaiimportlogging# Google Colab authenticationfromgoogle.colabimportauthPROJECT_NAME="PROJECT"auth.authenticate_user(project_id=PROJECT_NAME)# Initialize the Vertex AI clientclient=vertexai.Client(project=PROJECT_NAME,location='us-central1')# Input original prompt to optimizeprompt="""You are a professional chef. Your goal is teaching how to cook healthy cooking recipes to your apprentice.Given a question from your apprentice and some context, provide the correct answer to the question.Use the context to return a single and correct answer with some explanation."""# Optimize promptoutput=client.prompt_optimizer.optimize_prompt(prompt=prompt)# View optimized promptprint(output.model_dump_json(indent=2))
Este objeto output es de tipo OptimizeResponse y proporciona información sobre el proceso de optimización. La parte más importante es el suggested_prompt, que contiene la instrucción optimizada que puedes usar para obtener mejores resultados de tu modelo. Los otros campos, en especial applicable_guidelines, son útiles para comprender por qué y cómo se mejoró tu instrucción, lo que puede ayudarte a escribir mejores instrucciones en el futuro. Este es un ejemplo del resultado:
{"optimization_mode":"zero_shot","applicable_guidelines":[{"applicable_guideline":"Structure","suggested_improvement":"Add role definition.","text_before_change":"...","text_after_change":"Role: You are an AI assistant...\n\nTask Context:\n..."},{"applicable_guideline":"RedundancyInstructions","suggested_improvement":"Remove redundant explanation.","text_before_change":"...","text_after_change":""}],"original_prompt":"...","suggested_prompt":"Role: You are an AI assistant...\n\nTask Context:\n..."}
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)"],[],[],null,["# Zero-shot optimizer\n\nThe **zero-shot optimizer** lets you automatically refine and improve\nuser-written prompts. Often, a prompt may not produce the model response you\nwant due to ambiguous language, missing context, or the inclusion of irrelevant\ninformation. This optimizer analyzes and rewrites an existing prompt to be\nclearer, more effective, and better aligned with the model's capabilities,\nultimately leading to higher-quality responses.\n\nThe zero-shot optimizer is particularly useful for:\n\n- **Adapting to Model Updates:** When you upgrade to a newer version of a\n model, your existing prompts might no longer perform optimally.\n\n- **Enhancing Prompt Comprehension:** When the phrasing of a prompt is complex\n or could be misinterpreted, the tool can rephrase it for maximum clarity and\n precision, reducing the chance of an undesirable outcome.\n\nThere are two ways to use the optimizer:\n\n- **Instruction Generation**: Instead of writing complex system instructions\n from scratch, you can describe your goal or task in plain language. The\n optimizer will then generate a complete and well-structured set of system\n instructions designed to achieve your objective.\n\n- **Prompt Refinement**: You have a working prompt, but the model's output is\n inconsistent, slightly off-topic, or lacks the detail you want. The\n optimizer can help improve the prompt for a better output.\n\nThe optimizer supports prompt optimization in all languages supported by\nGemini and is available through the [Vertex AI\nSDK](/vertex-ai/generative-ai/docs/reference/libraries)\n\nBefore you begin\n----------------\n\n\nTo ensure that the [Compute Engine default service account](/iam/docs/service-account-types#default) has the necessary\npermissions to optimize prompts,\n\nask your administrator to grant the [Compute Engine default service account](/iam/docs/service-account-types#default) the\nfollowing IAM roles on the project:\n\n| **Important:** You must grant these roles to the [Compute Engine default service account](/iam/docs/service-account-types#default), *not* to your user account. Failure to grant the roles to the correct principal might result in permission errors.\n\n- [Vertex AI User](/iam/docs/roles-permissions/aiplatform#aiplatform.user) (`roles/aiplatform.user`)\n- [Vertex AI Service Agent](/iam/docs/roles-permissions/aiplatform#aiplatform.serviceAgent) (`roles/aiplatform.serviceAgent`)\n\n\nFor more information about granting roles, see [Manage access to projects, folders, and organizations](/iam/docs/granting-changing-revoking-access).\n\n\nYour administrator might also be able to give the [Compute Engine default service account](/iam/docs/service-account-types#default)\nthe required permissions through [custom\nroles](/iam/docs/creating-custom-roles) or other [predefined\nroles](/iam/docs/roles-overview#predefined).\n\nOptimize a prompt\n-----------------\n\n # Import libraries\n import https://cloud.google.com/python/docs/reference/vertexai/latest/\n import logging\n\n # Google Colab authentication\n from google.colab import auth\n PROJECT_NAME = \"PROJECT\"\n auth.authenticate_user(project_id=PROJECT_NAME)\n\n # Initialize the Vertex AI client\n client = https://cloud.google.com/python/docs/reference/vertexai/latest/.Client(project=PROJECT_NAME, location='us-central1')\n\n # Input original prompt to optimize\n prompt = \"\"\"You are a professional chef. Your goal is teaching how to cook healthy cooking recipes to your apprentice.\n\n Given a question from your apprentice and some context, provide the correct answer to the question.\n Use the context to return a single and correct answer with some explanation.\n \"\"\"\n\n # Optimize prompt\n output = client.prompt_optimizer.optimize_prompt(prompt=prompt)\n\n # View optimized prompt\n print(output.model_dump_json(indent=2))\n\nThis `output` object is of type `OptimizeResponse` and provides information\nabout the optimization process. The most important part is the\n`suggested_prompt` which contains the optimized prompt that you can use to get\nbetter results from your model. The other fields, especially\n`applicable_guidelines`, are useful for understanding why and how your prompt\nwas improved, which can help you write better prompts in the future. Here's an\nexample of the output: \n\n {\n \"optimization_mode\": \"zero_shot\",\n \"applicable_guidelines\": [\n {\n \"applicable_guideline\": \"Structure\",\n \"suggested_improvement\": \"Add role definition.\",\n \"text_before_change\": \"...\",\n \"text_after_change\": \"Role: You are an AI assistant...\\n\\nTask Context:\\n...\"\n },\n {\n \"applicable_guideline\": \"RedundancyInstructions\",\n \"suggested_improvement\": \"Remove redundant explanation.\",\n \"text_before_change\": \"...\",\n \"text_after_change\": \"\"\n }\n ],\n \"original_prompt\": \"...\",\n \"suggested_prompt\": \"Role: You are an AI assistant...\\n\\nTask Context:\\n...\"\n }"]]