Utilizzare l'API Inference per generare prompt di Gemini.
La famiglia di modelli Gemini include modelli che funzionano con 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 solo richieste di testo. Le modalità possono includere testo, audio, video e altro ancora.
Per ulteriori informazioni di panoramica, vedi:
Modelli supportati:
Modello | Versione |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-001 |
Gemini 1.5 Pro | gemini-1.5-pro-001 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-001 gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
Limitazioni:
Se fornisci molte immagini, la latenza potrebbe essere elevata.
Sintassi di esempio
Sintassi per generare una risposta del modello.
Non streaming
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "generation_config": { ... }, "safety_settings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) generation_config = GenerationConfig(...) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...})
Dispositivi di streaming
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent \ -d '{ "contents": [{ ... }], "generation_config": { ... }, "safety_settings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...}, stream=True)
Elenco dei parametri
Consulta gli esempi per i dettagli dell'implementazione.
Corpo della richiesta
Il corpo della richiesta contiene dati con i seguenti parametri:
Parametri | |
---|---|
|
Obbligatorio: I contenuti della conversazione corrente con il modello. Per le query a turno singolo, si tratta di una singola istanza. Per le query in più passaggi, si tratta di un campo ripetuto che contiene la cronologia delle conversazioni e l'ultima richiesta. |
|
Facoltativo: L'utente ha fornito le istruzioni di sistema per il modello. Nota: in |
|
Facoltativo. Vedi API Funzione chiamata. |
|
Facoltativo. Vedi API Funzione chiamata. |
|
Facoltativo: Impostazioni su richiesta per il blocco di contenuti non sicuri. Data applicazione: |
|
Facoltativo: Impostazioni di configurazione della generazione. |
Contenuti
Il tipo di dati strutturati di base che include i contenuti in più parti di un messaggio.
Questa classe è composta da due proprietà principali: role
e parts
. La proprietà role
indica la persona che ha prodotto i contenuti, mentre la proprietà parts
contiene più elementi, ognuno dei quali rappresenta un segmento di dati all'interno
di un messaggio.
Parametri | |
---|---|
|
Facoltativo: L'identità dell'entità che crea il messaggio. Sono supportati i seguenti valori:
Il valore Per le conversazioni che non prevedono più passaggi, questo campo può essere lasciato vuoto o non essere impostato. |
|
Un elenco di parti ordinate che compongono un singolo messaggio. Parti diverse possono avere tipi MIME IANA diversi. |
Componente
Un tipo di dati contenente contenuti multimediali che fanno parte di un messaggio Content
in più parti.
Parametri | |
---|---|
|
Facoltativo: Un prompt di testo o uno snippet di codice. |
|
Facoltativo: Dati incorporati in byte non elaborati. |
|
Facoltativo: Dati archiviati in un file. |
|
Facoltativo: Contiene una stringa che rappresenta il campo Vedi API Funzione chiamata. |
|
Facoltativo: L'output del risultato di un Vedi API Funzione chiamata. |
|
Facoltativo: Metadati del video. È necessario specificare i metadati solo mentre i dati del video sono presentati in |
Blob
Blob di contenuti. Se possibile, invia come testo anziché byte non elaborati.
Parametri | |
---|---|
|
Tipo MIME IANA dei dati. |
|
Byte non elaborati. |
FileData
dati basati su URI.
Parametri | |
---|---|
mime_type |
Tipo MIME IANA dei dati. |
file_uri |
string URI Cloud Storage del file in cui sono archiviati i dati |
FunctionCall
Un valore FunctionCall
previsto restituito dal modello che contiene una stringa che rappresenta FunctionDeclaration.name
e un oggetto JSON strutturato contenente i parametri e i relativi valori.
Parametri | |
---|---|
|
Il nome della funzione da chiamare. |
|
I parametri e i valori della funzione in formato oggetto JSON. Per i dettagli dei parametri, consulta l'articolo API Functions Contact. |
FunctionResponse
L'output risultante da un FunctionCall
che contiene una stringa che rappresenta
FunctionDeclaration.name
. Contiene anche un oggetto JSON strutturato con
l'output della funzione (e lo utilizza come contesto per il modello). Dovrebbe contenere il risultato di un valore FunctionCall
realizzato in base alla previsione del modello.
Parametri | |
---|---|
|
Il nome della funzione da chiamare. |
|
La risposta della funzione in formato oggetto JSON. |
VideoMetadata
Metadati che descrivono i contenuti video di input.
Parametri | |
---|---|
|
Facoltativo: L'offset iniziale del video. |
|
Facoltativo: L'offset finale del video. |
SafetySetting
Impostazioni di sicurezza.
Parametri | |
---|---|
|
Facoltativo: La categoria del danno. |
|
Facoltativo: La soglia di blocco dei danni. |
|
Facoltativo: Il numero massimo di termini influenti che contribuiscono maggiormente ai punteggi di sicurezza, che potrebbero causare potenziali blocchi. |
|
Facoltativo: Specifica se la soglia viene utilizzata per il punteggio di probabilità o gravità. Se non specificata, la soglia viene utilizzata per il punteggio di probabilità. |
HarmCategory
Categorie HR che bloccano i contenuti.
Parametri | |
---|---|
|
La categoria dei contenuti dannosi non è specificata. |
|
La categoria di contenuti dannosi è l'incitamento all'odio. |
|
La categoria di contenuti dannosi include contenuti pericolosi. |
|
La categoria dei contenuti dannosi è molestie. |
|
La categoria di contenuti dannosi è costituita da contenuti sessualmente espliciti. |
HarmBlockThreshold
Livelli delle soglie di probabilità utilizzate per bloccare una risposta.
Parametri | |
---|---|
|
Soglia di blocco dei danni non specificata. |
|
Blocca una soglia bassa e più alta (ad esempio, blocca un numero maggiore). |
|
Blocca soglia media e superiore. |
|
Blocca solo la soglia alta (ad esempio, blocca meno). |
|
Nessun blocco. |
HarmBlockMethod
Una soglia di probabilità che blocca una risposta in base a una combinazione di probabilità e gravità.
Parametri | |
---|---|
|
Il metodo di blocco dei danni non è specificato. |
|
Il metodo di blocco dei danni utilizza punteggi sia di probabilità che di gravità. |
|
Il metodo di blocco dei danni utilizza il punteggio di probabilità. |
GenerationConfig
Impostazioni di configurazione utilizzate durante la generazione della richiesta.
Parametri | |
---|---|
|
Facoltativo: Controlla la casualità delle previsioni. |
|
Facoltativo: Se specificato, viene utilizzato il campionamento del nucleo. |
|
Facoltativo: se specificato, viene utilizzato il campionamento top-k. |
|
Facoltativo: Numero di candidati da generare. |
|
Facoltativo: int Il numero massimo di token di output da generare per messaggio. |
|
Facoltativo: Interrompere le sequenze. |
|
Facoltativo: Sanzioni positive. |
|
Facoltativo: Penalità di frequenza. |
|
Facoltativo: Tipo MIME della risposta di output del testo candidato generato. Tipo MIME supportato:
Questa è una funzionalità in anteprima. |
Esempi
Risposta testuale non in streaming
Genera una risposta del modello non in modalità flusso da un input di testo.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- TEXT: le istruzioni testuali da includere nel prompt.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }] }'
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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:generateContent"
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:generateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
C#
REST (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- MODEL_ID: il nome del modello da utilizzare.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON della richiesta:
{ "model": "google/MODEL_ID", "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Risposta multimodale non in streaming
Generare una risposta del modello non in modalità flusso da un input multimodale, come testo e un'immagine.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- TEXT: le istruzioni testuali da includere nel prompt.
- FILE_URI: l'URI Cloud Storage del file in cui sono archiviati i dati.
- MIME_TYPE: il tipo MIME TIANA dei dati.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "user", "parts": [ { "text": "TEXT" }, { "file_data": {"file_uri": "FILE_URI", "MIME_TYPE"} }, { "file_data": {"file_uri": "FILE_URI", "MIME_TYPE"} } ] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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:generateContent"
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:generateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
C#
REST (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- MODEL_ID: il nome del modello da utilizzare.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON della richiesta:
{ "model": "google/MODEL_ID", "messages": [{ "role": "user", "content": [ { "type": "text", "text": "Describe the following image:" }, { "type": "image_url", "image_url": { "url": "gs://generativeai-downloads/images/character.jpg" } } ] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Risposta di testo in streaming
Genera una risposta di un modello in modalità flusso da un input di testo.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- TEXT: le istruzioni testuali da includere nel prompt.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }] }'
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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:streamGenerateContent"
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:streamGenerateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
REST (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- MODEL_ID: il nome del modello da utilizzare.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON della richiesta:
{ "model": "google/MODEL_ID", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Risposta multimodale in modalità flusso
Generare una risposta di un modello in modalità flusso da un input multimodale, come testo e un'immagine.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- TEXT: le istruzioni testuali da includere nel prompt.
- FILE_URI: l'URI Cloud Storage del file in cui sono archiviati i dati.
- MIME_TYPE: il tipo MIME TIANA dei dati.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "user", "parts": [ { "text": "TEXT" }, { "file_data": {"file_uri": "FILE_URI", "MIME_TYPE"} }, { "file_data": {"file_uri": "FILE_URI", "MIME_TYPE"} } ] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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:streamGenerateContent"
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:streamGenerateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
REST (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto.
- LOCATION: la regione in cui elaborare la richiesta.
- MODEL_ID: il nome del modello da utilizzare.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Corpo JSON della richiesta:
{ "model": "google/MODEL_ID", "stream": true, "messages": [{ "role": "user", "content": [ { "type": "text", "text": "Describe the following image:" }, { "type": "image_url", "image_url": { "url": "gs://generativeai-downloads/images/character.jpg" } } ] }] }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
Puoi chiamare l'API Inference utilizzando la libreria OpenAI. Per maggiori informazioni, vedi Chiamare Gemini utilizzando la libreria OpenAI.
Passaggi successivi
- Scopri di più sull'API Gemini.
- Scopri di più sulle chiamate di funzione.
- Scopri di più sulle risposte di grounding per i modelli Gemini.