La famiglia di modelli Gemini include modelli che funzionano con le richieste di prompt multimodali. Il termine multimodale indica che puoi utilizzare più di una modalità, o tipo di input, in un prompt. I modelli che non sono multimodali accettano richieste solo con testo. Le modalità possono includere testo, audio, video e altro ancora.
Esistono diversi modi per implementare soluzioni multimodali utilizzando l'API Gemini, tra cui gli SDK Python, Node.js, Java e Go, la console Google Cloud e l'API REST. Gli esempi di codice più avanti in questo documento mostrano come creare soluzioni multimodali utilizzando queste opzioni.
I modelli multimodali Gemini sono:
- Gemini 1.5 Flash
- Gemini 1.5 Pro
- Gemini 1.0 Pro Vision
La seguente tabella indica le modalità utilizzate da ciascuna API Gemini multimodale in una richiesta di prompt.
Modello | Testo | Codice | Immagini | Audio | Video | Video/audio | |
---|---|---|---|---|---|---|---|
Gemini 1.5 Flash | |||||||
Gemini 1.5 Pro | |||||||
Gemini 1.0 Pro Vision | |||||||
Gemini 1.0 Pro |
Per esplorare un modello multimodale nella console Google Cloud, seleziona la scheda del modello in Model Garden:
- Vai alla scheda del modello Flash Gemini 1.5
- Vai alla scheda del modello Gemini 1.5 Pro
- Vai alla scheda del modello Gemini 1.0 Pro Vision
Per un elenco delle lingue supportate dai modelli Gemini, consulta le informazioni sul modello Supporto delle lingue. Per scoprire di più su come progettare prompt multimodali, consulta Progettare prompt multimodali. Se stai cercando un modo per utilizzare Gemini direttamente dalle app mobile e web, consulta gli SDK dell'IA di Google per Android, Swift e web.
Differenze nel modello multimodale
Le differenze tra i modelli multimodali Gemini sono specificate nelle tabelle seguenti. Puoi utilizzare queste informazioni per decidere quale modello è più adatto a te.
Testo
Di seguito sono riportate alcune delle differenze nella modalità di testo tra i modelli multimodali di Gemini:
Modello | Dettagli sulla modalità di testo |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La lunghezza del contesto è di 1 milione di token,che equivale a circa un libro di 4000 pagine. In questo modo il modello consente di generare testo nel formato lungo, ad esempio libri, più PDF o manuali dell'utente. |
Gemini 1.0 Pro Vision | Il numero massimo di token è 16.384 o circa un libro di 128 pagine assumendo 250 parole per pagina. Questo valore massimo include sia i token di input che quelli di output. Il numero massimo di token di output è 2048. |
Codice
Di seguito sono riportate alcune delle differenze tra i modelli multimodali Gemini quando si lavora con il codice:
Modello | Dettagli sulla modalità di codice |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La lunghezza del contesto è di 1 milione di token, che consente al modello di funzionare con un intero codebase o un intero codebase dell'applicazione. |
Gemini 1.0 Pro Vision | Il numero massimo di token è 16.384 o circa un libro di 128 pagine assumendo 250 parole per pagina. Questo valore massimo include sia i token di input che quelli di output. Il numero massimo di token di output è 2048. |
Immagine
Di seguito sono riportate alcune delle differenze nella modalità delle immagini tra i modelli multimodali di Gemini:
Modello | Dettagli sulla modalità delle immagini |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
Il numero massimo di immagini per prompt è 3000. |
Gemini 1.0 Pro Vision | Il numero massimo di immagini per prompt è 16. |
Audio (solo voce)
Di seguito sono riportate alcune delle differenze nella modalità audio tra i modelli multimodali di Gemini:
Modello | Dettagli sulla modalità audio |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
Il numero massimo di ore di audio per prompt è di circa 8, 4 ore o fino a 1 milione di token. Il parlato può essere compreso per il riassunto, la trascrizione e la traduzione di audio. |
Gemini 1.0 Pro Vision | L'audio non è supportato. |
Video
Di seguito sono riportate alcune delle differenze nella modalità video tra i modelli multimodali di Gemini:
Modello | Dettagli sulla modalità video |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
La durata massima del video con audio è di circa 50 minuti. La durata massima per i video senza audio è di 1 ora. Il numero massimo di video per prompt è 10. Il modello è in grado di utilizzare dati sia video che audio per rispondere alla richiesta. Ad esempio, può riassumere un video utilizzando sia i contenuti visivi sia il parlato. |
Gemini 1.0 Pro Vision | La durata massima del video è di 2 minuti. Il numero massimo di video per richiesta è 1. L'audio del video viene ignorato. |
Di seguito sono riportate alcune delle differenze nella modalità PDF tra i modelli multimodali di Gemini:
Modello | Dettagli sulla modalità dei PDF |
---|---|
Gemini 1.5 Flash, Gemini 1.5 Pro |
Il numero massimo di pagine per prompt è 300. La dimensione massima di un file PDF è 30 MB. |
Gemini 1.0 Pro Vision | Il numero massimo di pagine per prompt è 16. La dimensione massima di un file PDF è 30 MB. |
Guida rapida
Utilizza i seguenti esempi di codice per iniziare a utilizzare l'API Gemini. Ogni esempio di codice dimostra di lavorare con una modalità diversa. Alcuni esempi di codice in questo documento funzionano con tutti i modelli multimodali Gemini, mentre altri funzionano solo con Gemini 1.5 Pro. Ogni esempio di codice specifica i modelli con cui funziona.
Per eseguire test e iterazioni di prompt multimodali, consigliamo di utilizzare la console Google Cloud. Per inviare un prompt multimodale in modo programmatico al modello, puoi utilizzare l'API REST, l'SDK Vertex AI per Python o una delle altre librerie e SDK supportati mostrati nelle seguenti schede.
Immagine singola
Gli esempi di codice mostrano come identificare i contenuti di un'immagine.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Java di Vertex AI per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Per una risposta non in modalità flusso, utilizza il metodo
generateContent
.
public GenerateContentResponse generateContent(Content content)
Codice di esempio
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida per l'IA generativa mediante l'SDK Node.js. Per saperne di più, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in streaming, utilizza il metodo generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Codice di esempio
REST
Puoi utilizzare REST per testare un prompt di testo utilizzando l'API Vertex AI per inviare una richiesta POST all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- GENERATE_RESPONSE_METHOD: il tipo di risposta che vuoi che il modello generi.
Scegli un metodo che generi il modo in cui vuoi che venga restituita la risposta del modello:
streamGenerateContent
: la risposta viene riprodotta in streaming mentre viene generata per ridurre la percezione della latenza da parte di un pubblico umano.generateContent
: la risposta viene restituita dopo essere stata generata completamente.
- LOCATION: la regione in cui elaborare la richiesta. Le opzioni disponibili sono le seguenti:
Fai clic per espandere le regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale
che vuoi utilizzare. Le opzioni sono:
gemini-1.0-pro-vision
- ROLE:
il ruolo in una conversazione associato ai contenuti. È necessario specificare un ruolo
anche nei casi d'uso a turno singolo.
I valori accettati includono:
USER
: specifica i contenuti inviati da te.
- TEXT: le istruzioni di testo da includere nel prompt.
- B64_BASE: la codifica Base64 dell'immagine, del PDF o del video da includere in linea nel prompt. Quando includi contenuti multimediali incorporati, devi anche specificare MIMETYPE.
- FILE_URI: l'URI Cloud Storage dell'immagine o del video da includere nel prompt. Il bucket in cui viene archiviato il file deve trovarsi nello stesso progetto Google Cloud che invia la richiesta. Devi anche specificare MIMETYPE.
- MIME_TYPE:
il tipo multimediale dell'immagine, del PDF o del video specificato nei campi
data
ofileUri
. I valori accettati includono:Fai clic per espandere i tipi MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
la categoria di sicurezza per cui configurare una soglia. I valori accettati includono:
Fai clic per espandere le categorie di sicurezza
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
la soglia per il blocco delle risposte che potrebbero appartenere alla categoria di sicurezza specificata in base alla
probabilità. I valori accettati includono:
Fai clic per espandere le soglie di blocco
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(valore predefinito)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
blocca di più, mentreBLOCK_ONLY_HIGH
lo blocca meno. - TEMPERATURE:
la temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicati
topP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
- TOP_P:
Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi top-K) al meno probabile finché la somma delle loro probabilità equivale al valore top-P. Ad esempio, se i token A, B e C hanno una probabilità di
0,3, 0,2 e 0,1 e il valore di top-P è
0.5
, il modello selezionerà A o B come token successivo utilizzando la temperatura ed esclude C come candidato.Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- TOP_K:
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a
1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- MAX_OUTPUT_TOKENS: numero massimo di token che è possibile generare nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.
Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- STOP_SEQUENCES:
specifica un elenco di stringhe che indicano al modello di interrompere la generazione di testo se una delle stringhe viene rilevata nella risposta. Se una stringa compare più volte nella risposta, la risposta viene troncata nel punto in cui è stata rilevata per la prima volta.
Le stringhe sono sensibili alle maiuscole.
Ad esempio, se seguente è la risposta restituita quandostopSequences
non è specificato:
public static string reverse(string myString)
La risposta restituita constopSequences
impostato su["Str", "reverse"]
è:
public static string
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Corpo JSON della richiesta:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON simile alla seguente.
Comando curl di esempio
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Console
Per inviare un prompt multimodale utilizzando la console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Studio.
- In Progettazione di prompt (a turno singolo), fai clic su Apri.
Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per la temperatura.
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicatitopP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
Limite di token: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il limite massimo di output.
Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- Aggiungi sequenza di interruzioni: inserisci una sequenza di interruzioni, ovvero una serie di caratteri (spazi inclusi) che interrompe la generazione di risposte se il modello la rileva. La sequenza non è inclusa nella risposta. Puoi aggiungere fino a cinque sequenze di interruzioni.
- (Facoltativo) Per configurare parametri avanzati, fai clic su Avanzate e configura come segue:
Top-K: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-K.
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- Top-P: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-P.
I token vengono selezionati dal più probabile al meno probabile, finché la somma delle loro probabilità non corrisponde al valore di top-P. Per i risultati meno variabili, imposta top-P su
0
. - Abilita grounding: se abilitata, questa opzione fornisce risposte del modello basate sui fatti. Il grounding supporta solo l'input e l'output di testo. Per maggiori informazioni, consulta la Panoramica del grounding.
- Seleziona Attiva grounding.
- Fai clic su Personalizza.
- Specifica l'origine e il percorso di grounding.
- Fai clic su Salva.
- Risposte dinamiche: questa opzione non è attiva. La console Google Cloud supporta solo l'inserimento di flussi di dati, che prevede la ricezione di risposte ai prompt man mano che vengono generate.
- Per caricare contenuti multimediali, ad esempio file PDF, MP4, WAV e JPG, procedi nel seguente modo:
- Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
- Fai clic su Inserisci contenuti multimediali e seleziona un'origine. Se scegli Google Drive come origine, devi scegliere un account e concedere a Vertex AI Studio il consenso per accedere al tuo account la prima volta che selezioni questa opzione. Per caricare più file, ripeti questo passaggio. Puoi caricare più immagini con una dimensione totale dei prompt di 10 MB. Un singolo file non può superare i 7 MB.
- Vai al file da caricare, fai clic sul file e fai clic su Seleziona. La miniatura del file viene visualizzata nel riquadro Prompt.
- Fai clic su Invia e la risposta viene generata.
- (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.
- (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Genera codice.
- (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.
Fai clic per espandere le configurazioni avanzate
PDF singolo
Gli esempi di codice mostrano come includere un PDF in una richiesta di prompt utilizzando l'SDK Vertex AI per Python.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Java di Vertex AI per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Per una risposta non in modalità flusso, utilizza il metodo
generateContent
.
public GenerateContentResponse generateContent(Content content)
Codice di esempio
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida per l'IA generativa mediante l'SDK Node.js. Per saperne di più, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in streaming, utilizza il metodo generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Codice di esempio
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Console
Per inviare un prompt multimodale utilizzando la console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Studio.
- In Progettazione di prompt (a turno singolo), fai clic su Apri.
Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per la temperatura.
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicatitopP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
Limite di token: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il limite massimo di output.
Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- Aggiungi sequenza di interruzioni: inserisci una sequenza di interruzioni, ovvero una serie di caratteri (spazi inclusi) che interrompe la generazione di risposte se il modello la rileva. La sequenza non è inclusa nella risposta. Puoi aggiungere fino a cinque sequenze di interruzioni.
- (Facoltativo) Per configurare parametri avanzati, fai clic su Avanzate e configura come segue:
Top-K: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-K.
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- Top-P: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-P.
I token vengono selezionati dal più probabile al meno probabile, finché la somma delle loro probabilità non corrisponde al valore di top-P. Per i risultati meno variabili, imposta top-P su
0
. - Abilita grounding: se abilitata, questa opzione fornisce risposte del modello basate sui fatti. Il grounding supporta solo l'input e l'output di testo. Per maggiori informazioni, consulta la Panoramica del grounding.
- Seleziona Attiva grounding.
- Fai clic su Personalizza.
- Specifica l'origine e il percorso di grounding.
- Fai clic su Salva.
- Risposte dinamiche: questa opzione non è attiva. La console Google Cloud supporta solo l'inserimento di flussi di dati, che prevede la ricezione di risposte ai prompt man mano che vengono generate.
- Per caricare contenuti multimediali, ad esempio file PDF, MP4, WAV e JPG, procedi nel seguente modo:
- Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
- Fai clic su Inserisci contenuti multimediali e seleziona un'origine. Se scegli Google Drive come origine, devi scegliere un account e concedere a Vertex AI Studio il consenso per accedere al tuo account la prima volta che selezioni questa opzione. Per caricare più file, ripeti questo passaggio. Puoi caricare più immagini con una dimensione totale dei prompt di 10 MB. Un singolo file non può superare i 7 MB.
- Vai al file da caricare, fai clic sul file e fai clic su Seleziona. La miniatura del file viene visualizzata nel riquadro Prompt.
- Fai clic su Invia e la risposta viene generata.
- (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.
- (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Genera codice.
- (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.
Fai clic per espandere le configurazioni avanzate
Video singolo
Gli esempi di codice mostrano come includere un video in una richiesta di prompt.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Java di Vertex AI per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Per una risposta non in modalità flusso, utilizza il metodo
generateContent
.
public GenerateContentResponse generateContent(Content content)
Codice di esempio
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida per l'IA generativa mediante l'SDK Node.js. Per saperne di più, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in streaming, utilizza il metodo generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Codice di esempio
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI Go per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Per una risposta non in streaming, utilizza il metodo GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Codice di esempio
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
Puoi utilizzare REST per testare un prompt di testo utilizzando l'API Vertex AI per inviare una richiesta POST all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- GENERATE_RESPONSE_METHOD: il tipo di risposta che vuoi che il modello generi.
Scegli un metodo che generi il modo in cui vuoi che venga restituita la risposta del modello:
streamGenerateContent
: la risposta viene riprodotta in streaming mentre viene generata per ridurre la percezione della latenza da parte di un pubblico umano.generateContent
: la risposta viene restituita dopo essere stata generata completamente.
- LOCATION: la regione in cui elaborare la richiesta. Le opzioni disponibili sono le seguenti:
Fai clic per espandere le regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale
che vuoi utilizzare. Le opzioni sono:
gemini-1.0-pro-vision
- ROLE:
il ruolo in una conversazione associato ai contenuti. È necessario specificare un ruolo
anche nei casi d'uso a turno singolo.
I valori accettati includono:
USER
: specifica i contenuti inviati da te.
- TEXT: le istruzioni di testo da includere nel prompt.
- B64_BASE: la codifica Base64 dell'immagine, del PDF o del video da includere in linea nel prompt. Quando includi contenuti multimediali incorporati, devi anche specificare MIMETYPE.
- FILE_URI: l'URI Cloud Storage dell'immagine o del video da includere nel prompt. Il bucket in cui viene archiviato il file deve trovarsi nello stesso progetto Google Cloud che invia la richiesta. Devi anche specificare MIMETYPE.
- MIME_TYPE:
il tipo multimediale dell'immagine, del PDF o del video specificato nei campi
data
ofileUri
. I valori accettati includono:Fai clic per espandere i tipi MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
la categoria di sicurezza per cui configurare una soglia. I valori accettati includono:
Fai clic per espandere le categorie di sicurezza
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
la soglia per il blocco delle risposte che potrebbero appartenere alla categoria di sicurezza specificata in base alla
probabilità. I valori accettati includono:
Fai clic per espandere le soglie di blocco
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(valore predefinito)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
blocca di più, mentreBLOCK_ONLY_HIGH
lo blocca meno. - TEMPERATURE:
la temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicati
topP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
- TOP_P:
Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi top-K) al meno probabile finché la somma delle loro probabilità equivale al valore top-P. Ad esempio, se i token A, B e C hanno una probabilità di
0,3, 0,2 e 0,1 e il valore di top-P è
0.5
, il modello selezionerà A o B come token successivo utilizzando la temperatura ed esclude C come candidato.Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- TOP_K:
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a
1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- MAX_OUTPUT_TOKENS: numero massimo di token che è possibile generare nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.
Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- STOP_SEQUENCES:
specifica un elenco di stringhe che indicano al modello di interrompere la generazione di testo se una delle stringhe viene rilevata nella risposta. Se una stringa compare più volte nella risposta, la risposta viene troncata nel punto in cui è stata rilevata per la prima volta.
Le stringhe sono sensibili alle maiuscole.
Ad esempio, se seguente è la risposta restituita quandostopSequences
non è specificato:
public static string reverse(string myString)
La risposta restituita constopSequences
impostato su["Str", "reverse"]
è:
public static string
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Corpo JSON della richiesta:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON simile alla seguente.
Comando curl di esempio
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Console
Per inviare un prompt multimodale utilizzando la console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Studio.
- In Progettazione di prompt (a turno singolo), fai clic su Apri.
Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per la temperatura.
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicatitopP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
Limite di token: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il limite massimo di output.
Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- Aggiungi sequenza di interruzioni: inserisci una sequenza di interruzioni, ovvero una serie di caratteri (spazi inclusi) che interrompe la generazione di risposte se il modello la rileva. La sequenza non è inclusa nella risposta. Puoi aggiungere fino a cinque sequenze di interruzioni.
- (Facoltativo) Per configurare parametri avanzati, fai clic su Avanzate e configura come segue:
Top-K: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-K.
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- Top-P: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-P.
I token vengono selezionati dal più probabile al meno probabile, finché la somma delle loro probabilità non corrisponde al valore di top-P. Per i risultati meno variabili, imposta top-P su
0
. - Abilita grounding: se abilitata, questa opzione fornisce risposte del modello basate sui fatti. Il grounding supporta solo l'input e l'output di testo. Per maggiori informazioni, consulta la Panoramica del grounding.
- Seleziona Attiva grounding.
- Fai clic su Personalizza.
- Specifica l'origine e il percorso di grounding.
- Fai clic su Salva.
- Risposte dinamiche: questa opzione non è attiva. La console Google Cloud supporta solo l'inserimento di flussi di dati, che prevede la ricezione di risposte ai prompt man mano che vengono generate.
- Per caricare contenuti multimediali, ad esempio file PDF, MP4, WAV e JPG, procedi nel seguente modo:
- Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
- Fai clic su Inserisci contenuti multimediali e seleziona un'origine. Se scegli Google Drive come origine, devi scegliere un account e concedere a Vertex AI Studio il consenso per accedere al tuo account la prima volta che selezioni questa opzione. Per caricare più file, ripeti questo passaggio. Puoi caricare più immagini con una dimensione totale dei prompt di 10 MB. Un singolo file non può superare i 7 MB.
- Vai al file da caricare, fai clic sul file e fai clic su Seleziona. La miniatura del file viene visualizzata nel riquadro Prompt.
- Fai clic su Invia e la risposta viene generata.
- (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.
- (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Genera codice.
- (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.
Fai clic per espandere le configurazioni avanzate
Audio singolo
Gli esempi di codice mostrano come utilizzare un file audio per riassumere un podcast. Questo esempio funziona solo con Gemini 1.5 Pro.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Console
Per inviare un prompt multimodale utilizzando la console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Studio.
- In Progettazione di prompt (a turno singolo), fai clic su Apri.
Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per la temperatura.
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicatitopP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
Limite di token: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il limite massimo di output.
Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- Aggiungi sequenza di interruzioni: inserisci una sequenza di interruzioni, ovvero una serie di caratteri (spazi inclusi) che interrompe la generazione di risposte se il modello la rileva. La sequenza non è inclusa nella risposta. Puoi aggiungere fino a cinque sequenze di interruzioni.
- (Facoltativo) Per configurare parametri avanzati, fai clic su Avanzate e configura come segue:
Top-K: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-K.
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- Top-P: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-P.
I token vengono selezionati dal più probabile al meno probabile, finché la somma delle loro probabilità non corrisponde al valore di top-P. Per i risultati meno variabili, imposta top-P su
0
. - Abilita grounding: se abilitata, questa opzione fornisce risposte del modello basate sui fatti. Il grounding supporta solo l'input e l'output di testo. Per maggiori informazioni, consulta la Panoramica del grounding.
- Seleziona Attiva grounding.
- Fai clic su Personalizza.
- Specifica l'origine e il percorso di grounding.
- Fai clic su Salva.
- Risposte dinamiche: questa opzione non è attiva. La console Google Cloud supporta solo l'inserimento di flussi di dati, che prevede la ricezione di risposte ai prompt man mano che vengono generate.
- Per caricare contenuti multimediali, ad esempio file PDF, MP4, WAV e JPG, procedi nel seguente modo:
- Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
- Fai clic su Inserisci contenuti multimediali e seleziona un'origine. Se scegli Google Drive come origine, devi scegliere un account e concedere a Vertex AI Studio il consenso per accedere al tuo account la prima volta che selezioni questa opzione. Per caricare più file, ripeti questo passaggio. Puoi caricare più immagini con una dimensione totale dei prompt di 10 MB. Un singolo file non può superare i 7 MB.
- Vai al file da caricare, fai clic sul file e fai clic su Seleziona. La miniatura del file viene visualizzata nel riquadro Prompt.
- Fai clic su Invia e la risposta viene generata.
- (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.
- (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Genera codice.
- (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.
Fai clic per espandere le configurazioni avanzate
Esempi avanzati
I seguenti esempi sono più complessi rispetto agli esempi precedenti.
Più immagini
Gli esempi di codice mostrano come includere più immagini in una richiesta di prompt.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Java di Vertex AI per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Per una risposta non in modalità flusso, utilizza il metodo
generateContent
.
public GenerateContentResponse generateContent(Content content)
Codice di esempio
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida per l'IA generativa mediante l'SDK Node.js. Per saperne di più, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in streaming, utilizza il metodo generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Codice di esempio
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI Go per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Per una risposta non in streaming, utilizza il metodo GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Codice di esempio
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
REST
Puoi utilizzare REST per testare un prompt di testo utilizzando l'API Vertex AI per inviare una richiesta POST all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- GENERATE_RESPONSE_METHOD: il tipo di risposta che vuoi che il modello generi.
Scegli un metodo che generi il modo in cui vuoi che venga restituita la risposta del modello:
streamGenerateContent
: la risposta viene riprodotta in streaming mentre viene generata per ridurre la percezione della latenza da parte di un pubblico umano.generateContent
: la risposta viene restituita dopo essere stata generata completamente.
- LOCATION: la regione in cui elaborare la richiesta. Le opzioni disponibili sono le seguenti:
Fai clic per espandere le regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale
che vuoi utilizzare. Le opzioni sono:
gemini-1.0-pro-vision
- ROLE:
il ruolo in una conversazione associato ai contenuti. È necessario specificare un ruolo
anche nei casi d'uso a turno singolo.
I valori accettati includono:
USER
: specifica i contenuti inviati da te.
- TEXT: le istruzioni di testo da includere nel prompt.
- B64_BASE: la codifica Base64 dell'immagine, del PDF o del video da includere in linea nel prompt. Quando includi contenuti multimediali incorporati, devi anche specificare MIMETYPE.
- FILE_URI: l'URI Cloud Storage dell'immagine o del video da includere nel prompt. Il bucket in cui viene archiviato il file deve trovarsi nello stesso progetto Google Cloud che invia la richiesta. Devi anche specificare MIMETYPE.
- MIME_TYPE:
il tipo multimediale dell'immagine, del PDF o del video specificato nei campi
data
ofileUri
. I valori accettati includono:Fai clic per espandere i tipi MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:
la categoria di sicurezza per cui configurare una soglia. I valori accettati includono:
Fai clic per espandere le categorie di sicurezza
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:
la soglia per il blocco delle risposte che potrebbero appartenere alla categoria di sicurezza specificata in base alla
probabilità. I valori accettati includono:
Fai clic per espandere le soglie di blocco
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(valore predefinito)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
blocca di più, mentreBLOCK_ONLY_HIGH
lo blocca meno. - TEMPERATURE:
la temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicati
topP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
- TOP_P:
Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi top-K) al meno probabile finché la somma delle loro probabilità equivale al valore top-P. Ad esempio, se i token A, B e C hanno una probabilità di
0,3, 0,2 e 0,1 e il valore di top-P è
0.5
, il modello selezionerà A o B come token successivo utilizzando la temperatura ed esclude C come candidato.Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- TOP_K:
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a
1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- MAX_OUTPUT_TOKENS: numero massimo di token che è possibile generare nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.
Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- STOP_SEQUENCES:
specifica un elenco di stringhe che indicano al modello di interrompere la generazione di testo se una delle stringhe viene rilevata nella risposta. Se una stringa compare più volte nella risposta, la risposta viene troncata nel punto in cui è stata rilevata per la prima volta.
Le stringhe sono sensibili alle maiuscole.
Ad esempio, se seguente è la risposta restituita quandostopSequences
non è specificato:
public static string reverse(string myString)
La risposta restituita constopSequences
impostato su["Str", "reverse"]
è:
public static string
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
Corpo JSON della richiesta:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON simile alla seguente.
Comando curl di esempio
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
Console
Per inviare un prompt multimodale utilizzando la console Google Cloud, segui questi passaggi:
- Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Studio.
- In Progettazione di prompt (a turno singolo), fai clic su Apri.
Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per la temperatura.
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicatitopP
etopK
. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
Limite di token: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il limite massimo di output.
Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.
- Aggiungi sequenza di interruzioni: inserisci una sequenza di interruzioni, ovvero una serie di caratteri (spazi inclusi) che interrompe la generazione di risposte se il modello la rileva. La sequenza non è inclusa nella risposta. Puoi aggiungere fino a cinque sequenze di interruzioni.
- (Facoltativo) Per configurare parametri avanzati, fai clic su Avanzate e configura come segue:
Top-K: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-K.
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
- Top-P: usa il dispositivo di scorrimento o la casella di testo per inserire un valore per top-P.
I token vengono selezionati dal più probabile al meno probabile, finché la somma delle loro probabilità non corrisponde al valore di top-P. Per i risultati meno variabili, imposta top-P su
0
. - Abilita grounding: se abilitata, questa opzione fornisce risposte del modello basate sui fatti. Il grounding supporta solo l'input e l'output di testo. Per maggiori informazioni, consulta la Panoramica del grounding.
- Seleziona Attiva grounding.
- Fai clic su Personalizza.
- Specifica l'origine e il percorso di grounding.
- Fai clic su Salva.
- Risposte dinamiche: questa opzione non è attiva. La console Google Cloud supporta solo l'inserimento di flussi di dati, che prevede la ricezione di risposte ai prompt man mano che vengono generate.
- Per caricare contenuti multimediali, ad esempio file PDF, MP4, WAV e JPG, procedi nel seguente modo:
- Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
- Fai clic su Inserisci contenuti multimediali e seleziona un'origine. Se scegli Google Drive come origine, devi scegliere un account e concedere a Vertex AI Studio il consenso per accedere al tuo account la prima volta che selezioni questa opzione. Per caricare più file, ripeti questo passaggio. Puoi caricare più immagini con una dimensione totale dei prompt di 10 MB. Un singolo file non può superare i 7 MB.
- Vai al file da caricare, fai clic sul file e fai clic su Seleziona. La miniatura del file viene visualizzata nel riquadro Prompt.
- Fai clic su Invia e la risposta viene generata.
- (Facoltativo) Per salvare il prompt in I miei prompt, fai clic su Salva.
- (Facoltativo) Per ottenere il codice Python o un comando curl per il prompt, fai clic su Genera codice.
- (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.
Fai clic per espandere le configurazioni avanzate
Trascrizione audio
Gli esempi di codice mostrano come utilizzare un file audio per trascrivere un'intervista. Questo esempio funziona solo con Gemini 1.5 Pro.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI Go per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
GenerateContentStream
.
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
Per una risposta non in streaming, utilizza il metodo GenerateContent
.
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
Codice di esempio
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Video con audio
Gli esempi di codice mostrano come riassumere un file video con audio. Gli esempi di codice restituiscono anche capitoli con timestamp. Questi esempi funzionano solo con Gemini 1.5 Pro.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Java di Vertex AI per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Per una risposta non in modalità flusso, utilizza il metodo
generateContent
.
public GenerateContentResponse generateContent(Content content)
Codice di esempio
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida per l'IA generativa mediante l'SDK Node.js. Per saperne di più, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in streaming, utilizza il metodo generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Codice di esempio
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Tutte le modalità
Gli esempi di codice mostrano come elaborare contemporaneamente immagini, video, audio e testo. Questi esempi sono compatibili con Gemini 1.5 Pro e Gemini 1.5 Flash.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in modalità flusso, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di Vertex AI. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Java di Vertex AI per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
public ResponseStreamgenerateContentStream(Content content)
Per una risposta non in modalità flusso, utilizza il metodo
generateContent
.
public GenerateContentResponse generateContent(Content content)
Codice di esempio
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida per l'IA generativa mediante l'SDK Node.js. Per saperne di più, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione in Vertex AI, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non in streaming
Puoi scegliere se il modello genera una risposta in modalità flusso o una risposta non in modalità flusso. I flussi di dati comportano la ricezione di risposte ai prompt man mano che vengono generati. In altre parole, non appena il modello genera i token di output, questi vengono inviati. Una risposta non in modalità flusso ai prompt viene inviata solo dopo che sono stati generati tutti i token di output.
Per una risposta di flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in streaming, utilizza il metodo generateContent
.
const streamingResp = await generativeModel.generateContent(request);
Codice di esempio
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Imposta i parametri del modello
I seguenti parametri del modello possono essere impostati sui modelli multimodali:
Top-P
Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi top-K) al meno probabile finché la somma delle loro probabilità equivale al valore top-P. Ad esempio, se i token A, B e C hanno una probabilità di
0,3, 0,2 e 0,1 e il valore di top-P è 0.5
, il modello selezionerà
A o B come token successivo utilizzando la temperatura ed esclude C come
candidato.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
Top-K
Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a 1
indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (detta anche decodifica greedy), mentre un top-K pari a 3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.
Per ogni fase di selezione dei token, vengono campionati i token top-K con le probabilità più elevate. Quindi, i token vengono ulteriormente filtrati in base a top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.
Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.
Temperatura
La temperatura viene utilizzata per il campionamento durante la generazione delle risposte, che si verifica quando vengono applicati topP
e topK
. La temperatura controlla il grado di casualità nella selezione dei token.
Le temperature più basse sono ideali per prompt che richiedono una risposta meno creativa o meno aperta, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Una temperatura pari a 0
significa che vengono sempre selezionati i token con la probabilità più alta. In questo caso, le risposte per un determinato
messaggio sono per lo più deterministiche, ma è comunque possibile una piccola variazione.
Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.
Valori parametro validi
Parametro | Gemini 1.0 Pro Vision | Gemini 1.5 Pro | Flash di Gemini 1.5 |
---|---|---|---|
Top-K | 1-40 (valore predefinito 32) | Funzionalità non supportata | Funzionalità non supportata |
Top-P | 0 - 1,0 (valore predefinito 1,0) | 0 - 1,0 (valore predefinito 0,95) | 0 - 1,0 (valore predefinito 0,95) |
Temperatura | 0 - 1,0 (valore predefinito 0,4) | 0 - 2,0 (valore predefinito 1,0) | 0 - 2,0 (valore predefinito 1,0) |
Requisiti dei contenuti multimediali
Quando utilizzi un file multimediale nelle richieste di prompt, assicurati che soddisfi i seguenti requisiti:
Requisiti delle immagini
I modelli multimodali Gemini supportano i seguenti tipi MIME immagine:
Tipo MIME immagine | Flash di Gemini 1.5 | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG (image/png ) |
|||
JPEG - image/jpeg |
Non esiste un limite specifico al numero di pixel di un'immagine. Tuttavia, le immagini più grandi vengono ridotte e riempite per adattarsi a una risoluzione massima di 3072 x 3072, mantenendo al contempo le proporzioni originali.
Per Gemini 1.0 Pro Vision, ogni immagine corrisponde a 258 token.
Per Gemini 1.5 Flash e Gemini 1.5 Pro:
- Se entrambe le dimensioni delle proporzioni di un'immagine sono inferiori o uguali a 384, vengono utilizzati 258 token.
- Se una dimensione delle proporzioni di un'immagine è maggiore di 384, l'immagine viene ritagliata in riquadri. Per impostazione predefinita, ogni dimensione riquadro utilizza la dimensione più piccola (larghezza o altezza) divisa per 1,5. Se necessario, ogni riquadro viene regolato in modo che non sia minore di 256 e non maggiore di 768. Ogni riquadro viene quindi ridimensionato a 768 x 768 e utilizza 258 token.
Il numero massimo di immagini che possono essere incluse in una richiesta di prompt è:
- 16 per Gemini 1.0 Pro Vision
- 3000 per Gemini 1.5 Flash e Gemini 1.5 Pro
Requisiti audio
Gemini 1.5 Flash e Gemini 1.5 Pro supportano i seguenti tipi MIME audio. Gemini 1.0 Pro Vision non supporta l'audio.
Tipo MIME audio | Flash di Gemini 1.5 | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
AAC - audio/aac |
|||
FLAC - audio/flac |
|||
MP3 - audio/mp3 |
|||
MPA: audio/m4a |
|||
MPEG - audio/mpeg |
|||
MPGA - audio/mpga |
|||
MP4 - audio/mp4 |
|||
OPUS - audio/opus |
|||
PCM - audio/pcm |
|||
WAV - audio/wav |
|||
WEBM - audio/webm |
Requisiti del video
I video vengono campionati a 1 f/s. Ogni frame video rappresenta 258 token.
Per Gemini 1.5 Flash e Gemini 1.5 Pro, la traccia audio è codificata con fotogrammi video. La traccia audio è inoltre suddivisa in trunk di 1 secondo che conferiscono ciascuno 32 token. Il frame video e i token audio sono collegati tra loro ai rispettivi timestamp. I timestamp sono rappresentati da sette token.
I modelli multimodali Gemini supportano i seguenti tipi MIME video:
Tipo MIME video | Flash di Gemini 1.5 | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
FLV - video/x-flv |
|||
MOV - video/mov |
|||
MPEG - video/mpeg |
|||
MPEGPS: video/mpegps |
|||
MPG - video/mpg |
|||
MP4 - video/mp4 |
|||
WEBM - video/webm |
|||
WMV - video/wmv |
|||
3GPP - video/3gpp |
Requisiti per i PDF
Il tipo MIME richiesto per un PDF è application/pdf
.
Best practice
Questa sezione include le best practice per le diverse modalità.
Best practice per le immagini
Per ottenere risultati ottimali, quando utilizzi le immagini segui le best practice e le informazioni riportate di seguito.
- Utilizza i prompt con una singola immagine per produrre risultati migliori rispetto ai prompt con più immagini quando vuoi rilevare testo in un'immagine.
- Se il prompt contiene una singola immagine, posizionala prima del prompt di testo.
Se nel prompt sono presenti più immagini e vuoi farvi riferimento più avanti nel prompt o fare riferimento a queste immagini nella sua risposta, può essere utile assegnare a ogni immagine un indice prima dell'immagine. Usa
a
b
c
oimage 1
image 2
image 3
per il tuo indice. Di seguito è riportato un esempio di utilizzo di immagini indicizzate in un prompt:image 1 <piano_recital.jpeg> image 2 <family_dinner.jpeg> image 3 <coffee_shop.jpeg> Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3.
Le immagini con una risoluzione più elevata generano risultati migliori.
Includi alcuni esempi nel prompt.
Ruota le immagini per riportarle nell'orientamento corretto prima di aggiungerle al prompt.
Evita immagini sfocate.
Best practice per i video
Quando utilizzi i video, segui queste best practice e informazioni per ottenere risultati ottimali:
- Non utilizzare più di un video per richiesta.
- Se il prompt contiene un solo video, posizionalo prima del messaggio.
- Se utilizzi Gemini 1.0 Pro Vision, il modello elabora i video come fotogrammi immagine non contigui. L'audio non è incluso. Se noti che nel modello mancano alcuni contenuti, prova a accorciare la durata del video in modo che il modello acquisisca una porzione maggiore dei contenuti.
- Se utilizzi Gemini 1.0 Pro Vision, vengono elaborate solo le informazioni nei primi due minuti.
- Se utilizzi Gemini 1.0 Pro Vision, non vengono analizzate informazioni audio o metadati di timestamp. Per questo motivo, il modello potrebbe non funzionare correttamente nei casi d'uso che richiedono input audio, ad esempio sottotitolaggio dell'audio o informazioni correlate al tempo, come velocità o ritmo.
- Quando è necessaria la localizzazione del timestamp in un video con audio, chiedi al modello di generare timestamp nel formato
MM:SS
, dove le prime due cifre rappresentano i minuti e le ultime due cifre i secondi. Usa lo stesso formato per le domande che richiedono informazioni sul timestamp.
Best practice per i PDF
Quando utilizzi i PDF, segui queste best practice e informazioni per ottenere risultati ottimali:
- I PDF vengono trattati come immagini, quindi una singola pagina di un PDF viene considerata come un'unica immagine.
- Il numero di pagine supportate è limitato al numero di immagini che un modello può supportare. Per Gemini 1.0 Pro Vision, il limite è 16. Per Gemini 1.5 Pro e Gemini 1.5 Flash, il limite è 300. Se hai un documento lungo, valuta la possibilità di suddividerlo in più PDF per elaborarlo.
- Quando utilizzi i PDF come input, il costo segue i prezzi delle immagini Gemini. Ad esempio, se includi un PDF di due pagine in una chiamata API Gemini, ti viene addebitata una tariffa di input per l'elaborazione di due immagini.
- Se il prompt contiene un singolo PDF, posiziona il PDF prima del messaggio di testo.
- Utilizza i PDF creati con il testo visualizzato come testo anziché utilizzare il testo nelle immagini scansionate. Questo formato garantisce che il testo sia leggibile dalle macchine in modo che sia più facile per il modello modificare, cercare e manipolare rispetto ai PDF delle immagini scansionate. Questa pratica fornisce risultati ottimali quando si lavora con documenti con molto testo, come i contratti.
Per ulteriori suggerimenti sui prompt multimodali, consulta Progettare prompt multimodali.
Limitazioni multimodali
Sebbene i modelli multimodali Gemini siano potenti in molti casi utente multimodali, è importante comprendere i limiti dei modelli:
- ragionamento spaziale: i modelli non sono precisi nell'individuazione di testo o oggetti nelle immagini e nei PDF. Potrebbero restituire solo il conteggio approssimativo degli oggetti.
- Usi medici: i modelli non sono adatti per interpretare immagini mediche (ad esempio radiografie e TAC) né per fornire consulenze mediche.
- Riconoscimento delle persone: i modelli non sono destinati a essere utilizzati per identificare persone che non sono celebrità nelle immagini.
- Moderazione dei contenuti: i modelli si rifiutano di fornire risposte su immagini o video che violano le nostre norme sulla sicurezza.
- Accuratezza: i modelli potrebbero avere allucinazioni o commettere errori quando interpretano immagini di bassa qualità, ruotate o a risoluzione estremamente bassa. I modelli potrebbero anche avere allucinazioni durante l'interpretazione del testo scritto a mano in immagini o documenti PDF.
- Riconoscimento dei suoni non vocali: i modelli che supportano l'audio potrebbero fare errori di riconoscimento dei suoni diversi dalla voce.
- Movimento ad alta velocità: a causa della frequenza di campionamento fissa di 1 fotogramma al secondo (f/s), i modelli potrebbero commettere errori nella comprensione dei movimenti ad alta velocità nei video.
- Timestamp solo audio: i modelli che supportano l'audio non possono generare con precisione i timestamp per le richieste con file audio. Sono inclusi i timestamp di segmentazione e localizzazione temporale. I timestamp possono essere generati con precisione per l'input che include un video che contiene audio.
- Punteggiatura nelle trascrizioni: le trascrizioni restituite da Gemini 1.5 Flash potrebbero non includere la punteggiatura.
Passaggi successivi
- Inizia a creare con i modelli multimodali Gemini: i nuovi clienti ricevono 300 $di crediti Google Cloud gratuiti per scoprire cosa possono fare con Gemini.
- Scopri come progettare prompt multimodali.
- Scopri come inviare richieste di prompt di chat.
- Scopri le best practice per l'IA responsabile e i filtri di sicurezza di Vertex AI.