Gestione dei prompt

Vertex AI offre strumenti per gestire i modelli di prompt e i dati dei prompt. I modelli di prompt possono essere sottoposti a controllo della versione e utilizzati in combinazione con i modelli generativi su Vertex AI. Ogni prompt può essere assemblato e sottoposto a gestione delle versioni in Vertex AI Studio o nell'SDK Vertex AI.

L'SDK Vertex AI include il modulo vertexai.preview.prompts in modo che i prompt possano funzionare con i modelli generativi. Il modulo vertexai.preview.prompts supporta la possibilità di definire, salvare e gestire i prompt per la generazione di testo con Gemini.

Prompt

La classe Prompt rappresenta un prompt che può essere utilizzato per generare testo con un metodo Gemini, che incapsula i dati, le variabili, la configurazione di generazione e altre informazioni pertinenti del prompt.

Per creare un oggetto Prompt, utilizza il costruttore vertexai.preview.prompts.Prompt(). Puoi definire i dati, le variabili e altre configurazioni del prompt all'interno di questo oggetto.

Creare un prompt locale e generare contenuti

SDK Vertex AI per 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-1.5-pro-002",
    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: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud .
  • location: consulta le località di Vertex AI.
  • prompt_name: il nome visualizzato del prompt creato dall'utente, se memorizzato in una risorsa online.
  • prompt_data: un prompt PartsType, che può essere un modello con variabili o un prompt senza variabili.
  • variables: un elenco di dizionari contenenti i nomi e i valori delle variabili.
  • generation_config: un oggetto GenerationConfig contenente parametri per la generazione.
  • model_name: nome della risorsa del modello di Model Garden. In alternativa, puoi fornire il nome di una risorsa endpoint del modello ottimizzato. Se non viene fornito alcun modello, viene utilizzato il modello più recente predefinito.
  • safety_settings: un oggetto SafetySetting contenente le impostazioni di sicurezza per la generazione.
  • system_instruction: un oggetto PartsType che rappresenta l'istruzione di sistema.

Dopo la creazione di un oggetto Prompt, i dati e le proprietà del prompt che rappresentano varie configurazioni possono essere utilizzati per generare contenuti.

I prompt supportano anche la chiamata di funzioni. Per saperne di più, consulta Introduzione alla chiamata di funzione.

Salvare un prompt

Per salvare un prompt in una risorsa online a cui è possibile accedere nella consoleGoogle Cloud , utilizza il metodo vertexai.preview.prompts.create_version(). Questo metodo prende un oggetto Prompt come input e crea una nuova versione della richiesta nel negozio online. Viene restituito un nuovo oggetto Prompt associato alla risorsa online. Eventuali aggiornamenti apportati a un oggetto Prompt sono locali fino alla chiamata di create_version(). Il seguente esempio di codice mostra come salvare un prompt:

SDK Vertex AI per Python

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

Caricare un prompt salvato

Per caricare un prompt salvato nella risorsa online, utilizza il metodo vertexai.preview.prompts.get(). Questo metodo prende l'ID prompt come input e restituisce l'oggetto Prompt corrispondente. Questo esempio di codice mostra come caricare un prompt salvato:

SDK Vertex AI per Python

from vertexai.preview import prompts 

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

Recupero della richiesta creata nella console Google Cloud

Per aggiornare un prompt salvato, caricalo prima utilizzando il metodo get(), modifica le sue proprietà in base alle esigenze e poi salva il prompt aggiornato utilizzando il metodo create_version(). Viene creata una nuova versione del prompt con le informazioni aggiornate.

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

Elenca i prompt

Per visualizzare i nomi visualizzati e gli ID prompt di tutti i prompt salvati nel progettoGoogle Cloud corrente, utilizza il list_prompts()metodo.

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

Elenca le versioni del prompt

Per visualizzare i nomi visualizzati e gli ID di tutte le versioni del prompt salvate al suo interno, utilizza il metodo list_versions().

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

Ripristinare una versione del prompt

Una risorsa prompt contiene anche la cronologia delle versioni che memorizza le versioni salvate precedenti del prompt. Puoi utilizzare il metodo restore_version() per ripristinare una versione precedente come versione più recente del prompt. Viene restituito PromptVersionMetadata che può essere utilizzato con una chiamata get() per recuperare la versione appena ripristinata.

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

Eliminare un prompt

Per eliminare la risorsa online associata a un ID prompt, utilizza il metodo delete().

SDK Vertex AI per Python

from vertexai.preview import prompts

prompts.delete(prompt_id="123456789")