Puoi aggiungere immagini alle richieste di Gemini per eseguire attività che richiedono di comprendere i contenuti delle immagini incluse. Questa pagina mostra come aggiungere immagini alle richieste a Gemini in Vertex AI utilizzando la console Google Cloud e l'API Vertex AI.
Modelli supportati
La seguente tabella elenca i modelli che supportano la comprensione delle immagini:
Modello | Dettagli sulla modalità di immagine |
---|---|
Gemini 1.5 Flash Vai alla scheda del modello Gemini 1.5 Flash |
Numero massimo di immagini per prompt: 3000 |
Gemini 1.5 Pro Vai alla scheda del modello Gemini 1.5 Pro |
Numero massimo di immagini per prompt: 3000 |
Gemini 1.0 Pro Vision Vai alla scheda del modello Gemini 1.0 Pro Vision |
Numero massimo di immagini per prompt: 16 |
Per un elenco delle lingue supportate dai modelli Gemini, consulta le informazioni sui modelli Google. Per scoprire di più su come progettare prompt multimodali, consulta Progettare prompt multimodali. Se stai cercando un modo per utilizzare Gemini direttamente dalle tue app web e mobile, consulta la sezione Vertex AI negli SDK Firebase per le app Android, Swift, web e Flutter.
Aggiungere immagini a una richiesta
Puoi aggiungere una singola immagine o più immagini nella richiesta a Gemini.
Immagine singola
Il codice campione in ciascuna delle seguenti schede mostra un modo diverso per identificare gli elementi di un'immagine. Questo esempio funziona con tutti i modelli multimodali Gemini.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in streaming, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Java Vertex AI per Gemini.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, utilizza il metodo
generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Per una risposta non in streaming, 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 sull'IA generativa con l'SDK Node.js. Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, 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 introduttiva di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Go di Vertex AI per Gemini.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, 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# nella guida rapida di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento C# di Vertex AI.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, utilizza il metodo
StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Per una risposta non in streaming, utilizza il metodo
GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Per ulteriori informazioni su come il server può trasmettere le risposte, consulta RPC dinamiche.
Codice di esempio
REST
Dopo aver configurato l'ambiente, puoi utilizzare REST per testare un prompt di testo. Il seguente esempio invia una richiesta all'endpoint del modello del publisher.
Puoi includere immagini archiviate in Cloud Storage o utilizzare dati delle immagini codificati in base64.Immagine in Cloud Storage
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
LOCATION
: la regione in cui elaborare la richiesta. Inserisci una regione supportata. Per l'elenco completo delle regioni supportate, consulta Località disponibili.Fai clic per espandere un elenco parziale delle regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: il tuo ID progetto.FILE_URI
: l'URI o l'URL del file da includere nel prompt. I valori accettabili sono:- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
gemini-1.5-pro
egemini-1.5-flash
, il limite di dimensioni è 2 GB. Pergemini-1.0-pro-vision
, il limite di dimensioni è 20 MB. - URL HTTP:l'URL del file deve essere pubblicamente leggibile. Puoi specificare un file video e fino a 10 file immagine per richiesta. I file audio e i documenti non possono superare i 15 MB.
- URL del video di YouTube: il video di YouTube deve essere di proprietà dell'account che hai utilizzato per accedere alla console Google Cloud o essere pubblico. È supportato un solo URL video di YouTube per richiesta.
Quando specifichi un
fileURI
, devi specificare anche il tipo di media (mimeType
) del file.Se non hai un file immagine in Cloud Storage, puoi utilizzare il seguente file disponibile pubblicamente:
gs://cloud-samples-data/generative-ai/image/scones.jpg
con un tipo MIME diimage/jpeg
. Per visualizzare questa immagine, apri il file dell'immagine di esempio.- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
MIME_TYPE
: il tipo di media del file specificato nei campidata
ofileUri
. I valori accettabili sono:Fai clic per espandere i tipi MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: le istruzioni di testo da includere nel prompt. Ad esempio:What is shown in this image?
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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/gemini-1.5-flash:generateContent"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Dati immagine Base64
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
LOCATION
: la regione in cui elaborare la richiesta. Inserisci una regione supportata. Per l'elenco completo delle regioni supportate, consulta Località disponibili.Fai clic per espandere un elenco parziale delle regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: il tuo ID progetto. La codifica Base64 dell'immagine, del PDF o del video da includere in linea nel prompt. Quando includi i contenuti multimediali in linea, devi anche specificare il tipo di media (B64_BASE_IMAGE
mimeType
) dei dati.MIME_TYPE
: il tipo di media del file specificato nei campidata
ofileUri
. I valori accettabili sono:Fai clic per espandere i tipi MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: le istruzioni di testo da includere nel prompt. Ad esempio,What is shown in this image?
.
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "B64_BASE_IMAGE", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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/gemini-1.5-flash:generateContent"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "B64_BASE_IMAGE", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
- Utilizza il metodo
generateContent
per richiedere che la risposta venga restituita dopo essere stata completamente generata. Per ridurre la percezione della latenza da parte di un pubblico di persone, riproduci in streaming la risposta man mano che viene generata utilizzando il metodostreamGenerateContent
. - L'ID del modello multimodale si trova alla fine dell'URL prima del metodo
(ad esempio
gemini-1.5-flash
ogemini-1.0-pro-vision
). Questo sample potrebbe supportare anche altri modelli.
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.
Fai clic su Apri in formato libero.
(Facoltativo) Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: utilizza 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 della risposta, 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 risposte meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Con una temperatura pari a0
viene sempre selezionato il token con la probabilità più alta. In questo caso, le risposte per un determinato prompt 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 di output: utilizza il cursore o la casella di testo per inserire un valore per il limite di output massimo.
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: facoltativo. Inserisci una sequenza di interruzioni, ovvero una serie di caratteri che include spazi. Se il modello rileva una sequenza di interruzione, la generazione della risposta viene interrotta. La sequenza di interruzioni non è inclusa nella risposta e puoi aggiungerne fino a cinque.
(Facoltativo) Per configurare i parametri avanzati, fai clic su Avanzate e configura come segue:
Fai clic per espandere le configurazioni avanzate
Top-K: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il top-K. (non supportato per Gemini 1.5).
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 (chiamato anche decodifica greedy). Un top-K pari a3
indica invece 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: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il 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 ridurre al minimo la variabilità dei risultati,
imposta Top-P su
0
. - Risposte massime: utilizza il cursore o la casella di testo per inserire un valore per il numero di risposte da generare.
- Risposte dinamiche: attiva questa opzione per stampare le risposte man mano che vengono generate.
- Soglia del filtro di sicurezza: seleziona la soglia di probabilità di ricevere risposte potenzialmente dannose.
- Abilita il grounding: il grounding non è supportato per i prompt multimodali.
Fai clic su Inserisci media e seleziona un'origine per il file.
Carica
Seleziona il file che vuoi caricare e fai clic su Apri.
Tramite URL
Inserisci l'URL del file che vuoi utilizzare e fai clic su Inserisci.
Cloud Storage
Seleziona il bucket e poi il file al suo interno che vuoi importare e fai clic su Seleziona.
Google Drive
- Scegli un account e concedi il consenso a Vertex AI Studio per accedere al tuo account la prima volta che selezioni questa opzione. Puoi caricare più file con una dimensione totale massima di 10 MB. Un singolo file non può superare 7 MB.
- Fai clic sul file che vuoi aggiungere.
Fai clic su Seleziona.
La miniatura del file viene visualizzata nel riquadro Prompt. Viene mostrato anche il numero totale di token. Se i dati del prompt superano il limite di token, i token vengono troncati e non sono inclusi nell'elaborazione dei dati.
Inserisci il prompt di testo nel riquadro Prompt.
(Facoltativo) Per visualizzare ID token in testo e ID token, fai clic sul conteggio token nel riquadro Prompt.
Fai clic su Invia.
(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 tuo prompt, fai clic su
Genera codice.
Più immagini
Ognuna delle seguenti schede mostra un modo diverso per includere più immagini in una richiesta di prompt. Ogni sample riceve due insiemi di input:
- Un'immagine di un famoso punto di riferimento della città
- Il tipo di media dell'immagine
- Testo che indica la città e il punto di riferimento nell'immagine
Il sample include anche una terza immagine e un tipo di contenuti multimediali, ma nessun testo. L'esempio restituisce una risposta di testo che indica la città e il punto di riferimento nella terza immagine.
Questi esempi di immagini funzionano con tutti i modelli multimodali di Gemini.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK for Python.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, utilizza il parametro stream
in
generate_content
.
response = model.generate_content(contents=[...], stream = True)
Per una risposta non in streaming, rimuovi il parametro o impostalo su
False
.
Codice di esempio
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Java Vertex AI per Gemini.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, utilizza il metodo
generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(Content content)
Per una risposta non in streaming, 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 sull'IA generativa con l'SDK Node.js. Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, 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 introduttiva di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Go di Vertex AI per Gemini.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, 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# nella guida rapida di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento C# di Vertex AI.
Per autenticarti in Vertex AI, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale.
Risposte dinamiche e non dinamiche
Puoi scegliere se il modello genera risposte in streaming o non in streaming. Per le risposte dinamiche, ricevi ogni risposta non appena viene generato il token di output. Per le risposte non dinamiche, ricevi tutte le risposte dopo la generazione di tutti i token di output.
Per una risposta dinamica, utilizza il metodo
StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Per una risposta non in streaming, utilizza il metodo
GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Per ulteriori informazioni su come il server può trasmettere le risposte, consulta RPC dinamiche.
Codice di esempio
REST
Dopo aver configurato l'ambiente, puoi utilizzare REST per testare un prompt di testo. Il seguente esempio invia una richiesta all'endpoint del modello del publisher.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
LOCATION
: la regione in cui elaborare la richiesta. Inserisci una regione supportata. Per l'elenco completo delle regioni supportate, consulta Località disponibili.Fai clic per espandere un elenco parziale delle regioni disponibili
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: il tuo ID progetto.FILE_URI1
: l'URI o l'URL del file da includere nel prompt. I valori accettabili sono:- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
gemini-1.5-pro
egemini-1.5-flash
, il limite di dimensioni è 2 GB. Pergemini-1.0-pro-vision
, il limite di dimensioni è 20 MB. - URL HTTP:l'URL del file deve essere pubblicamente leggibile. Puoi specificare un file video e fino a 10 file immagine per richiesta. I file audio e i documenti non possono superare i 15 MB.
- URL del video di YouTube: il video di YouTube deve essere di proprietà dell'account che hai utilizzato per accedere alla console Google Cloud o essere pubblico. È supportato un solo URL video di YouTube per richiesta.
Quando specifichi un
fileURI
, devi specificare anche il tipo di media (mimeType
) del file.Se non hai un file immagine in Cloud Storage, puoi utilizzare il seguente file disponibile pubblicamente:
gs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png
con un tipo MIME diimage/png
. Per visualizzare questa immagine, apri il file dell'immagine di esempio.- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
MIME_TYPE
: il tipo di media del file specificato nei campidata
ofileUri
. I valori accettabili sono:Fai clic per espandere i tipi MIME
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT1
: le istruzioni di testo da includere nel prompt. Ad esempio:city: Rome, Landmark: the Colosseum
FILE_URI2
: l'URI o l'URL del file da includere nel prompt. I valori accettabili sono:- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
gemini-1.5-pro
egemini-1.5-flash
, il limite di dimensioni è 2 GB. Pergemini-1.0-pro-vision
, il limite di dimensioni è 20 MB. - URL HTTP:l'URL del file deve essere pubblicamente leggibile. Puoi specificare un file video e fino a 10 file immagine per richiesta. I file audio e i documenti non possono superare i 15 MB.
- URL del video di YouTube: il video di YouTube deve essere di proprietà dell'account che hai utilizzato per accedere alla console Google Cloud o essere pubblico. È supportato un solo URL video di YouTube per richiesta.
Quando specifichi un
fileURI
, devi specificare anche il tipo di media (mimeType
) del file.Se non hai un file immagine in Cloud Storage, puoi utilizzare il seguente file disponibile pubblicamente:
gs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png
con un tipo MIME diimage/png
. Per visualizzare questa immagine, apri il file dell'immagine di esempio.- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
TEXT2
: le istruzioni di testo da includere nel prompt. Ad esempio:city: Beijing, Landmark: Forbidden City
FILE_URI3
: l'URI o l'URL del file da includere nel prompt. I valori accettabili sono:- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
gemini-1.5-pro
egemini-1.5-flash
, il limite di dimensioni è 2 GB. Pergemini-1.0-pro-vision
, il limite di dimensioni è 20 MB. - URL HTTP:l'URL del file deve essere pubblicamente leggibile. Puoi specificare un file video e fino a 10 file immagine per richiesta. I file audio e i documenti non possono superare i 15 MB.
- URL del video di YouTube: il video di YouTube deve essere di proprietà dell'account che hai utilizzato per accedere alla console Google Cloud o essere pubblico. È supportato un solo URL video di YouTube per richiesta.
Quando specifichi un
fileURI
, devi specificare anche il tipo di media (mimeType
) del file.Se non hai un file immagine in Cloud Storage, puoi utilizzare il seguente file disponibile pubblicamente:
gs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png
con un tipo MIME diimage/png
. Per visualizzare questa immagine, apri il file dell'immagine di esempio.- URI del bucket Cloud Storage: l'oggetto deve essere leggibile pubblicamente o trovarsi nello stesso progetto Google Cloud che invia la richiesta. Per
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE" } }, { "text": "TEXT1" }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE" } }, { "text": "TEXT2" }, { "fileData": { "fileUri": "FILE_URI3", "mimeType": "MIME_TYPE" } } ] } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
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/gemini-1.5-flash:generateContent"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE" } }, { "text": "TEXT1" }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE" } }, { "text": "TEXT2" }, { "fileData": { "fileUri": "FILE_URI3", "mimeType": "MIME_TYPE" } } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$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/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente.
Tieni presente quanto segue nell'URL di questo esempio:- Utilizza il metodo
generateContent
per richiedere che la risposta venga restituita dopo essere stata completamente generata. Per ridurre la percezione della latenza da parte di un pubblico di persone, riproduci in streaming la risposta man mano che viene generata utilizzando il metodostreamGenerateContent
. - L'ID del modello multimodale si trova alla fine dell'URL prima del metodo
(ad esempio
gemini-1.5-flash
ogemini-1.0-pro-vision
). Questo sample potrebbe supportare anche altri modelli.
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.
Fai clic su Apri in formato libero.
(Facoltativo) Configura il modello e i parametri:
- Modello: seleziona un modello.
- Regione: seleziona la regione che vuoi utilizzare.
Temperatura: utilizza 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 della risposta, 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 risposte meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Con una temperatura pari a0
viene sempre selezionato il token con la probabilità più alta. In questo caso, le risposte per un determinato prompt 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 di output: utilizza il cursore o la casella di testo per inserire un valore per il limite di output massimo.
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: facoltativo. Inserisci una sequenza di interruzioni, ovvero una serie di caratteri che include spazi. Se il modello rileva una sequenza di interruzione, la generazione della risposta viene interrotta. La sequenza di interruzioni non è inclusa nella risposta e puoi aggiungerne fino a cinque.
(Facoltativo) Per configurare i parametri avanzati, fai clic su Avanzate e configura come segue:
Fai clic per espandere le configurazioni avanzate
Top-K: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il top-K. (non supportato per Gemini 1.5).
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 (chiamato anche decodifica greedy). Un top-K pari a3
indica invece 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: utilizza il dispositivo di scorrimento o la casella di testo per inserire un valore per il 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 ridurre al minimo la variabilità dei risultati,
imposta Top-P su
0
. - Risposte massime: utilizza il cursore o la casella di testo per inserire un valore per il numero di risposte da generare.
- Risposte dinamiche: attiva questa opzione per stampare le risposte man mano che vengono generate.
- Soglia del filtro di sicurezza: seleziona la soglia di probabilità di ricevere risposte potenzialmente dannose.
- Abilita il grounding: il grounding non è supportato per i prompt multimodali.
Fai clic su Inserisci media e seleziona un'origine per il file.
Carica
Seleziona il file che vuoi caricare e fai clic su Apri.
Tramite URL
Inserisci l'URL del file che vuoi utilizzare e fai clic su Inserisci.
Cloud Storage
Seleziona il bucket e poi il file al suo interno che vuoi importare e fai clic su Seleziona.
Google Drive
- Scegli un account e concedi il consenso a Vertex AI Studio per accedere al tuo account la prima volta che selezioni questa opzione. Puoi caricare più file con una dimensione totale massima di 10 MB. Un singolo file non può superare 7 MB.
- Fai clic sul file che vuoi aggiungere.
Fai clic su Seleziona.
La miniatura del file viene visualizzata nel riquadro Prompt. Viene mostrato anche il numero totale di token. Se i dati del prompt superano il limite di token, i token vengono troncati e non sono inclusi nell'elaborazione dei dati.
Inserisci il prompt di testo nel riquadro Prompt.
(Facoltativo) Per visualizzare ID token in testo e ID token, fai clic sul conteggio token nel riquadro Prompt.
Fai clic su Invia.
(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 tuo prompt, fai clic su
Genera codice.
Impostare i parametri facoltativi del modello
Ogni modello ha un insieme di parametri facoltativi che puoi impostare. Per ulteriori informazioni, consulta Parametri di generazione dei contenuti.
Requisiti delle immagini
I modelli multimodali Gemini supportano i seguenti tipi MIME di immagini:
Tipo MIME immagine | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG - image/png |
|||
JPEG - image/jpeg |
|||
WebP - image/webp |
Non esiste un limite specifico al numero di pixel di un'immagine. Tuttavia, le immagini più grandi vengono ridimensionate e riempite per adattarsi a una risoluzione massima di 3072 x 3072 mantenendo le proporzioni originali.
Ecco il numero massimo di file immagine consentiti in una richiesta di prompt:
- Gemini 1.0 Pro Vision: 16 immagini
- Gemini 1.5 Flash e Gemini 1.5 Pro: 3000 immagini
Ecco come vengono calcolati i token per le immagini:
- Gemini 1.0 Pro Vision: ogni immagine rappresenta 258 token.
- Gemini 1.5 Flash e
Gemini 1.5 Pro:
- Se entrambe le dimensioni di un'immagine sono inferiori o uguali a 384 pixel, vengono utilizzati 258 token.
- Se una dimensione di un'immagine è superiore a 384 pixel, l'immagine viene ritagliata in riquadri. Per impostazione predefinita, la dimensione di ogni riquadro corrisponde alla dimensione minima (larghezza o altezza) divisa per 1,5. Se necessario, ogni riquadro viene modificato in modo che non sia più piccolo di 256 pixel e non più grande di 768 pixel. Ogni riquadro viene quindi ridimensionato in 768 x 768 e utilizza 258 token.
Best practice
Quando utilizzi le immagini, segui queste best practice e informazioni per ottenere risultati ottimali:
- Se vuoi rilevare il testo in un'immagine, utilizza i prompt con una singola immagine per ottenere risultati migliori rispetto ai prompt con più immagini.
- Se il prompt contiene una singola immagine, posizionala prima del prompt di testo nella richiesta.
- Se il prompt contiene più immagini e vuoi farvi riferimento più avanti nel prompt o vuoi che il modello vi faccia riferimento nella risposta, può essere utile assegnare a ogni immagine un indice prima dell'immagine. Utilizza
oa
b
c
per l'indice. Di seguito è riportato un esempio di utilizzo di immagini indicizzate in un prompt:image 1
image 2
image 3
image 1
image 2 image 3 Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3. - Utilizza immagini con risoluzione più elevata, che offrono risultati migliori.
- Includi alcuni esempi nel prompt.
- Ruota le immagini in modo che siano orientate correttamente prima di aggiungerle al prompt.
- Evita immagini sfocate.
Limitazioni
Sebbene i modelli multimodali di Gemini siano efficaci in molti casi di utilizzo multimodale, è importante comprendere i loro limiti:
- Moderazione dei contenuti: i modelli rifiutano di fornire risposte su immagini che violano le nostre norme sulla sicurezza.
- Ragionamento spaziale: i modelli non sono precisi nel localizzare testo o oggetti nelle immagini. Potrebbero restituire solo i conteggi approssimativi degli oggetti.
- Usi medici: i modelli non sono adatti per interpretare immagini mediche (ad esempio radiografie e tomografie) o per fornire consulenza medica.
- Riconoscimento delle persone: i modelli non sono pensati per essere utilizzati per identificare persone che non sono celebrità nelle immagini.
- Accuratezza: i modelli potrebbero avere allucinazioni o commettere errori durante l'interpretazione di immagini di bassa qualità, ruotate o con risoluzione estremamente bassa. I modelli potrebbero anche avere allucinazioni durante l'interpretazione del testo scritto a mano nei documenti con immagini.
Passaggi successivi
- Inizia a creare con i modelli multimodali di Gemini: i nuovi clienti ricevono 300 $di crediti Google Cloud gratuiti per scoprire cosa possono fare con Gemini.
- Scopri come inviare richieste di prompt di chat.
- Scopri le best practice per l'AI responsabile e i filtri di sicurezza di Vertex AI.