Modelli supportati
La tabella seguente elenca i modelli che supportano la comprensione dei documenti:
Modello | Dettagli sulla modalità PDF |
---|---|
Gemini 1.5 Flash Vai alla scheda del modello Flash Gemini 1.5 |
Numero massimo di pagine per richiesta: 300 Dimensioni massime del file PDF: 30 MB |
Gemini 1.5 Pro Vai alla scheda del modello Gemini 1.5 Pro |
Numero massimo di pagine per richiesta: 300 Dimensioni massime del file PDF: 30 MB |
Gemini 1.0 Pro Vision Vai alla scheda del modello Gemini 1.0 Pro Vision |
Numero massimo di pagine per richiesta: 16 Dimensioni massime del file PDF: 30 MB |
Per un elenco delle lingue supportate dai modelli Gemini, consulta le informazioni sul modello Modelli Google. Per saperne di più su come progettare prompt multimodali, consulta Progettazione di prompt multimodali. Se stai cercando un modo per utilizzare Gemini direttamente dalle tue app mobile e web, consulta gli SDK Vertex AI for Firebase per app Android, Swift, web e Flutter.
Aggiungere documenti a una richiesta
Puoi aggiungere un singolo PDF nelle richieste a Gemini.
PDF singolo
La seguente scheda mostra come includere un PDF in una richiesta di prompt utilizzando l'SDK Python. Questo PDF di esempio funziona con tutti i modelli multimodali Gemini.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI SDK per 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 relativo token di output. Per le risposte non in streaming, riceverai tutte le risposte dopo che sono stati generati tutti i token di output.
Per una risposta in modalità flusso, 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 Vertex AI Java per Gemini.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori 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 relativo token di output. Per le risposte non in streaming, riceverai tutte le risposte dopo che sono stati generati tutti i token di output.
Per una risposta in modalità flusso, utilizza il metodo
generateContentStream
.
public ResponseStream<GenerateContentResponse> generateContentStream(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 per la configurazione di Node.js nella guida rapida dell'IA generativa utilizzando l'SDK Node.js. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Node.js per Gemini.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori 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 relativo token di output. Per le risposte non in streaming, riceverai tutte le risposte dopo che sono stati generati tutti i token di output.
Per una risposta in modalità flusso, utilizza il metodo
generateContentStream
.
const streamingResp = await generativeModel.generateContentStream(request);
Per una risposta non in modalità flusso, 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 ulteriori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI Go per Gemini.
Per eseguire l'autenticazione su Vertex AI, configura 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 relativo token di output. Per le risposte non in streaming, riceverai tutte le risposte dopo che sono stati generati tutti i token di output.
Per una risposta in modalità 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 di 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 per la configurazione di C# nella guida rapida di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento C# di Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori 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 relativo token di output. Per le risposte non in streaming, riceverai tutte le risposte dopo che sono stati generati tutti i token di output.
Per una risposta in modalità flusso, utilizza il metodo
StreamGenerateContent
.
public virtual PredictionServiceClient.StreamGenerateContentStream StreamGenerateContent(GenerateContentRequest request)
Per una risposta non in modalità flusso, utilizza il metodo
GenerateContentAsync
.
public virtual Task<GenerateContentResponse> GenerateContentAsync(GenerateContentRequest request)
Per ulteriori informazioni su come il server può trasmettere le risposte in streaming, consulta RPC per lo streaming.
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 di publisher.
Prima di utilizzare i dati della richiesta, effettua 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 Cloud Storage del file da includere nel prompt. L'oggetto del bucket deve essere leggibile pubblicamente o risiedere nello stesso progetto Google Cloud che invia la richiesta. Devi anche specificare il tipo di supporto (mimeType
) del file.Se non hai un file PDF in Cloud Storage, puoi utilizzare il seguente file disponibile pubblicamente:
gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf
con un tipo MIMEapplication/pdf
. Per visualizzare questo PDF, apri il PDF di esempio.MIME_TYPE
: il tipo di supporto del file specificato nei campidata
ofileUri
. I valori accettati sono: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
TEXT
: le istruzioni di testo da includere nel prompt. Ad esempio,You are a very professional document summarization specialist. Please summarize the given document.
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 attuale:
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
Quindi, esegui questo 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 attuale:
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui questo 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.
Nota quanto segue nell'URL di questo esempio:- Utilizza il metodo
generateContent
per richiedere che la risposta venga restituita dopo la completa generazione. Per ridurre la percezione della latenza per un pubblico umano, trasmetti il flusso della risposta mentre viene generata utilizzando il metodostreamGenerateContent
. - L'ID modello multimodale si trova alla fine dell'URL, prima del metodo (ad esempio,
gemini-1.5-flash
ogemini-1.0-pro-vision
). Questo esempio 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.
- 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. Utilizza il cursore 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 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 aperta o creativa, 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 a una determinata richiesta 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 cursore 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 (facoltativo): 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 i parametri avanzati, fai clic su Avanzato e configura come segue:
Top-K: utilizza il cursore o la casella di testo per inserire un valore per 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 di1
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 che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.Per ogni passaggio di selezione dei token, vengono campionati i token top-K con le probabilità più alte. 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 cursore 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 probabilità non corrisponde al valore di top-P. Per ottenere risultati meno variabili,
imposta top-P su
0
. - Abilita grounding: il grounding non è supportato per i prompt multimodali.
- Per caricare contenuti multimediali, ad esempio un file PDF:
- Fai clic su Inserisci file multimediali e seleziona un'origine. Se scegli Google Drive come origine, devi scegliere un account e dare il consenso a Vertex AI Studio ad accedere al tuo account la prima volta che selezioni questa opzione. Puoi caricare più file multimediali con dimensioni totali non superiori a 10 MB. Un singolo file non può superare i 7 MB.
- Fai clic sul file che vuoi aggiungere.
- Fai clic su Seleziona. La miniatura del file viene visualizzata nel riquadro Prompt.
- Inserisci il prompt di testo nel riquadro Prompt. Il modello utilizza i messaggi precedenti come contesto per le nuove risposte.
- 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 Ottieni codice.
- (Facoltativo) Per cancellare tutti i messaggi precedenti, fai clic su Cancella conversazione.
Fai clic per espandere le configurazioni avanzate
Imposta i parametri del modello
Sui modelli multimodali è possibile impostare i seguenti parametri:
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 probabilità non corrisponde al valore di 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 di 1
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 a 3
indica che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.
Per ogni passaggio di selezione dei token, vengono campionati i token top-K con le probabilità più alte. 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 della risposta, 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 aperta o creativa, 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 a una determinata
richiesta 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 | Gemini 1.5 Flash |
---|---|---|---|
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 documenti
Il tipo MIME richiesto per un PDF è application/pdf
.
Best practice per i PDF
Quando utilizzi i PDF, segui le best practice e le informazioni riportate di seguito 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 supportate da un modello. 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 PDF come input, il costo segue i prezzi delle immagini di Gemini. Ad esempio, se includi un PDF di due pagine in una chiamata API Gemini, devi pagare una tariffa per l'elaborazione di due immagini.
- Se il prompt contiene un singolo PDF, posizionalo prima del prompt di testo.
- Utilizza PDF creati con testo reso come testo anziché utilizzare testo nelle immagini scansionate. Questo formato garantisce che il testo sia leggibile dalle macchine in modo che sia più semplice per il modello modificare, cercare e manipolare rispetto ai PDF di immagini scansionati. Questa pratica offre risultati ottimali quando si lavora con documenti con molto testo, come i contratti.
Limitazioni
Sebbene i modelli multimodali Gemini siano potenti in molti casi d'uso multimodali, è importante comprendere i limiti dei modelli:
- Ragionamento spaziale: i modelli non consentono di individuare in modo preciso testo o oggetti nei PDF. Potrebbero restituire solo i conteggi approssimativi degli oggetti.
- Accuratezza: i modelli potrebbero avere allucinazioni durante l'interpretazione del testo scritto a mano nei documenti PDF.
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 inviare richieste di prompt di chat.
- Scopri di più sulle best practice per l'IA responsabile e sui filtri di sicurezza di Vertex AI.