Gestion des requêtes

Vertex AI propose des outils pour gérer les modèles et les données de prompt. Les modèles de prompt peuvent être gérés par version et utilisés en tandem avec des modèles génératifs sur Vertex AI. Chaque prompt peut être assemblé et géré par version dans Vertex AI Studio ou le SDK Vertex AI.

Le SDK Vertex AI inclut le module vertexai.preview.prompts afin que les prompts puissent fonctionner avec les modèles génératifs. Le module vertexai.preview.prompts permet de définir, d'enregistrer et de gérer des prompts pour générer du texte avec Gemini.

Prompt

La classe Prompt représente un prompt qui peut être utilisé pour générer du texte avec une méthode Gemini, qui encapsule les données de prompt, les variables, la configuration de la génération et d'autres informations pertinentes.

Pour créer un objet Prompt, utilisez le constructeur vertexai.preview.prompts.Prompt(). Vous pouvez définir les données de prompt, les variables et d'autres configurations dans cet objet.

Créer un prompt local et générer du contenu

SDK Vertex AI pour 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 : . Vous pouvez trouver cet ID sur la page d'accueil de la console Google Cloud .
  • location : consultez Emplacements Vertex AI.
  • prompt_name : nom à afficher du prompt créé par l'utilisateur, s'il est stocké dans une ressource en ligne.
  • prompt_data : prompt PartsType, qui peut être un modèle avec des variables ou un prompt sans variables.
  • variables : liste de dictionnaires contenant les noms et les valeurs des variables.
  • generation_config : objet GenerationConfig contenant des paramètres de génération.
  • model_name : nom de la ressource du modèle Model Garden. Vous pouvez également fournir le nom d'une ressource de point de terminaison de modèle réglé. Si aucun modèle n'est fourni, le dernier modèle par défaut est utilisé.
  • safety_settings : objet SafetySetting contenant les paramètres de sécurité de la génération.
  • system_instruction : objet PartsType représentant l'instruction système.

Après la création d'un objet Prompt, les données et propriétés de prompt représentant différentes configurations peuvent être utilisées pour générer du contenu.

Les prompts sont également compatibles avec l'appel de fonction. Pour en savoir plus, consultez Présentation de l'appel de fonction.

Enregistrer un prompt

Pour enregistrer un prompt sur une ressource en ligne accessible dans la consoleGoogle Cloud , utilisez la méthode vertexai.preview.prompts.create_version(). Cette méthode prend en entrée un objet Prompt et crée une nouvelle version du prompt dans le magasin en ligne. Un nouvel objet Prompt est renvoyé et associé à la ressource en ligne. Toutes les modifications apportées à un objet Prompt sont locales jusqu'à l'appel de create_version(). L'exemple de code suivant montre comment enregistrer un prompt :

SDK Vertex AI pour 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)

Charger un prompt enregistré

Pour charger un prompt enregistré dans la ressource en ligne, utilisez la méthode vertexai.preview.prompts.get(). Cette méthode utilise l'ID du prompt en entrée et renvoie l'objet Prompt correspondant. Cet exemple de code montre comment charger un prompt enregistré :

SDK Vertex AI pour Python

from vertexai.preview import prompts

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

Récupérer le prompt créé dans la console Google Cloud

Pour actualiser un prompt enregistré, commencez par le charger à l'aide de la méthode get(), modifiez ses propriétés si nécessaire, puis enregistrez le prompt modifié à l'aide de la méthode create_version(). Une nouvelle version du prompt est alors créée avec les informations modifiées.

SDK Vertex AI pour 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)

Lister les prompts

Pour afficher les noms à afficher et les ID de tous les prompts enregistrés dans le projetGoogle Cloud actuel, utilisez la méthode list_prompts().

SDK Vertex AI pour 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)

Lister les versions des prompts

Pour afficher les noms à afficher et les ID de toutes les versions de prompt enregistrées dans le prompt, utilisez la méthode list_versions().

SDK Vertex AI pour 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
)

Restaurer une version du prompt

Une ressource de prompt contient également un historique des versions qui stocke les versions précédentes enregistrées du prompt. Vous pouvez utiliser la méthode restore_version() pour restaurer une ancienne version en tant que dernière version du prompt. Cela renvoie un élément PromptVersionMetadata qui peut être utilisé avec un appel get() pour récupérer la nouvelle version restaurée.

SDK Vertex AI pour 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)

Supprimer un prompt

Pour supprimer la ressource en ligne associée à un ID de prompt, utilisez la méthode delete().

SDK Vertex AI pour Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")