Administración de instrucciones

Vertex AI ofrece herramientas para ayudarte a administrar las plantillas y los datos de instrucciones. Las plantillas de instrucciones pueden tener versiones y usarse en conjunto con modelos generativos en Vertex AI. Cada instrucción se puede ensamblar y versionar en Vertex AI Studio o en el SDK de Vertex AI.

El SDK de Vertex AI incluye el módulo vertexai.preview.prompts para que las instrucciones puedan funcionar con modelos generativos. El módulo vertexai.preview.prompts admite la capacidad de definir, guardar y administrar instrucciones para generar texto con Gemini.

Prompt

La clase Prompt representa una instrucción que se puede usar para generar texto con un método de Gemini, que encapsula los datos de la instrucción, las variables, la configuración de generación y otra información pertinente.

Para crear un objeto Prompt, usa el constructor vertexai.preview.prompts.Prompt(). Puedes definir los datos de la instrucción, las variables y otros parámetros de configuración dentro de este objeto.

Crea una instrucción local y genera contenido

SDK de Vertex AI para Python

Python

import vertexai
from vertexai.preview import prompts
from vertexai.preview.prompts import Prompt

# from vertexai.generative_models import GenerationConfig, SafetySetting # Optional

# Initialize vertexai
vertexai.init(project=PROJECT_ID, location="us-central1")

# Create local Prompt
local_prompt = Prompt(
    prompt_name="movie-critic",
    prompt_data="Compare the movies {movie1} and {movie2}.",
    variables=[
        {"movie1": "The Lion King", "movie2": "Frozen"},
        {"movie1": "Inception", "movie2": "Interstellar"},
    ],
    model_name="gemini-2.0-flash-001",
    system_instruction="You are a movie critic. Answer in a short sentence.",
    # generation_config=GenerationConfig, # Optional,
    # safety_settings=SafetySetting, # Optional,
)

# Generate content using the assembled prompt for each variable set.
for i in range(len(local_prompt.variables)):
    response = local_prompt.generate_content(
        contents=local_prompt.assemble_contents(**local_prompt.variables[i])
    )
    print(response)

# Save a version
prompt1 = prompts.create_version(prompt=local_prompt)

print(prompt1)

# Example response
# Assembled prompt replacing: 1 instances of variable movie1, 1 instances of variable movie2
# Assembled prompt replacing: 1 instances of variable movie1, 1 instances of variable movie2
# Created prompt resource with id 12345678910.....
  • project: . Puedes encontrar estos IDs en la página de bienvenida de la consola de Google Cloud .
  • location: Consulta las ubicaciones de Vertex AI.
  • prompt_name: Es el nombre visible de la instrucción creada por el usuario, si se almacena en un recurso en línea.
  • prompt_data: Es una instrucción PartsType, que puede ser una plantilla con variables o una instrucción sin variables.
  • variables: Una lista de diccionarios que contienen los nombres y valores de las variables.
  • generation_config: Es un objeto GenerationConfig que contiene parámetros para la generación.
  • model_name: Es el nombre del recurso del modelo de Model Garden. Como alternativa, se puede proporcionar un nombre de recurso del extremo del modelo ajustado. Si no se proporciona ningún modelo, se usa el modelo predeterminado más reciente.
  • safety_settings: Es un objeto SafetySetting que contiene parámetros de configuración de seguridad para la generación.
  • system_instruction: Es un objeto PartsType que representa la instrucción del sistema.

Después de crear un objeto Prompt, se pueden usar los datos y las propiedades de la instrucción que representan varias configuraciones para generar contenido.

Las instrucciones también admiten llamadas a funciones. Consulta la Introducción a la llamada a función para obtener más información.

Cómo guardar una instrucción

Para guardar una instrucción en un recurso en línea al que se puede acceder en la consola deGoogle Cloud , usa el método vertexai.preview.prompts.create_version(). Este método toma un objeto Prompt como entrada y crea una nueva versión de la instrucción en la tienda en línea. Se devuelve un nuevo objeto Prompt asociado al recurso en línea. Las actualizaciones que se realicen en un objeto Prompt serán locales hasta que se llame a create_version(). En el siguiente muestra de código, se muestra cómo guardar una instrucción:

SDK de Vertex AI para Python

from vertexai.preview import prompts

# Save Prompt to online resource.
# Returns a new Prompt object associated with the online resource.
prompt1 = prompts.create_version(prompt=prompt)

Cómo cargar un mensaje guardado

Para cargar una instrucción guardada en el recurso en línea, usa el método vertexai.preview.prompts.get(). Este método toma el ID de la instrucción como entrada y devuelve el objeto Prompt correspondiente. En este ejemplo de código, se muestra cómo cargar una instrucción guardada:

SDK de Vertex AI para Python

from vertexai.preview import prompts

# Get prompt
prompt = prompts.get(prompt_id="123456789")

Recupera la instrucción creada en la consola de Google Cloud

Para actualizar una instrucción guardada, primero carga la instrucción con el método get(), modifica sus propiedades según sea necesario y, luego, guarda la instrucción actualizada con el método create_version(). Esto crea una nueva versión de la instrucción con la información actualizada.

SDK de Vertex AI para Python

from vertexai.preview import prompts
from vertexai.preview.prompts import Prompt

# Get prompt
prompt = prompts.get(prompt_id="123456789")

# Generate content using the assembled prompt (a prompt without variables)
prompt.generate_content(
  contents=prompt.assemble_contents()
)

# Update prompt (changes are local until create_version is called)
prompt.prompt_data = "new prompt"

# Save Prompt to online resource. Since the prompt is associated with a prompt resource, it creates a new version under the same prompt_id. Returns a new Prompt object associated with the online resource
prompt1 = prompts.create_version(prompt=prompt)

Instrucciones de lista

Para ver los nombres visibles y los IDs de instrucciones de todas las instrucciones guardadas en elGoogle Cloud proyecto actual, usa el método list_prompts().

SDK de Vertex AI para Python

from vertexai.preview import prompts

prompts_metadata = prompts.list()

# Get a prompt from the list
prompt1 = prompts.get(prompt_id=prompts_metadata[0].prompt_id)

Enumera las versiones de instrucciones

Para ver los nombres visibles y los IDs de versión de todas las versiones de la instrucción guardadas en ella, usa el método list_versions() .

SDK de Vertex AI para Python

from vertexai.preview import prompts

prompt_versions_metadata = prompts.list_versions(prompt_id="123456789")

# Get a specific prompt version from the versions metadata list
prompt1 = prompts.get(
    prompt_id=prompt_versions_metadata[3].prompt_id,
    version_id=prompt_versions_metadata[3].version_id
)

Cómo restablecer una versión de instrucción

Un recurso de mensaje también contiene un historial de versiones que almacena las versiones guardadas anteriores del mensaje. Puedes usar el método restore_version() para restablecer una versión anterior como la versión más reciente de la instrucción. Esto devuelve PromptVersionMetadata que se puede usar con una llamada a get() para recuperar la versión recién restablecida.

SDK de Vertex AI para Python

from vertexai.preview import prompts

# Restore to prompt version id 1 (original)
prompt_version_metadata = prompts.restore_version(prompt_id="123456789", version_id="1")

# Fetch the newly restored latest version of the prompt
prompt1 = prompts.get(prompt_id=prompt_version_metadata.prompt_id)

Cómo borrar un mensaje

Para borrar el recurso en línea asociado con un ID de instrucción, usa el método delete().

SDK de Vertex AI para Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")