Gestión de peticiones

Vertex AI ofrece herramientas para gestionar plantillas de peticiones y datos de peticiones. Las plantillas de peticiones se pueden versionar y usar junto con modelos generativos en Vertex AI. Cada petició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 peticiones puedan funcionar con modelos generativos. El módulo vertexai.preview.prompts permite definir, guardar y gestionar peticiones para generar texto con Gemini.

Prompt

La clase Prompt representa una petición que se puede usar para generar texto con un método de Gemini, que encapsula los datos de la petició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 petición, las variables y otras configuraciones en este objeto.

Crear una petición local y generar 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 Google Cloud consola.
  • location: consulta las ubicaciones de Vertex AI.
  • prompt_name: el nombre visible de la petición creada por el usuario, si se almacena en un recurso online.
  • prompt_data: una petición PartsType, que puede ser una plantilla con variables o una petición sin variables.
  • variables: lista de diccionarios que contiene los nombres y los valores de las variables.
  • generation_config: objeto GenerationConfig que contiene los parámetros de generación.
  • model_name: nombre del recurso del modelo de Model Garden. También se puede proporcionar un nombre de recurso de endpoint de modelo ajustado. Si no se proporciona ningún modelo, se usará el modelo más reciente predeterminado.
  • safety_settings: objeto SafetySetting que contiene los ajustes de seguridad para la generación.
  • system_instruction: objeto PartsType que representa la instrucción del sistema.

Una vez creado un objeto Prompt, se pueden usar los datos y las propiedades de la petición que representan varias configuraciones para generar contenido.

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

Guardar una petición

Para guardar una petición en un recurso online al que se puede acceder en laGoogle Cloud consola, 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 petición en la tienda online. Se devuelve un nuevo objeto Prompt asociado al recurso online. Los cambios que se hagan en un objeto Prompt son locales hasta que se llama a create_version(). En el siguiente ejemplo de código se muestra cómo guardar una petició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)

Cargar una petición guardada

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

SDK de Vertex AI para Python

from vertexai.preview import prompts

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

Recuperar una petición creada en la Google Cloud consola

Para actualizar una petición guardada, primero cárgala con el método get(), modifica sus propiedades según sea necesario y, a continuación, guarda la petición actualizada con el método create_version(). Se creará una nueva versión de la petició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)

Mostrar peticiones

Para ver los nombres visibles y los IDs de las peticiones guardadas en el proyectoGoogle Cloud actual, usa el list_prompts()método.

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)

Mostrar versiones de peticiones

Para ver los nombres visibles y los IDs de versión de todas las versiones de la petición guardadas en la petición, 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
)

Restaurar una versión de una petición

Un recurso de petición también contiene un historial de versiones que almacena las versiones guardadas anteriores de la petición. Puedes usar el método restore_version() para restaurar una versión anterior como la más reciente de la petición. Devuelve PromptVersionMetadata, que se puede usar con una llamada get() para obtener la versión restaurada.

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)

Eliminar una petición

Para eliminar el recurso online asociado a un ID de petición, usa el método delete().

SDK de Vertex AI para Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")